Redian新闻
>
如何在 Kubernetes 集群上安装 Ansible AWX | Linux 中国

如何在 Kubernetes 集群上安装 Ansible AWX | Linux 中国

科技
 
导读:在本文中,我们将逐步向你展示如何在 Kubernetes(k8s)集群上安装 Ansible AWX。
本文字数:4820,阅读时长大约:5分钟

在本文中,我们将逐步向你展示如何在 Kubernetes(k8s)集群上安装 Ansible AWX。

Ansible AWX 是一个强大的开源工具,用于管理和自动化 IT 基础设施。AWX 为 Ansible 提供图形用户界面,使你可以轻松创建、安排和运行 Ansible 剧本(Playbook)

另一方面,Kubernetes 是一种流行的容器编排平台,广泛用于部署和管理容器化应用。

先决条件:

◈ Kubernetes 集群
◈ Kubectl
◈ 具有 sudo 权限和集群管理员权限的普通用户
◈ 互联网连接

步骤 1:安装 Helm

如果你的系统上安装了 Helm,则在命令下运行以进行安装,

  1. $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
  2. $ chmod +x get_helm.sh
  3. $ ./get_helm.sh
  4. $ helm version

Install-helm-linux-command-line

步骤 2:安装 AWX chart

在 Kubernetes 上安装 AWX 的最简单方法是使用 AWX Helm “海图(chart)”。因此,要通过 “海图” 安装 AWX,首先使用以下 helm 命令添加仓库。(LCTT 译注:Kubernetes 生态中大量使用了和航海有关的比喻,因此本文在翻译时也采用了这些比喻)

  1. $ helm repo add awx-operator https://ansible.github.io/awx-operator/
  2. "awx-operator" has been added to your repositories
  3. $

注意:如果你之前已经添加过此仓库,请在命令下运行以获取最新版本的软件包。

  1. $ helm repo update

要通过 Helm 安装 awx-operator,请运行:

  1. $ helm install ansible-awx-operator awx-operator/awx-operator -n awx --create-namespace

helm-install-awx-operator-kubernetes

这将下载 AWX 海图并将其安装在 awx 命名空间中的 Kubernetes 集群上。安装过程可能需要几分钟,请耐心等待。

步骤 3:验证 AWX 操作员安装

安装成功后,你可以通过运行以下命令来验证 AWX 操作员(operator) 状态:

  1. $ sudo kubectl get pods -n awx

你应该看到这样的东西:

awx-operator-pod-status-kubectl

步骤 4: 创建 PV、PVC 并部署 AWX yaml 文件

AWX 需要 postgres 容器荚(pod) 的持久卷。那么,让我们首先为本地卷创建一个存储类。

注意:在本文中,我使用本地文件系统作为持久卷。

  1. $ vi local-storage-class.yaml
  2. apiVersion: storage.k8s.io/v1
  3. kind: StorageClass
  4. metadata:
  5. name: local-storage
  6. namespace: awxprovisioner: kubernetes.io/no-provisioner
  7. volumeBindingMode: WaitForFirstConsumer

保存并关闭文件,然后运行:

  1. $ kubectl create -f local-storage-class.yaml
  2. $ kubectl get sc -n awx
  3. NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION
  4. local-storage kubernetes.io/no-provisioner Delete WaitForFirstConsumer false
  5. $

接下来使用以下 pv.yaml 文件创建持久卷(PV):

  1. $ vi pv.yaml
  2. apiVersion: v1
  3. kind: PersistentVolume
  4. metadata:
  5. name: postgres-pv
  6. namespace: awx
  7. spec:
  8. capacity:
  9. storage: 10Gi
  10. volumeMode: Filesystem
  11. accessModes:
  12. - ReadWriteOnce
  13. persistentVolumeReclaimPolicy: Delete
  14. storageClassName: local-storage
  15. local:
  16. path: /mnt/storage
  17. nodeAffinity:
  18. required:
  19. nodeSelectorTerms:
  20. - matchExpressions:
  21. - key: kubernetes.io/hostname
  22. operator: In
  23. values:
  24. - k8s-worker

保存并退出文件。

Postgres-pv-awx-kubernetes

重要说明:确保文件夹 /mnt/storage 存在于工作节点上,如果不存在,则在工作节点上使用 mkdir 命令创建它。在我们的例子中,工作节点是 k8s-worker

执行下面的命令在 awx 命名空间中创建 postgres-pv

  1. $ kubectl create -f pv.yaml

成功创建 PV 后,使用 pvc.yaml 文件创建 PersistentVolumeClaim:

  1. $ vi pvc.yaml
  2. apiVersion: v1
  3. kind: PersistentVolumeClaim
  4. metadata:
  5. name: postgres-13-ansible-awx-postgres-13-0
  6. namespace: awx
  7. spec:
  8. storageClassName: local-storage
  9. accessModes:
  10. - ReadWriteOnce
  11. resources:
  12. requests:
  13. storage: 10Gi

posgres-pvc-awx-kubernetes

要创建 PVC,请运行以下 kubectl 命令:

  1. $ kubectl create -f pvc.yaml

