首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >awx详解

awx详解

原创
作者头像
q_7
修改2026-04-17 13:00:46
修改2026-04-17 13:00:46
100
举报

ansible的可视化的界面

k8s部署应用

  • 资源清单,相当于在linux上编译安装软件包
  • helm用的特别多
  • kustmize
  • operator
  • awx的部署,

部署完awx的operator,就会出现一些一些资源对象,api-resources | grep awx

kubectl 部署即可

需要一个pv,pvc,动态制备的pv,使用的是nfs

awx-demo.yml文件

需要改变这个pvc,awx-demo这个文件yaml里面修改即可

awx

awx是什么

管理ansible的,一个web界面

1、部署awx

1、克隆仓库

代码语言:bash
复制
[root@master01 ~]# git clone https://gitee.com/yftyxa/awx-operator.git

# 切换分支,这个是稳定版本的
[root@master01 awx-operator]# git checkout exam 

[root@master01 awx-operator]# cd config/default/
[root@master01 default]# ls
awx-demo.yaml  kustomization.yaml  manager_auth_proxy_patch.yaml  manager_config_patch.yaml

这个yaml文件,跟我们之前写的yaml文件的格式不一样,现在需要通过命令来生成原始的yaml

2、生成yaml

kubectl kustomize 这个命令来生成yaml.但是需要注意的就是这个必须是一个目录,而不是一个文件

代码语言:bash
复制
# 创建部署的目录,避免混杂在一起了
[root@master01 default]# mkdir deploy
[root@master01 default]# cd deploy/

# 将之前的好几个文件合并到同一个文件即可
[root@master01 deploy]# kubectl kustomize ../ > awx-operator.yml

3、部署operator

代码语言:bash
复制
[root@master01 deploy]# kubectl apply -f awx-operator.yml 
namespace/awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
error: unable to recognize "awx-operator.yml": no matches for kind "AWX" in version "awx.ansible.com/v1beta1"

上面有一个报错,说不识别这个资源对象,不需要管这个,再次执行一遍这个文件

代码语言:bash
复制
[root@master01 deploy]# kubectl apply -f awx-operator.yml 
namespace/awx unchanged
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com unchanged
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com unchanged
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com unchanged
serviceaccount/awx-operator-controller-manager unchanged
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role configured
role.rbac.authorization.k8s.io/awx-operator-leader-election-role unchanged
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader unchanged
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role unchanged
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding unchanged
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding unchanged
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding unchanged
configmap/awx-operator-awx-manager-config unchanged
service/awx-operator-controller-manager-metrics-service unchanged
deployment.apps/awx-operator-controller-manager configured
awx.awx.ansible.com/awx-operator-awx-demo created

就没有保存了

发现创建了很多的资源对象

代码语言:bash
复制
[root@master01 deploy]# kubectl api-resources | grep -i awx
awxbackups                                     awx.ansible.com/v1beta1                true         AWXBackup
awxrestores                                    awx.ansible.com/v1beta1                true         AWXRestore
awxs                                           awx.ansible.com/v1beta1                true         AWX

4、查看pod

让这个pod能够修改pv底层使用的目录所有者,允许客户端的root操作nfs共享出来的文件

代码语言:bash
复制
# 允许客户端使用root对nfs目录操作的权限
[root@master01 ~]# cat /etc/exports
/nfsdata *(rw,no_root_squash)

这个awx中的数据库是需要使用存储的,pv,动态存储

代码语言:bash
复制
# 存储类设置为默认的,添加注释修改为默认的动态存储,以后创建pvc就自动的去找这个动态存储类
storageclass.kubernetes.io/is-default-class: "true"

[root@master01 deploy]# cat awx-demo.yaml 
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX  # awx资源
metadata:
  name: awx-demo
  namespace: awx
spec:
  postgres_storage_class: "nfs-client"  # 使用这个nfs动态存储
  service_type: nodeport
  postgres_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/postgres  # 能够拉取到的镜像
  postgres_image_version: "13"
  redis_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/redis
  redis_image_version: "7"

kubectl apply -f awx-demo.yaml


# 查看awx资源
[root@master01 ~]# kubectl get awx -n awx 
NAME                    AGE
awx-demo                88m  # 这个就是我们创建出来的,这个会自己做一些事情,创建后面的一些pod,awx资源
awx-operator-awx-demo   89m  # 删除这个旧的awx


# 应用这个文件,删除awx-operator-awx-demo-postgres-13-0  这个资源,不受控制的


root@master01 ~]# kubectl get pod -n awx 
NAME                                               READY   STATUS             RESTARTS   AGE
awx-demo-postgres-13-0                             1/1     Running            1          83m
awx-demo-task-7f495655c6-vl9q7                     4/4     Running            4          81m
awx-demo-web-68c55fc6d6-hkg4k                      3/3     Running            3          81m
awx-operator-awx-demo-postgres-13-0                0/1     ImagePullBackOff   0          78m
awx-operator-controller-manager-85d95854c9-5zrk4   2/2     Running            3          84m

# 删除这个镜像拉取失败的,可以不用管他的

如果还有问题的话,就是查看这些pod的镜像,都弄成能下载的镜像即可

非常的折磨人,改了配置文件,还是原样的,我去了啊,特性

执行的动作是黑盒的,客户端不可控

查看访问端口

代码语言:bash
复制
# 映射到主机上的30906端口
[root@master01 ~]# kubectl get svc -n awx 
NAME                                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
awx-demo-postgres-13                              ClusterIP   None            <none>        5432/TCP       84m
awx-demo-service                                  NodePort    10.107.76.241   <none>        80:30906/TCP   82m
awx-operator-awx-demo-postgres-13                 ClusterIP   None            <none>        5432/TCP       85m
awx-operator-controller-manager-metrics-service   ClusterIP   10.109.37.178   <none>        8443/TCP       85m

2、登录awx

上面我们查看了端口映射为30906,访问这个端口即可

img
img

1、查看默认密码

默认账号是admin

默认密码在awx空间下有一个secret

代码语言:bash
复制
[root@master01 ~]# kubectl get secret -n awx  | grep admin
awx-demo-admin-password                        Opaque                                1      98m

# 以yaml文件展示出来即可
[root@master01 ~]# kubectl get secrets -n awx  awx-demo-admin-password  -o yaml

# 对这个密码进行解密
[root@master01 ~]# echo "aUtDZzQ0bDRMWFZtNnFCTkg4VDFCUnlpU2M1UHBWWEo=" | base64 -d 
iKCg44l4LXVm6qBNH8T1BRyiSc5PpVXJ
img
img

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • awx
    • awx是什么
    • 1、部署awx
      • 1、克隆仓库
      • 2、生成yaml
      • 3、部署operator
      • 4、查看pod
    • 2、登录awx
      • 1、查看默认密码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档