解锁 AWX+Ansible 自动化运维新体验:快速摆设实战

一给  论坛元老 | 2025-3-27 12:31:36 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1842|帖子 1842|积分 5526

Ansible 和 AWX 是自动化运维领域的强大工具组合。Ansible 是一个简单高效的 IT 自动化工具,而 AWX 则是 Ansible 的开源 Web 管理平台,提供图形化界面来管理 Ansible 任务。本指南将带你一步步在 Ubuntu 22.04 上安装 Ansible 和 AWX,使用 Minikube 搭建单节点 Kubernetes 集群,并适配网络不稳定的环境。无论你是初学者还是有经验的运维工程师,这篇超详细指南都能帮你成功摆设 AWX 并运行你的第一个任务!
              
       环境说明

      

  • 操纵体系:Ubuntu 22.04
  • 主节点:IP 192.168.85.132,主机名 leo
  • Kubernetes 环境:Minikube(单节点集群)
  • 容器运行时:Docker
  • Ansible 版本:最新稳定版(通过 apt 安装)
  • AWX 版本:2.19.0(通过 AWX Operator 摆设)
  • 目标:安装 Ansible 和 AWX,搭建单节点 Kubernetes 集群并运行 AWX,适配网络不稳定环境。
      
       组件作用

      

  • Ansible:一个开源的自动化工具,用于配置管理、应用摆设和任务自动化,支持通过 SSH 管理长途主机,无需安装客户端。
  • AWX:Ansible 的官方 Web 管理平台,提供图形化界面,支持任务调理、库存管理、权限控制和日志查看,是企业级 Ansible 管理的首选工具。
  • Docker:容器运行时,用于运行 Minikube 和 AWX 的容器化组件。
  • Minikube:一个轻量级的 Kubernetes 实现工具,用于在本地快速搭建单节点 Kubernetes 集群,适合开辟和测试环境。
  • kubectl:Kubernetes 的下令行工具,用于管理 Kubernetes 集群资源。
  • Kustomize:一个 Kubernetes 原生配置管理工具,AWX Operator 的摆设依赖它来处置惩罚 YAML 文件。
  • make:构建工具,用于执行 AWX Operator 的摆设脚本。
      
       软件介绍

       Ansible 是一个简单而强大的 IT 自动化平台,允许用户通过 YAML 格式的 Playbook 定义任务,支持配置管理、应用摆设、编排等功能。AWX 是 Ansible Tower 的开源版本,提供了一个 Web 界面来管理 Ansible 任务,支持多用户协作、任务调理和权限管理。通过在 Kubernetes 上摆设 AWX,可以实现更高的可扩展性和灵活性。本指南将使用 Minikube 在 Ubuntu 22.04 上摆设 AWX,确保纵然在网络不稳定的环境下也能成功安装。
      
       本次安装须要的镜像如下:


       软件如下

      

       集群镜像如下

      

       虚拟机信息如下

      

        
               本次安装通过Vmware虚拟机举行安装,配置资源如下,但是实际使用的话8G内存+8CPU+50GB磁盘就够用,我的资源多我就对此忽略不计了,我本次安装也是遇到了很多问题,才整理出这个完整的步调,本次的步调包括在线安装和离线摆设,还有就是这里面的镜像各人拉取后可以打包生存起来,下次安装的话可以省下来很多时间。
              安装步调

       第一部分:安装 Ansible

       1. 更新体系并安装 Ansible
      
  1. # 更新系统软件包索引,确保获取最新的软件包信息
  2. sudo apt update -y
  3. # 安装 software-properties-common,提供管理 PPA 源的工具
  4. sudo apt install -y software-properties-common
  5. # 添加 Ansible 官方 PPA 源,以便安装最新版本的 Ansible
  6. sudo add-apt-repository --yes --update ppa:ansible/ansible
  7. # 安装 Ansible 以及依赖工具 curl 和 git
  8. sudo apt install -y ansible curl git
复制代码
      离线安装(可选)