使用下面的命令验证 PV 和 PVC 的状态:

  1. $ kubectl get pv,pvc -n awx

现在,我们都准备好部署 AWX 实例了。创建一个包含以下内容的 ansible-awx.yaml 文件:

  1. $ vi ansible-awx.yaml
  2. ---
  3. apiVersion: awx.ansible.com/v1beta1
  4. kind: AWX
  5. metadata:
  6. name: ansible-awx
  7. namespace: awx
  8. spec:
  9. service_type: nodeport
  10. postgres_storage_class: local-storage

Ansible-awx-yaml-file

保存并关闭文件。

执行以下 kubectl 命令来部署 awx 实例:

  1. $ kubectl create -f ansible-awx.yaml

等待几分钟,然后检查 awx 命名空间中的容器荚状态。

  1. $ kubectl get pods -n awx

Ansible-AWX-Pods-Status-Kubernetes

步骤 5:访问 AWX Web 界面

要访问 AWX Web 界面,你需要创建一个公开 awx-web 部署的服务:

  1. $ kubectl expose deployment ansible-awx-web --name ansible-awx-web-svc --type NodePort -n awx

此命令将创建一个 NodePort 服务,该服务将 AWX Web 容器的端口映射到 Kubernetes 节点上的端口。你可以通过运行以下命令找到端口号:

  1. $ kubectl get svc ansible-awx-web-svc -n awx

这将输出如下内容:

  1. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  2. ansible-awx-web-svc NodePort 10.99.83.248 <none> 8052:32254/TCP 82s

在此示例中,Web 服务在端口 32254 上可用。

Expose-Ansible-AWX-Web-NodePort-Kubernetes

默认情况下,admin 用户是 Web 界面的 admin,密码在 <resourcename>-admin-password 机密信息中。要检索管理员密码,请运行:

  1. $ kubectl get secrets -n awx | grep -i admin-password
  2. ansible-awx-admin-password Opaque 1 109m
  3. $
  4. $ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode ; echo
  5. l9mWcIOXQhSKnzZQyQQ9LZf3awDV0YMJ
  6. $

你现在可以打开 Web 浏览器并进入 http://<node-ip>:<node-port>/ 来访问 AWX Web 界面。在上面的示例中,URL 是:

  1. http://192.168.1.223:3225

AWX-Login-URL-Kubernetes

输入凭据后单击登录。

Ansible-AWX-Web-Dashboard

恭喜! 你已在 Kubernetes 上成功安装 Ansible AWX。你现在可以使用 AWX 来自动化你的 IT 基础架构,并让你作为系统管理员的生活更轻松。

(题图:MJ/bfd354aa-2ee5-4555-98b8-ac5207cbeabe)


via: https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :geekpi
💎💎💎💎
翻译: 1958.5 篇
|
贡献: 3530 天
2013-10-25
2023-06-25
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
这些 kubernetes 的安全机制你都了解吗?如何在 Ubuntu 中安装 Wine | Linux 中国使用开源工具监控 Kubernetes 云成本 | Linux 中国全民皆医,补充版对“共产主义”相关概念的一个简单梳理Kubernetes DevSecOps 实践比 Ubuntu 更好?Ubuntu 爱好者的 11 款最佳 Linux 发行版 | Linux 中国973页kubernetes学习笔记,核心干货分享深入理解Kubernetes Pod调试如何在 Rocky Linux 9 / AlmaLinux 9 上安装 KVM | Linux 中国21道题帮你轻松拿捏 Kubernetes 面试使用 GoogleTest 和 CTest 进行单元测试 | Linux 中国南山國畫癸卯之春KSOC实验室发布首批Kubernetes材料清单(KBOMs)分步指南:安装和访问 Kubernetes 仪表板 | Linux 中国973页kubernetes学习笔记,全是K8S核心干货,限时分享3天如何在 Kubernetes 集群中设置动态 NFS 配置 | Linux 中国如何在 Ubuntu 和其他 Linux 发行版中查看 AVIF 图像 | Linux 中国如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群 | Linux 中国ChatGPT 团队是如何使用Kubernetes的“互联网”要写成the Internet还是the internet?图解 Kubernetes Pod 是如何获取 IP 地址?Kubernetes 如何保障容器可用性?一文介绍探针的使用在 Ubuntu 上安装和使用 Qemu | Linux 中国融会贯通:鬼压床与1954年1月泰兴江水突然断流「sealos」完成2000万元的天使轮和天使+轮融资,旨在打造以kubernetes为内核的云操作系统|早起看早期Kubernetes 1.27发布,冻结了原有的镜像注册中心并提供Pod资源就地更新功能3个管理多 Kubernetes 集群实用工具在 Ubuntu 上安装和使用 Flatpak | Linux 中国排障有用 | Docker 容器和 Kubernetes 退出码中文指南如何在 Ubuntu 22.04 中安装和使用 Wireshark | Linux 中国如何快速查看 Kubernetes Pod 崩溃前的日志免费下载:技术人必看企业级Kubernetes战略方针如何在 RHEL 8 上安装 FreeIPA 服务器 | Linux 中国身份黑了 接到陌生来电有人吓尿有人欢笑(图)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。