helm安装awx2.19.1(最新版)的详细教程

awx介绍

什么是AWX?

AWX(Ansible Web eXecutable)是Ansible的一个开源项目,它提供了一个基于Web的用户界面和REST API,用于简化和管理Ansible的自动化任务。AWX使得用户能够通过图形界面方便地操作和控制Ansible的运行,特别适合那些不熟悉命令行操作或者希望集中管理多个Ansible项目的团队和个人。

简而言之,AWX是Ansible Tower的开源版本。Ansible Tower是Red Hat对AWX的商业化产品,AWX作为其开源基础版本,仍然能够提供大部分强大的功能,适合小型团队或开发人员使用。

AWX的核心功能

AWX的核心功能包括:
Web UI(用户界面):
提供一个图形化界面,让用户能够方便地管理、运行、调度和监控Ansible任务。
用户可以创建和管理项目、库存、模板等,支持通过浏览器轻松访问。

REST API:
AWX为开发人员提供了丰富的RESTful API接口,用户可以通过API进行操作、集成和自动化任务,适合与其他工具和系统进行集成。

工作流管理:
支持定义复杂的自动化工作流,可以将多个Ansible Playbook任务串联起来执行,简化复杂任务的自动化。

调度任务:
允许用户设置任务的自动化执行时间表,例如定时运行某些Playbook。
权限控制与多租户支持:
支持基于角色的访问控制(RBAC),用户可以根据权限分配不同的访问级别,保障系统的安全性。
支持多租户功能,使得不同的团队可以共享同一个AWX实例,互不干扰。

集成管理:
AWX支持与其他系统(如源代码管理工具Git、容器平台等)集成,便于管理和协调多种环境下的自动化任务。

实时日志和监控:
在Web UI中,用户可以实时查看Ansible任务的执行日志,帮助快速定位问题。
提供任务的历史记录查询,方便进行后续审计。

AWX与Ansible Tower的区别

AWX和Ansible Tower有很多相似之处,主要的区别在于:
开源与商业化: AWX是完全开源的,而Ansible Tower是Red Hat提供的商业产品,需要付费购买。
功能支持: Ansible Tower提供了一些AWX没有的高级功能,如更复杂的报告、支持企业级认证、服务级别协议(SLA)、更细粒度的监控和支持等。

对于大部分小型团队或开发者来说,AWX已经足够强大,能够满足日常的自动化管理需求。如果需要更高级的企业支持或者更复杂的管理功能,可以考虑使用Ansible Tower。

AWX的优势

开源与免费: AWX是完全免费的开源工具,不需要购买许可证。
强大的功能: 它继承了Ansible强大的自动化功能,集成了Web UI、API和工作流等,适合大多数自动化需求。
灵活的扩展性: 通过API和插件机制,可以轻松与其他工具和系统集成,进行更加复杂的自动化任务。
多用户和多团队支持: AWX提供了基于角色的访问控制(RBAC),支持多租户环境,能够满足企业的需求。

AWX的应用场景

IT运维: AWX能够帮助运维团队自动化日常的服务器配置、应用部署、系统监控等任务。
开发与测试: 开发团队可以通过AWX快速部署开发环境,执行自动化测试,确保软件质量。
多环境管理: AWX适用于多环境的自动化任务管理,可以管理开发、测试、生产等不同环境下的自动化作业。
CI/CD集成: AWX可以作为持续集成和持续部署(CI/CD)流程的一部分,与GitLab、Jenkins等工具配合,简化软件发布过程。

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G

版本 rocky9.2
已部署k8s-1.28.2

部署过程

一、安装helm

1.安装helm
wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz
tar xf helm-v3.13.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/
helm version

在这里插入图片描述

2.添加awx仓库
helm repo add awx-operator https://ansible-community.github.io/awx-operator-helm/

二、部署awx

1.部署awx-operator
helm install my-awx-operator awx-operator/awx-operator -n awx --create-namespace
helm list -n awx

在这里插入图片描述
查看pod

kubectl get pod -n awx

在这里插入图片描述

2.部署awx-demo
vim awx.yaml
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx-demo
  namespace: awx
spec:
  service_type: nodeport

然后apply

kubectl apply -f awx.yaml
kubectl get pod -n awx

八成会pending,describe会发现是因为没有pv,创建一个pv即可(报错信息0/3)
在这里插入图片描述

kubectl describe pod -n awx awx-demo-postgres-15-0

在这里插入图片描述

vim pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: postgres-15-awx-demo-postgres-15-0-pv
  labels:
    app.kubernetes.io/component: database
    app.kubernetes.io/instance: postgres-15-awx-demo
    app.kubernetes.io/managed-by: awx-operator
    app.kubernetes.io/name: postgres-15
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  volumeMode: Filesystem
  hostPath:
    path: /var/lib/pgsql/data  # 可根据实际存储路径调整
  claimRef:
    namespace: awx
    name: postgres-15-awx-demo-postgres-15-0  # PVC 的名称

然后apply

kubectl apply -f pv.yaml

看pv和pvc状态(都是Bound就对了,如果不是翻到最后看常见故障1)

kubectl get pvc -n awx

在这里插入图片描述

kubectl get pv -n awx

在这里插入图片描述

然后就会发现还在报错,但报错信息变了

kubectl describe pod -n awx awx-demo-postgres-15-0

在这里插入图片描述
我当初就是卡这里了,然后在闲鱼花了49请大佬看了看,发现是权限的问题
看这个pod调度到哪个节点了

kubectl get pod -n awx -o wide

现在pod状态不固定,反正不是running
在这里插入图片描述
然后到k8s-worker01上

mkdir -p /var/lib/pgsql/data
chmod 777 -R /var/lib/pgsql/

然后等(要是一直不变翻到最后看常见故障2)

kubectl get pod -n awx

在这里插入图片描述

然后看svc

kubectl get svc -n awx

在这里插入图片描述
可以看到nodeport模式对外发布的是32499端口

3.浏览器访问

我ip是192.168.10.11 根据自己ip来

http://192.168.10.11:32499/

在这里插入图片描述
然后找密码

kubectl get secret -n awx

在这里插入图片描述

kubectl -n awx get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo 

输出的就是密码
账号是admin
登录即可,根据自己的来
我这里是

gD6Y0fwIQGzs9gypamulaJh86lIG7F0L

在这里插入图片描述
然后就进来了
在这里插入图片描述

常见故障

1.pv和pvc没自动绑定

如果是pvc一直pending,删除后重新创建

kubectl delete pvc -n awx postgres-15-awx-demo-postgres-15-0 

写一个pvc的yaml文件,强制绑定到pv

vim pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-15-awx-demo-postgres-15-0
  namespace: awx
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 8Gi
  volumeName: postgres-15-awx-demo-postgres-15-0-pv  # 强制指定 PV

然后apply

kubectl apply -f pvc.yaml

应该就好了

2.给了权限后,awx-demo一直不变

删了重新安就行

kubectl delete -f awx.yaml
helm uninstall my-awx-operator -n awx
helm install my-awx-operator awx-operator/awx-operator -n awx --create-namespace
kubectl apply -f awx.yaml

还有别的错误私信我,有空会看

总结

AWX作为Ansible的开源Web界面,提供了强大而易于管理的自动化解决方案。无论是在小型团队还是企业级环境中,AWX都能有效地帮助用户简化Ansible的管理和使用。通过Web UI和REST API,用户能够更加高效地调度任务、管理工作流并监控自动化进程,是一个非常适合DevOps实践的工具。如果你还没有尝试过AWX,不妨开始部署并使用它来提升自动化运维的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃龙利鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值