假如网络不稳定,可以离线下载 Ansible 的 .deb 包:
      

  • 访问 Debian 软件包页面 或 Ansible 官方 GitHub 发布页面,下载最新 .deb 文件(如 ansible_2.16.x_all.deb)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 安装下载的 .deb 包
    2. sudo dpkg -i /home/leo/ansible_2.16.x_all.deb
    3. # 解决可能的依赖问题
    4. sudo apt install -f -y
    复制代码
       2. 验证 Ansible 安装
      
  1. # 检查 Ansible 版本,验证是否安装成功
  2. ansible --version
复制代码
      盼望输出
      
  1. ansible [core 2.16.x]
复制代码
      
       第二部分:准备 Kubernetes 环境

       1. 安装 Docker
      
  1. # 安装 Docker 容器运行时
  2. sudo apt install -y docker.io
  3. # 启用并启动 Docker 服务
  4. sudo systemctl enable docker --now
复制代码
      离线安装(可选)
假如网络不稳定,可以离线下载 Docker 的 .deb 包:
      

  • 从 Docker 官网 下载最新 .deb 包(如 docker.io_20.10.21-0ubuntu1~22.04.3_amd64.deb)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 安装下载的 .deb 包
    2. sudo dpkg -i /home/leo/docker.io_*.deb
    3. # 解决可能的依赖问题
    4. sudo apt install -f -y
    5. # 启用并启动 Docker 服务
    6. sudo systemctl enable docker --now
    复制代码
       2. 配置用户权限
      
  1. # 将当前用户添加到 docker 组,避免每次运行 Docker 命令都需要 sudo
  2. sudo usermod -aG docker $USER && newgrp docker
复制代码
      3. 验证 Docker 安装
      
  1. # 检查 Docker 版本,验证是否安装成功
  2. docker --version
复制代码
      盼望输出
      
  1. Docker version 26.1.3, build 26.1.3-0ubuntu1~22.04.1
复制代码
      4. 安装 Minikube
      
  1. # 下载 Minikube 的最新版本二进制文件
  2. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  3. # 安装 Minikube 到系统路径
  4. sudo install minikube-linux-amd64 /usr/local/bin/minikube
复制代码
      离线安装(可选)
      

  • 从 Minikube GitHub Releases 下载 minikube-linux-amd64(直接链接:minikube-linux-amd64)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 安装 Minikube 到系统路径
    2. sudo install /home/leo/minikube-linux-amd64 /usr/local/bin/minikube
    复制代码
       5. 验证 Minikube 安装
      
  1. # 检查 Minikube 版本,验证是否安装成功
  2. minikube version
复制代码
      盼望输出
      
  1. minikube version: v1.35.0
复制代码
      6. 安装 kubectl
      
  1. # 下载 kubectl v1.32.0 的二进制文件
  2. curl -LO "https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl"
  3. # 赋予执行权限
  4. chmod +x kubectl
  5. # 移动到系统路径
  6. sudo mv kubectl /usr/local/bin/
复制代码
      离线安装(可选)
      

  • 从 Kubernetes GitHub Releases 下载 kubectl 的 Linux AMD64 二进制文件(直接链接:kubectl)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 赋予执行权限
    2. chmod +x /home/leo/kubectl
    3. # 移动到系统路径
    4. sudo mv /home/leo/kubectl /usr/local/bin/
    复制代码
       7. 验证 kubectl 安装
      
  1. # 检查 kubectl 版本,验证是否安装成功
  2. kubectl version --client
复制代码
      盼望输出
      
  1. Client Version: v1.32.0
复制代码
      8. 安装 make
      
  1. # 安装 make 工具,用于执行 AWX Operator 的部署脚本
  2. sudo apt install -y make
复制代码
      离线安装(可选)
      

  • 从 Ubuntu 软件源 下载最新 .deb 包(如 make_4.3-4.1build1_amd64.deb)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 安装下载的 .deb 包
    2. sudo dpkg -i /home/leo/make_*.deb
    3. # 解决可能的依赖问题
    4. sudo apt install -f -y
    复制代码
       9. 验证 make 安装
      
  1. # 检查 make 版本,验证是否安装成功
  2. make --version
复制代码
      盼望输出
      
  1. GNU Make 4.3
