From 51702e1a130639cf7a56690788aebe0fa9a348fc Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 21 Jun 2023 09:09:26 +0800 Subject: [PATCH] translated --- ...ow to Install Ansible AWX on Kubernetes Cluster.md | 279 ------------------ ...ow to Install Ansible AWX on Kubernetes Cluster.md | 279 ++++++++++++++++++ 2 files changed, 279 insertions(+), 279 deletions(-) delete mode 100644 sources/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md create mode 100644 translated/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md diff --git a/sources/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md b/sources/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md deleted file mode 100644 index 8c2461e4d9..0000000000 --- a/sources/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md +++ /dev/null @@ -1,279 +0,0 @@ -[#]: subject: "How to Install Ansible AWX on Kubernetes Cluster" -[#]: via: "https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/" -[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install Ansible AWX on Kubernetes Cluster -====== - -In this post, we will show you how to install Ansible AWX on Kubernetes (k8s) cluster step by step. - -Ansible AWX is a powerful open-source tool for managing and automating IT infrastructure. AWX provides a graphical user interface for Ansible, allowing you to easily create, schedule, and run Ansible playbooks. - -Kubernetes, on the other hand, is a popular container orchestration platform that is widely used for deploying and managing containerized applications. - -##### Prerequisites - -- Kubernetes cluster -- Kubectl -- A regular user with sudo rights and cluster admin rights -- Internet connectivity - -### Step :1 Install helm - -In case you, helmis installed on your system then run beneath commands to install, - -``` -$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 -$ chmod +x get_helm.sh -$ ./get_helm.sh -$ helm version -``` - -![Install-helm-linux-command-line][1] - -### Step 2: Install the AWX chart - -The easiest way to install AWX on Kubernetes is by using the AWX Helm chart. So, to install AWX via chart, first add its repository using following helm command. - -``` -$ helm repo add awx-operator https://ansible.github.io/awx-operator/ -"awx-operator" has been added to your repositories -$ -``` - -Note: If you had already added this repository before, then run beneath command to get latest version of packages. - -``` -$ helm repo update -``` - -To install awx-operator via chart, run - -``` -$ helm install ansible-awx-operator awx-operator/awx-operator -n awx --create-namespace -``` - -![helm-install-awx-operator-kubernetes][2] - -This will download the AWX chart and install it on your Kubernetes cluster in awx namespace.The installation process may take a few minutes, so be patient. - -### Step 3: Verify AWX operator installation - -After the successful installation, you can verify AWX operator status by running below command - -``` -$ sudo kubectl get pods -n awx -``` - -You should see something like this: - -![awx-operator-pod-status-kubectl][3] - -### Step:4 Create PV, PVC and deploy AWX yaml file - -AWX requires persistent volume for postgres pod. So, let’s first create a storage class for local volume - -Note: In this post, I am using local file system as persistent volume. - -``` -$ vi local-storage-class.yaml -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: -  name: local-storage -  namespace: awxprovisioner: kubernetes.io/no-provisioner -volumeBindingMode: WaitForFirstConsumer -``` - -Save and close the file and then run , - -``` -$ kubectl create -f local-storage-class.yaml -$ kubectl get sc -n awx -NAME            PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   -local-storage   kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer   false                 -$ -``` - -Next create persistent volume(pv) using following pv.yaml file, - -``` -$ vi pv.yaml -apiVersion: v1 -kind: PersistentVolume -metadata: -  name: postgres-pv -  namespace: awx -spec: -  capacity: -    storage: 10Gi -  volumeMode: Filesystem -  accessModes: -  - ReadWriteOnce -  persistentVolumeReclaimPolicy: Delete -  storageClassName: local-storage -  local: -    path: /mnt/storage -  nodeAffinity: -    required: -      nodeSelectorTerms: -      - matchExpressions: -        - key: kubernetes.io/hostname -          operator: In -          values: -          - k8s-worker -``` - -Save & exit the file. - -![Postgres-pv-awx-kubernetes][4] - -Important note : Make sure folder “/mnt/storage” exists on worker node, if it does not exist then create it using mkdir command on worker node. In our case worker node is “k8s-worker” - -Execute the beneath command to create postgres-pv in awx namespace. - -``` -$ kubectl create -f pv.yaml -``` - -Once pv is created successfully then create persistentvolumecliam using pvc.yaml file, - -``` -$ vi  pvc.yaml -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: -  name: postgres-13-ansible-awx-postgres-13-0 -  namespace: awx -spec: -  storageClassName: local-storage -  accessModes: -    - ReadWriteOnce -  resources: -    requests: -      storage: 10Gi -``` - -![posgres-pvc-awx-kubernetes][5] - -To create pvc, run following kubectl command - -``` -$ kubectl create -f pvc.yaml -``` - -Verify the status of pv and pvc using beneath command - -``` -$ kubectl get pv,pvc -n awx -``` - -Now, we are all set to deploy AWX instance. Create an ansible-awx.yaml file with following content - -``` -$ vi ansible-awx.yaml ---- -apiVersion: awx.ansible.com/v1beta1 -kind: AWX -metadata: -  name: ansible-awx -  namespace: awx -spec: -  service_type: nodeport -  postgres_storage_class: local-storage -``` - -![Ansible-awx-yaml-file][6] - -save and close the file. - -Execute following kubectl command to deploy awx instance, - -``` -$ kubectl create -f ansible-awx.yaml -``` - -Wait for couple of minutes and then check pods status in awx namespace. - -``` -$ kubectl get pods -n awx -``` - -![Ansible-AWX-Pods-Status-Kubernetes][7] - -### Step 5: Access AWX Web Interface - -To access the AWX web interface, you need to create a service that exposes the awx-web deployment: - -``` -$ kubectl expose deployment ansible-awx-web --name ansible-awx-web-svc --type NodePort -n awx -``` - -This command will create a NodePort service that maps the AWX web container’s port to a port on the Kubernetes node. You can find the port number by running: - -``` -$ kubectl get svc ansible-awx-web-svc  -n awx -``` - -This will output something like this: - -``` -NAME              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE -ansible-awx-web-svc   NodePort   10.99.83.248           8052:32254/TCP   82s -``` - -In this example, the web service is available on port 32254. - -![Expose-Ansible-AWX-Web-NodePort-Kubernetes][8] - -By default, the admin user is admin for web interface and the password is available in the -admin-password secret. To retrieve the admin password, run - -``` -$ kubectl get secrets -n awx | grep -i admin-password -ansible-awx-admin-password        Opaque               1      109m -$ -$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode ; echo -l9mWcIOXQhSKnzZQyQQ9LZf3awDV0YMJ -$ -``` - -You can now access the AWX web interface by opening a web browser and navigating to `http://:/`. In the example above, the URL would be - -http://192.168.1.223:3225 - -![AWX-Login-URL-Kubernetes][9] - -Click on Log In after entering the credentials. - -![Ansible-AWX-Web-Dashboard][10] - -Congratulations! You have successfully installed Ansible AWX on Kubernetes. You can now use AWX to automate your IT infrastructure and make your life as a sysadmin easier. - --------------------------------------------------------------------------------- - -via: https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/ - -作者:[Pradeep Kumar][a] -选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linuxtechi.com/author/pradeep/ -[b]: https://github.com/lkxed/ -[1]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Install-helm-linux-command-line.png?ezimgfmt=rs%3Adevice%2Frscb22-1 -[2]: https://www.linuxtechi.com/wp-content/uploads/2023/05/helm-install-awx-operator-kubernetes.png -[3]: https://www.linuxtechi.com/wp-content/uploads/2023/05/awx-operator-pod-status-kubectl.png -[4]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Postgres-pv-awx-kubernetes.png -[5]: https://www.linuxtechi.com/wp-content/uploads/2023/05/posgres-pvx-awx-kubernetes.png -[6]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-awx-yaml-file.png -[7]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-AWX-Pods-Status-Kubernetes.png -[8]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Expose-Ansible-AWX-Web-NodePort-Kubernetes.png -[9]: https://www.linuxtechi.com/wp-content/uploads/2023/05/AWX-Login-URL-Kubernetes.png -[10]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-AWX-Web-Dashboard.png \ No newline at end of file diff --git a/translated/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md b/translated/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md new file mode 100644 index 0000000000..04d8474486 --- /dev/null +++ b/translated/tech/20230524.1 ⭐️⭐️ How to Install Ansible AWX on Kubernetes Cluster.md @@ -0,0 +1,279 @@ +[#]: subject: "How to Install Ansible AWX on Kubernetes Cluster" +[#]: via: "https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Kubernetes 集群上安装 Ansible AWX +====== + +在本文中,我们将逐步向你展示如何在 Kubernetes (k8s) 集群上安装 Ansible AWX。 + +Ansible AWX 是一个强大的开源工具,用于管理和自动化 IT 基础设施。AWX 为 Ansible 提供图形用户界面,使你可以轻松创建、安排和运行 Ansible playbook。 + +另一方面,Kubernetes 是一种流行的容器编排平台,广泛用于部署和管理容器化应用。 + +##### 先决条件 + +- Kubernetes 集群 +- Kubectl +- 具有 sudo 权限和集群管理员权限的普通用户 +- 互联网连接 + +### 步骤 1:安装 helm + +如果你的系统上安装了 helm,则在命令下运行以进行安装, + +``` +$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 +$ chmod +x get_helm.sh +$ ./get_helm.sh +$ helm version +``` + +![Install-helm-linux-command-line][1] + +### 步骤 2:安装 AWX chart + +在 Kubernetes 上安装 AWX 的最简单方法是使用 AWX Helm chart。因此,要通过 chart 安装 AWX,首先使用以下 helm 命令添加仓库。 + +``` +$ helm repo add awx-operator https://ansible.github.io/awx-operator/ +"awx-operator" has been added to your repositories +$ +``` + +注意:如果你之前已经添加过此仓库,请在命令下运行以获取最新版本的软件包。 + +``` +$ helm repo update +``` + +要通过 chrt 安装 awx-operator,请运行: + +``` +$ helm install ansible-awx-operator awx-operator/awx-operator -n awx --create-namespace +``` + +![helm-install-awx-operator-kubernetes][2] + +这将下载 AWX chart 并将其安装在 awx 命名空间中的 Kubernetes 集群上。安装过程可能需要几分钟,请耐心等待。 + +### 步骤 3:验证 AWX operator 安装 + +安装成功后,你可以通过运行以下命令来验证 AWX operator 状态: + +``` +$ sudo kubectl get pods -n awx +``` + +你应该看到这样的东西: + +![awx-operator-pod-status-kubectl][3] + +### 步骤 4: 创建 PV、PVC 并部署 AWX yaml 文件 + +AWX 需要 postgres pod 的持久卷。那么,让我们首先为本地卷创建一个存储类。 + +注意:在本文中,我使用本地文件系统作为持久卷。 + +``` +$ vi local-storage-class.yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: local-storage + namespace: awxprovisioner: kubernetes.io/no-provisioner +volumeBindingMode: WaitForFirstConsumer +``` + +保存并关闭文件,然后运行: + +``` +$ kubectl create -f local-storage-class.yaml +$ kubectl get sc -n awx +NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION +local-storage kubernetes.io/no-provisioner Delete WaitForFirstConsumer false +$ +``` + +接下来使用以下 pv.yaml 文件创建持久卷 (pv): + +``` +$ vi pv.yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: postgres-pv + namespace: awx +spec: + capacity: + storage: 10Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Delete + storageClassName: local-storage + local: + path: /mnt/storage + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - k8s-worker +``` + +保存并退出文件。 + +![Postgres-pv-awx-kubernetes][4] + +重要说明:确保文件夹 “/mnt/storage” 存在于工作节点上,如果不存在,则在工作节点上使用 mkdir 命令创建它。在我们的例子中,工作节点是 “k8s-worker”。 + +执行下面的命令在 awx 命名空间中创建 postgres-pv。 + +``` +$ kubectl create -f pv.yaml +``` + +成功创建 pv 后,使用 pvc.yaml 文件创建 persistentvolumecliam: + +``` +$ vi pvc.yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-13-ansible-awx-postgres-13-0 + namespace: awx +spec: + storageClassName: local-storage + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +![posgres-pvc-awx-kubernetes][5] + +要创建 PVC,请运行以下 kubectl 命令: + +``` +$ kubectl create -f pvc.yaml +``` + +使用下面的命令验证 pv 和 pvc 的状态: + +``` +$ kubectl get pv,pvc -n awx +``` + +现在,我们都准备好部署 AWX 实例了。创建一个包含以下内容的 ansible-awx.yaml 文件: + +``` +$ vi ansible-awx.yaml +--- +apiVersion: awx.ansible.com/v1beta1 +kind: AWX +metadata: + name: ansible-awx + namespace: awx +spec: + service_type: nodeport + postgres_storage_class: local-storage +``` + +![Ansible-awx-yaml-file][6] + +保存并关闭文件。 + +执行以下 kubectl 命令来部署 awx 实例: + +``` +$ kubectl create -f ansible-awx.yaml +``` + +等待几分钟,然后检查 awx 命名空间中的 pod 状态。 + +``` +$ kubectl get pods -n awx +``` + +![Ansible-AWX-Pods-Status-Kubernetes][7] + +### 步骤 5:访问 AWX Web 界面 + +要访问 AWX Web 界面,你需要创建一个公开 awx-web 部署的服务: + +``` +$ kubectl expose deployment ansible-awx-web --name ansible-awx-web-svc --type NodePort -n awx +``` + +此命令将创建一个 NodePort 服务,该服务将 AWX Web 容器的端口映射到 Kubernetes 节点上的端口。你可以通过运行以下命令找到端口号: + +``` +$ kubectl get svc ansible-awx-web-svc -n awx +``` + +这将输出如下内容: + +``` +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +ansible-awx-web-svc NodePort 10.99.83.248 8052:32254/TCP 82s +``` + +在此示例中,Web 服务在端口 32254 上可用。 + +![Expose-Ansible-AWX-Web-NodePort-Kubernetes][8] + +默认情况下,admin 用户是 Web 界面的 admin,密码在 -admin-password secret 中。要检索管理员密码,请运行: + +``` +$ kubectl get secrets -n awx | grep -i admin-password +ansible-awx-admin-password Opaque 1 109m +$ +$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode ; echo +l9mWcIOXQhSKnzZQyQQ9LZf3awDV0YMJ +$ +``` + +你现在可以打开 Web 浏览器并进入 `http://:/` 来访问 AWX Web 界面。在上面的示例中,URL 是: + +http://192.168.1.223:3225 + +![AWX-Login-URL-Kubernetes][9] + +输入凭据后单击登录。 + +![Ansible-AWX-Web-Dashboard][10] + +恭喜! 你已在 Kubernetes 上成功安装 Ansible AWX。你现在可以使用 AWX 来自动化你的 IT 基础架构,并让你作为系统管理员的生活更轻松。 + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/ + +作者:[Pradeep Kumar][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed/ +[1]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Install-helm-linux-command-line.png?ezimgfmt=rs%3Adevice%2Frscb22-1 +[2]: https://www.linuxtechi.com/wp-content/uploads/2023/05/helm-install-awx-operator-kubernetes.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2023/05/awx-operator-pod-status-kubectl.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Postgres-pv-awx-kubernetes.png +[5]: https://www.linuxtechi.com/wp-content/uploads/2023/05/posgres-pvx-awx-kubernetes.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-awx-yaml-file.png +[7]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-AWX-Pods-Status-Kubernetes.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Expose-Ansible-AWX-Web-NodePort-Kubernetes.png +[9]: https://www.linuxtechi.com/wp-content/uploads/2023/05/AWX-Login-URL-Kubernetes.png +[10]: https://www.linuxtechi.com/wp-content/uploads/2023/05/Ansible-AWX-Web-Dashboard.png \ No newline at end of file