复制代码
      10. 启动 Minikube
      
  1. # 清理现有 Minikube 集群(如果存在)
  2. minikube delete
复制代码
      拉取 Minikube 镜像
      
  1. # 在线拉取 Minikube 所需的 kicbase 镜像
  2. docker pull gcr.io/k8s-minikube/kicbase:v0.0.46
复制代码
      假如拉取失败,使用华为云镜像源
      
  1. # 从华为云镜像源拉取 kicbase 镜像
  2. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/k8s-minikube/kicbase:v0.0.46
  3. # 打标签为原始镜像名称
  4. docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/k8s-minikube/kicbase:v0.0.46 gcr.io/k8s-minikube/kicbase:v0.0.46
复制代码
      打包镜像
      
  1. # 将 kicbase 镜像打包为 tar 文件,以便离线使用
  2. docker save -o /home/leo/kicbase-v0.0.46-amd64.tar gcr.io/k8s-minikube/kicbase:v0.0.46
复制代码
      加载镜像(验证打包是否可用)
      
  1. # 加载打包的镜像,验证是否可用
  2. docker load -i /home/leo/kicbase-v0.0.46-amd64.tar
复制代码
      盼望输出
      
  1. Loaded image: gcr.io/k8s-minikube/kicbase:v0.0.46
复制代码
      启动 Minikube
      
  1. # 启动 Minikube,指定 Docker 驱动,分配 6144Mi 内存和 4 个 CPU
  2. minikube start --driver=docker --memory=6144 --cpus=4
复制代码
      11. 验证 Minikube 状态
      
  1. # 检查 Minikube 状态,验证是否启动成功
  2. minikube status
复制代码
      盼望输出
      
  1. minikube
  2. type: Control Plane
  3. host: Running
  4. kubelet: Running
  5. apiserver: Running
  6. kubeconfig: Configured
复制代码
      
       第三部分:安装 AWX

       1. 下载并解压 AWX Operator
      
  1. # 下载 AWX Operator 2.19.0 的源码包
  2. curl -LO https://github.com/ansible/awx-operator/archive/refs/tags/2.19.0.tar.gz
  3. # 重命名为更清晰的文件名
  4. mv 2.19.0.tar.gz awx-operator-2.19.0.tar.gz
  5. # 解压源码包
  6. tar -xzf awx-operator-2.19.0.tar.gz
复制代码
      离线安装(可选)
      

  • 从 AWX Operator GitHub Releases 下载 awx-operator-2.19.0.tar.gz(直接链接:awx-operator-2.19.0.tar.gz)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 解压:
    1. # 解压下载的源码包
    2. tar -xzf /home/leo/awx-operator-2.19.0.tar.gz
    复制代码
       2. 安装 Kustomize(make deploy 依赖)
      
  1. # 下载 Kustomize v5.6.0 的二进制文件
  2. curl -LO https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.6.0/kustomize_v5.6.0_linux_amd64.tar.gz
  3. # 解压 Kustomize
  4. tar -xzf kustomize_v5.6.0_linux_amd64.tar.gz
  5. # 移动到系统路径
  6. sudo mv kustomize /usr/local/bin/
复制代码
      离线安装(可选)
      

  • 从 Kustomize GitHub Releases 下载 kustomize_v5.6.0_linux_amd64.tar.gz(直接链接:kustomize_v5.6.0_linux_amd64.tar.gz)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目次。
  • 安装:
    1. # 解压 Kustomize
    2. tar -xzf /home/leo/kustomize_v5.6.0_linux_amd64.tar.gz
    3. # 移动到系统路径
    4. sudo mv kustomize /usr/local/bin/
    复制代码
       3. 拉取并加载全部须要镜像
       修复 DNS 剖析(确保镜像源可访问)
      
  1. # 检查当前 DNS 配置
  2. cat /etc/resolv.conf
复制代码
      假如体现 nameserver 127.0.0.53,说明使用的是本地 DNS 署理,可能导致剖析失败。永久修改 DNS
      
  1. # 编辑 systemd-resolved 配置文件
  2. sudo nano /etc/systemd/resolved.conf
复制代码
      

  • 在 [Resolve] 部分添加:
    1. [Resolve]
    2. DNS=8.8.8.8 8.8.4.4
    3. FallbackDNS=223.5.5.5 223.6.6.6
    复制代码

    • 8.8.8.8 和 8.8.4.4 是 Google DNS。
    • 223.5.5.5 和 223.6.6.6 是阿里公共 DNS。

  • 生存并退出:Ctrl+O,Enter,Ctrl+X。
       重启 DNS 服务
      
  1. # 重启 systemd-resolved 服务以应用 DNS 配置
  2. sudo systemctl restart systemd-resolved
  3. # 确保 /etc/resolv.conf 指向正确的文件
  4. sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
复制代码
      验证 DNS 剖析
      
  1. # 测试是否能解析镜像源域名
  2. ping docker.m.daocloud.io
  3. ping docker.mirrors.ustc.edu.cn
复制代码
      假如仍然失败,临时修改 /etc/resolv.conf
      
  1. # 临时修改 DNS 配置
  2. sudo nano /etc/resolv.conf
复制代码
      

  • 修改为:
    1. nameserver 8.8.8.8
    2. nameserver 8.8.4.4
    复制代码
  • 生存并退出:Ctrl+O,Enter,Ctrl+X。
       拉取镜像
      

  • 拉取 gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0(AWX Operator 依赖)
    1. # 首选:从华为云镜像源拉取
    2. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    3. # 如果失败,尝试 DaoCloud 镜像源
    4. docker pull docker.m.daocloud.io/kubebuilder/kube-rbac-proxy:v0.15.0
    5. docker tag docker.m.daocloud.io/kubebuilder/kube-rbac-proxy:v0.15.0 gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    6. # 打标签(如果使用华为云镜像源)
    7. docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0 gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    8. # 加载到 Minikube
    9. minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    10. # 打包镜像
    11. docker save -o /home/leo/kube-rbac-proxy-v0.15.0.tar gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    12. # 验证打包是否可用
    13. docker rmi gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    14. docker load -i /home/leo/kube-rbac-proxy-v0.15.0.tar
    15. minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    复制代码
  • 拉取 quay.io/ansible/awx-operator:2.19.0(AWX Operator 镜像)
    1. # 首选:直接拉取
    2. docker pull quay.io/ansible/awx-operator:2.19.0
    3. # 如果失败,尝试 DaoCloud 镜像源
    4. docker pull docker.m.daocloud.io/ansible/awx-operator:2.19.0
    5. docker tag docker.m.daocloud.io/ansible/awx-operator:2.19.0 quay.io/ansible/awx-operator:2.19.0
    6. # 加载到 Minikube
    7. minikube image load quay.io/ansible/awx-operator:2.19.0
    8. # 打包镜像
    9. docker save -o /home/leo/awx-operator-2.19.0.tar quay.io/ansible/awx-operator:2.19.0
    10. # 验证打包是否可用
    11. docker rmi quay.io/ansible/awx-operator:2.19.0
    12. docker load -i /home/leo/awx-operator-2.19.0.tar
    13. minikube image load quay.io/ansible/awx-operator:2.19.0
    复制代码
  • 拉取 redis:7(AWX 依赖,修正为成功环境中的标签)
    1. # 首选:从 AWS 镜像源拉取
    2. docker pull public.ecr.aws/docker/library/redis:7.0
    3. # 如果失败,尝试 DaoCloud 镜像源
    4. docker pull docker.m.daocloud.io/library/redis:7.0
    5. docker tag docker.m.daocloud.io/library/redis:7.0 public.ecr.aws/docker/library/redis:7.0
    6. # 打标签为 redis:7(与成功环境一致)
    7. docker tag public.ecr.aws/docker/library/redis:7.0 redis:7
    8. # 加载到 Minikube
    9. minikube image load redis:7
    10. # 打包镜像
    11. docker save -o /home/leo/redis-7.tar redis:7
    12. # 验证打包是否可用
    13. docker rmi redis:7
    14. docker load -i /home/leo/redis-7.tar
    15. minikube image load redis:7
    复制代码
  • 拉取 quay.io/ansible/awx:24.6.0(AWX 镜像,与 AWX Operator 2.19.0 兼容)
    1. # 首选:直接拉取
    2. docker pull quay.io/ansible/awx:24.6.0
    3. # 如果失败,尝试 DaoCloud 镜像源
    4. docker pull docker.m.daocloud.io/ansible/awx:24.6.0
    5. docker tag docker.m.daocloud.io/ansible/awx:24.6.0 quay.io/ansible/awx:24.6.0
    6. # 如果已加载 quay.io/ansible/awx:24.6.1,打标签为 24.6.0
    7. docker tag quay.io/ansible/awx:24.6.1 quay.io/ansible/awx:24.6.0
    8. # 加载到 Minikube
    9. minikube image load quay.io/ansible/awx:24.6.0
    10. # 打包镜像
    11. docker save -o /home/leo/awx-24.6.0.tar quay.io/ansible/awx:24.6.0
    12. # 验证打包是否可用
    13. docker rmi quay.io/ansible/awx:24.6.0
    14. docker load -i /home/leo/awx-24.6.0.tar
    15. minikube image load quay.io/ansible/awx:24.6.0
    复制代码
  • 拉取 quay.io/ansible/awx-ee:24.6.0(AWX Execution Environment 镜像)
    1. # 首选:从 DaoCloud 镜像源拉取
    2. docker pull docker.m.daocloud.io/ansible/awx-ee:24.6.0
    3. # 备选 1:从中国科学技术大学镜像源拉取
    4. docker pull docker.mirrors.ustc.edu.cn/ansible/awx-ee:24.6.0
    5. # 备选 2:直接从 quay.io 拉取(可能需要代理)
    6. docker pull quay.io/ansible/awx-ee:24.6.0
    7. # 打标签(如果使用 DaoCloud 或中科大镜像源)
    8. docker tag docker.m.daocloud.io/ansible/awx-ee:24.6.0 quay.io/ansible/awx-ee:24.6.0
    9. # 或
    10. docker tag docker.mirrors.ustc.edu.cn/ansible/awx-ee:24.6.0 quay.io/ansible/awx-ee:24.6.0
    11. # 如果已加载 quay.io/ansible/awx-ee:24.6.1,打标签为 24.6.0
    12. docker tag quay.io/ansible/awx-ee:24.6.1 quay.io/ansible/awx-ee:24.6.0
    13. # 加载到 Minikube
    14. minikube image load quay.io/ansible/awx-ee:24.6.0
    15. # 打包镜像
    16. docker save -o /home/leo/awx-ee-24.6.0.tar quay.io/ansible/awx-ee:24.6.0
    17. # 验证打包是否可用
    18. docker rmi quay.io/ansible/awx-ee:24.6.0
    19. docker load -i /home/leo/awx-ee-24.6.0.tar
    20. minikube image load quay.io/ansible/awx-ee:24.6.0
    复制代码
  • 拉取 postgres:15(AWX 数据库)
    1. # 首选:从 DaoCloud 镜像源拉取
    2. docker pull docker.m.daocloud.io/library/postgres:15
    3. # 备选 1:从中国科学技术大学镜像源拉取
    4. docker pull docker.mirrors.ustc.edu.cn/library/postgres:15
    5. # 备选 2:直接从 Docker Hub 拉取(可能需要代理)
    6. docker pull postgres:15
    7. # 打标签(如果使用 DaoCloud 或中科大镜像源)
    8. docker tag docker.m.daocloud.io/library/postgres:15 postgres:15
    9. # 或
    10. docker tag docker.mirrors.ustc.edu.cn/library/postgres:15 postgres:15
    11. # 加载到 Minikube
    12. minikube image load postgres:15
    13. # 打包镜像
    14. docker save -o /home/leo/postgres-15.tar postgres:15
    15. # 验证打包是否可用
    16. docker rmi postgres:15
    17. docker load -i /home/leo/postgres-15.tar
    18. minikube image load postgres:15
    复制代码
  • 拉取 quay.io/sclorg/postgresql-15-c9s:latest(AWX 数据库,成功环境中使用的镜像)
    1. # 首选:从 DaoCloud 镜像源拉取
    2. docker pull docker.m.daocloud.io/quay.io/sclorg/postgresql-15-c9s:latest
    3. # 备选 1:从中国科学技术大学镜像源拉取
    4. docker pull docker.mirrors.ustc.edu.cn/quay.io/sclorg/postgresql-15-c9s:latest
    5. # 备选 2:直接从 Quay.io 拉取(可能需要代理)
    6. docker pull quay.io/sclorg/postgresql-15-c9s:latest
    7. # 打标签(如果使用 DaoCloud 或中科大镜像源)
    8. docker tag docker.m.daocloud.io/quay.io/sclorg/postgresql-15-c9s:latest quay.io/sclorg/postgresql-15-c9s:latest
    9. # 或
    10. docker tag docker.mirrors.ustc.edu.cn/quay.io/sclorg/postgresql-15-c9s:latest quay.io/sclorg/postgresql-15-c9s:latest
    11. # 加载到 Minikube
    12. minikube image load quay.io/sclorg/postgresql-15-c9s:latest
    13. # 打包镜像
    14. docker save -o /home/leo/postgresql-15-c9s.tar quay.io/sclorg/postgresql-15-c9s:latest
    15. # 验证打包是否可用
    16. docker rmi quay.io/sclorg/postgresql-15-c9s:latest
    17. docker load -i /home/leo/postgresql-15-c9s.tar
    18. minikube image load quay.io/sclorg/postgresql-15-c9s:latest
    复制代码
       离线加载镜像(假如在线拉取失败)
      
  1. # 加载之前打包的镜像
  2. docker load -i /home/leo/kube-rbac-proxy-v0.15.0.tar
  3. docker load -i /home/leo/awx-operator-2.19.0.tar
  4. docker load -i /home/leo/redis-7.tar
  5. docker load -i /home/leo/awx-24.6.1.tar
  6. docker load -i /home/leo/awx-ee-24.6.1.tar
  7. docker load -i /home/leo/postgres-15.tar
  8. docker load -i /home/leo/postgresql-15-c9s.tar
  9. # 加载到 Minikube
  10. minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
  11. minikube image load quay.io/ansible/awx-operator:2.19.0
  12. minikube image load redis:7
  13. minikube image load quay.io/ansible/awx:24.6.1
  14. minikube image load quay.io/ansible/awx-ee:24.6.1
  15. minikube image load postgres:15
  16. minikube image load quay.io/sclorg/postgresql-15-c9s:latest
复制代码
      验证镜像是否加载
      
  1. # 检查 Minikube 中的镜像,验证是否加载成功
  2. minikube ssh -- docker images | grep -E "kube-rbac-proxy|redis|awx-operator|awx|awx-ee|postgres"
复制代码
      盼望输出
      
  1. quay.io/sclorg/postgresql-15-c9s          latest     7cf012c03d6e   5 days ago      373MB
  2. quay.io/ansible/awx-operator              2.19.0     a60201718711   9 months ago    552MB
  3. quay.io/ansible/awx                       24.6.1     87ab0ba4bf68   8 months ago    980MB
  4. quay.io/ansible/awx-ee                    24.6.1     f5df180d3d59   8 months ago    1.75GB
  5. redis                                     7          7705dd2858c1   10 months ago   109MB
  6. gcr.io/kubebuilder/kube-rbac-proxy        v0.15.0    7ebda747308b   17 months ago   55.9M
复制代码
      4. 修改 AWX Operator 镜像版本
      
  1. # 进入 AWX Operator 目录
  2. cd ~/awx-operator-2.19.0
  3. # 编辑 manager.yaml 文件
  4. nano config/manager/manager.yaml
复制代码
      

  • 找到 image 字段,将:
    1. image: quay.io/ansible/awx-operator:latest
    复制代码
    修改为:
    1. image: quay.io/ansible/awx-operator:2.19.0
    复制代码
  • 生存并退出:Ctrl+O,Enter,Ctrl+X。
       5. 摆设 AWX Operator
      
  1. # 进入 AWX Operator 目录
  2. cd ~/awx-operator-2.19.0
  3. # 设置命名空间环境变量
  4. export NAMESPACE=ansible-awx
  5. # 创建命名空间
  6. kubectl create namespace $NAMESPACE
  7. # 部署 AWX Operator
  8. make deploy
复制代码
      验证
      
  1. # 实时查看 Pod 状态,验证 AWX Operator 是否运行
  2. kubectl get pods -n ansible-awx -w
复制代码
      盼望输出
      
  1. NAME                                               READY   STATUS    RESTARTS   AGE
  2. awx-operator-controller-manager-xxx                2/2     Running   0          Xm
复制代码
      6. 摆设 AWX 实例
      
  1. # 进入 AWX Operator 目录
  2. cd ~/awx-operator-2.19.0
  3. # 复制示例配置文件
  4. cp config/samples/awx_v1beta1_awx.yaml awx-ubuntu.yml
  5. # 编辑配置文件
  6. nano awx-ubuntu.yml
复制代码
      

  • 修改为以下内容:
    1. ---
    2. apiVersion: awx.ansible.com/v1beta1
    3. kind: AWX
    4. metadata:
    5.   name: awx-ubuntu
    6.   namespace: ansible-awx
    7. spec:
    8.   service_type: NodePort
    9.   image_pull_policy: IfNotPresent  # 确保使用本地镜像
    10.   web_resource_requirements:
    11.     requests:
    12.       cpu: 50m
    13.       memory: 128Mi
    14.   task_resource_requirements:
    15.     requests:
    16.       cpu: 150m
    17.       memory: 384Mi
    18.   ee_resource_requirements:
    19.     requests:
    20.       cpu: 150m
    21.       memory: 192Mi
    复制代码
  • 生存并退出:Ctrl+O,Enter,Ctrl+X。
       应用配置
      
  1. # 部署 AWX 实例
  2. kubectl apply -f awx-ubuntu.yml -n ansible-awx
复制代码
      验证 AWX 实例
      
  1. # 实时查看 Pod 状态,验证 AWX 实例是否运行
  2. kubectl get pods -n ansible-awx -w
复制代码
      盼望输出
      
  1. NAME                                               READY   STATUS    RESTARTS   AGE
  2. awx-operator-controller-manager-xxx                2/2     Running   0          Xmawx-ubuntu-postgres-15-0                           1/1     Running   0          Xsawx-ubuntu-task-<hash>                             4/4     Running   0          Xsawx-ubuntu-web-<hash>                              3/3     Running   0          Xs
复制代码
      7. 访问 AWX
       端口转发
      
  1. # 查看 AWX 相关 Pod
  2. kubectl get pods -n ansible-awx
  3. # 端口转发,将 AWX Web 服务映射到本地 8052 端口
  4. nohup kubectl port-forward awx-ubuntu-web-<hash> 8052:8052 -n ansible-awx --address 0.0.0.0 &
复制代码
      直接通过 Minikube 获取服务 URL
      
  1. # 获取 AWX 服务的访问 URL
  2. minikube service awx-ubuntu-service -n ansible-awx --url
复制代码
      盼望输出
      
  1. http://192.168.49.2:30080
复制代码
      获取管理员密码
      
  1. # 获取 AWX 管理员密码
  2. kubectl get secret awx-ubuntu-admin-password -n ansible-awx -o jsonpath="{.data.password}" | base64 --decode; echo
复制代码
      登录 AWX
      

  • URL:http://192.168.85.132:8052
  • 用户名:admin
  • 密码:上一步输出的密码
      

       由于我是NAT模式,所以须要使用端口转发来做映射
      

       接着打开登入页面
      

       输入账号:admin
       输入密码:praymwaE6t9I1Bh7kcGvqGxJ2JXlhy9Q
      

       这个地方须要注意
      


       这两个字段是通过hash得出来的,每次重启服务都会变革,在做映射服务的时间须要将hash字段更换到下令中的<hash>部分
       盼望这个文章能对各人带来便利,假如须要离线镜像的朋友,可以私信我,免费提供
                       

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表