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

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

# 更新系统软件包索引,确保获取最新的软件包信息
sudo apt update -y# 安装 software-properties-common,提供管理 PPA 源的工具
sudo apt install -y software-properties-common# 添加 Ansible 官方 PPA 源,以便安装最新版本的 Ansible
sudo add-apt-repository --yes --update ppa:ansible/ansible# 安装 Ansible 以及依赖工具 curl 和 git
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/ 目录。
  • 安装:
    # 安装下载的 .deb 包
    sudo dpkg -i /home/leo/ansible_2.16.x_all.deb# 解决可能的依赖问题
    sudo apt install -f -y

2. 验证 Ansible 安装

# 检查 Ansible 版本,验证是否安装成功
ansible --version

期望输出

ansible [core 2.16.x]

第二部分:准备 Kubernetes 环境

1. 安装 Docker

# 安装 Docker 容器运行时
sudo apt install -y docker.io# 启用并启动 Docker 服务
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/ 目录。
  • 安装:
    # 安装下载的 .deb 包
    sudo dpkg -i /home/leo/docker.io_*.deb# 解决可能的依赖问题
    sudo apt install -f -y# 启用并启动 Docker 服务
    sudo systemctl enable docker --now

2. 配置用户权限

# 将当前用户添加到 docker 组,避免每次运行 Docker 命令都需要 sudo
sudo usermod -aG docker $USER && newgrp docker

3. 验证 Docker 安装

# 检查 Docker 版本,验证是否安装成功
docker --version

期望输出

Docker version 26.1.3, build 26.1.3-0ubuntu1~22.04.1

4. 安装 Minikube

# 下载 Minikube 的最新版本二进制文件
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64# 安装 Minikube 到系统路径
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/ 目录。
  • 安装:
    # 安装 Minikube 到系统路径
    sudo install /home/leo/minikube-linux-amd64 /usr/local/bin/minikube

5. 验证 Minikube 安装

# 检查 Minikube 版本,验证是否安装成功
minikube version

期望输出

minikube version: v1.35.0

6. 安装 kubectl

# 下载 kubectl v1.32.0 的二进制文件
curl -LO "https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl"# 赋予执行权限
chmod +x kubectl# 移动到系统路径
sudo mv kubectl /usr/local/bin/

离线安装(可选)

  • 从 Kubernetes GitHub Releases 下载 kubectl 的 Linux AMD64 二进制文件(直接链接:kubectl)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目录。
  • 安装:
    # 赋予执行权限
    chmod +x /home/leo/kubectl# 移动到系统路径
    sudo mv /home/leo/kubectl /usr/local/bin/

7. 验证 kubectl 安装

# 检查 kubectl 版本,验证是否安装成功
kubectl version --client

期望输出

Client Version: v1.32.0

8. 安装 make

# 安装 make 工具,用于执行 AWX Operator 的部署脚本
sudo apt install -y make

离线安装(可选)

  • 从 Ubuntu 软件源 下载最新 .deb 包(如 make_4.3-4.1build1_amd64.deb)。
  • 使用 MobaXterm 连接到 leo@192.168.85.132,将文件拖放到 /home/leo/ 目录。
  • 安装:
    # 安装下载的 .deb 包
    sudo dpkg -i /home/leo/make_*.deb# 解决可能的依赖问题
    sudo apt install -f -y

9. 验证 make 安装

# 检查 make 版本,验证是否安装成功
make --version

期望输出

GNU Make 4.3

10. 启动 Minikube

# 清理现有 Minikube 集群(如果存在)
minikube delete

拉取 Minikube 镜像

# 在线拉取 Minikube 所需的 kicbase 镜像
docker pull gcr.io/k8s-minikube/kicbase:v0.0.46

如果拉取失败,使用华为云镜像源

# 从华为云镜像源拉取 kicbase 镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/k8s-minikube/kicbase:v0.0.46# 打标签为原始镜像名称
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

打包镜像

# 将 kicbase 镜像打包为 tar 文件,以便离线使用
docker save -o /home/leo/kicbase-v0.0.46-amd64.tar gcr.io/k8s-minikube/kicbase:v0.0.46

加载镜像(验证打包是否可用)

# 加载打包的镜像,验证是否可用
docker load -i /home/leo/kicbase-v0.0.46-amd64.tar

期望输出

Loaded image: gcr.io/k8s-minikube/kicbase:v0.0.46

启动 Minikube

# 启动 Minikube,指定 Docker 驱动,分配 6144Mi 内存和 4 个 CPU
minikube start --driver=docker --memory=6144 --cpus=4

11. 验证 Minikube 状态

# 检查 Minikube 状态,验证是否启动成功
minikube status

期望输出

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

第三部分:安装 AWX

1. 下载并解压 AWX Operator

# 下载 AWX Operator 2.19.0 的源码包
curl -LO https://github.com/ansible/awx-operator/archive/refs/tags/2.19.0.tar.gz# 重命名为更清晰的文件名
mv 2.19.0.tar.gz awx-operator-2.19.0.tar.gz# 解压源码包
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/ 目录。
  • 解压:
    # 解压下载的源码包
    tar -xzf /home/leo/awx-operator-2.19.0.tar.gz

2. 安装 Kustomize(make deploy 依赖)

# 下载 Kustomize v5.6.0 的二进制文件
curl -LO https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.6.0/kustomize_v5.6.0_linux_amd64.tar.gz# 解压 Kustomize
tar -xzf kustomize_v5.6.0_linux_amd64.tar.gz# 移动到系统路径
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/ 目录。
  • 安装:
    # 解压 Kustomize
    tar -xzf /home/leo/kustomize_v5.6.0_linux_amd64.tar.gz# 移动到系统路径
    sudo mv kustomize /usr/local/bin/

3. 拉取并加载所有必要镜像

修复 DNS 解析(确保镜像源可访问)

# 检查当前 DNS 配置
cat /etc/resolv.conf

如果显示 nameserver 127.0.0.53,说明使用的是本地 DNS 代理,可能导致解析失败。永久修改 DNS

# 编辑 systemd-resolved 配置文件
sudo nano /etc/systemd/resolved.conf
  • 在 [Resolve] 部分添加:
    [Resolve]
    DNS=8.8.8.8 8.8.4.4
    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 服务

# 重启 systemd-resolved 服务以应用 DNS 配置
sudo systemctl restart systemd-resolved# 确保 /etc/resolv.conf 指向正确的文件
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

验证 DNS 解析

# 测试是否能解析镜像源域名
ping docker.m.daocloud.io
ping docker.mirrors.ustc.edu.cn

如果仍然失败,临时修改 /etc/resolv.conf

# 临时修改 DNS 配置
sudo nano /etc/resolv.conf
  • 修改为:
    nameserver 8.8.8.8
    nameserver 8.8.4.4
  • 保存并退出:Ctrl+O,Enter,Ctrl+X。

拉取镜像

  • 拉取 gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0(AWX Operator 依赖)
    # 首选:从华为云镜像源拉取
    docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0# 如果失败,尝试 DaoCloud 镜像源
    docker pull docker.m.daocloud.io/kubebuilder/kube-rbac-proxy:v0.15.0
    docker tag docker.m.daocloud.io/kubebuilder/kube-rbac-proxy:v0.15.0 gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0# 打标签(如果使用华为云镜像源)
    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# 加载到 Minikube
    minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0# 打包镜像
    docker save -o /home/leo/kube-rbac-proxy-v0.15.0.tar gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0# 验证打包是否可用
    docker rmi gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
    docker load -i /home/leo/kube-rbac-proxy-v0.15.0.tar
    minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
  • 拉取 quay.io/ansible/awx-operator:2.19.0(AWX Operator 镜像)
    # 首选:直接拉取
    docker pull quay.io/ansible/awx-operator:2.19.0# 如果失败,尝试 DaoCloud 镜像源
    docker pull docker.m.daocloud.io/ansible/awx-operator:2.19.0
    docker tag docker.m.daocloud.io/ansible/awx-operator:2.19.0 quay.io/ansible/awx-operator:2.19.0# 加载到 Minikube
    minikube image load quay.io/ansible/awx-operator:2.19.0# 打包镜像
    docker save -o /home/leo/awx-operator-2.19.0.tar quay.io/ansible/awx-operator:2.19.0# 验证打包是否可用
    docker rmi quay.io/ansible/awx-operator:2.19.0
    docker load -i /home/leo/awx-operator-2.19.0.tar
    minikube image load quay.io/ansible/awx-operator:2.19.0
  • 拉取 redis:7(AWX 依赖,修正为成功环境中的标签)
    # 首选:从 AWS 镜像源拉取
    docker pull public.ecr.aws/docker/library/redis:7.0# 如果失败,尝试 DaoCloud 镜像源
    docker pull docker.m.daocloud.io/library/redis:7.0
    docker tag docker.m.daocloud.io/library/redis:7.0 public.ecr.aws/docker/library/redis:7.0# 打标签为 redis:7(与成功环境一致)
    docker tag public.ecr.aws/docker/library/redis:7.0 redis:7# 加载到 Minikube
    minikube image load redis:7# 打包镜像
    docker save -o /home/leo/redis-7.tar redis:7# 验证打包是否可用
    docker rmi redis:7
    docker load -i /home/leo/redis-7.tar
    minikube image load redis:7
  • 拉取 quay.io/ansible/awx:24.6.0(AWX 镜像,与 AWX Operator 2.19.0 兼容)
    # 首选:直接拉取
    docker pull quay.io/ansible/awx:24.6.0# 如果失败,尝试 DaoCloud 镜像源
    docker pull docker.m.daocloud.io/ansible/awx:24.6.0
    docker tag docker.m.daocloud.io/ansible/awx:24.6.0 quay.io/ansible/awx:24.6.0# 如果已加载 quay.io/ansible/awx:24.6.1,打标签为 24.6.0
    docker tag quay.io/ansible/awx:24.6.1 quay.io/ansible/awx:24.6.0# 加载到 Minikube
    minikube image load quay.io/ansible/awx:24.6.0# 打包镜像
    docker save -o /home/leo/awx-24.6.0.tar quay.io/ansible/awx:24.6.0# 验证打包是否可用
    docker rmi quay.io/ansible/awx:24.6.0
    docker load -i /home/leo/awx-24.6.0.tar
    minikube image load quay.io/ansible/awx:24.6.0
  • 拉取 quay.io/ansible/awx-ee:24.6.0(AWX Execution Environment 镜像)
    # 首选:从 DaoCloud 镜像源拉取
    docker pull docker.m.daocloud.io/ansible/awx-ee:24.6.0# 备选 1:从中国科学技术大学镜像源拉取
    docker pull docker.mirrors.ustc.edu.cn/ansible/awx-ee:24.6.0# 备选 2:直接从 quay.io 拉取(可能需要代理)
    docker pull quay.io/ansible/awx-ee:24.6.0# 打标签(如果使用 DaoCloud 或中科大镜像源)
    docker tag docker.m.daocloud.io/ansible/awx-ee:24.6.0 quay.io/ansible/awx-ee:24.6.0
    # 或
    docker tag docker.mirrors.ustc.edu.cn/ansible/awx-ee:24.6.0 quay.io/ansible/awx-ee:24.6.0# 如果已加载 quay.io/ansible/awx-ee:24.6.1,打标签为 24.6.0
    docker tag quay.io/ansible/awx-ee:24.6.1 quay.io/ansible/awx-ee:24.6.0# 加载到 Minikube
    minikube image load quay.io/ansible/awx-ee:24.6.0# 打包镜像
    docker save -o /home/leo/awx-ee-24.6.0.tar quay.io/ansible/awx-ee:24.6.0# 验证打包是否可用
    docker rmi quay.io/ansible/awx-ee:24.6.0
    docker load -i /home/leo/awx-ee-24.6.0.tar
    minikube image load quay.io/ansible/awx-ee:24.6.0
  • 拉取 postgres:15(AWX 数据库)
    # 首选:从 DaoCloud 镜像源拉取
    docker pull docker.m.daocloud.io/library/postgres:15# 备选 1:从中国科学技术大学镜像源拉取
    docker pull docker.mirrors.ustc.edu.cn/library/postgres:15# 备选 2:直接从 Docker Hub 拉取(可能需要代理)
    docker pull postgres:15# 打标签(如果使用 DaoCloud 或中科大镜像源)
    docker tag docker.m.daocloud.io/library/postgres:15 postgres:15
    # 或
    docker tag docker.mirrors.ustc.edu.cn/library/postgres:15 postgres:15# 加载到 Minikube
    minikube image load postgres:15# 打包镜像
    docker save -o /home/leo/postgres-15.tar postgres:15# 验证打包是否可用
    docker rmi postgres:15
    docker load -i /home/leo/postgres-15.tar
    minikube image load postgres:15
  • 拉取 quay.io/sclorg/postgresql-15-c9s:latest(AWX 数据库,成功环境中使用的镜像)
    # 首选:从 DaoCloud 镜像源拉取
    docker pull docker.m.daocloud.io/quay.io/sclorg/postgresql-15-c9s:latest# 备选 1:从中国科学技术大学镜像源拉取
    docker pull docker.mirrors.ustc.edu.cn/quay.io/sclorg/postgresql-15-c9s:latest# 备选 2:直接从 Quay.io 拉取(可能需要代理)
    docker pull quay.io/sclorg/postgresql-15-c9s:latest# 打标签(如果使用 DaoCloud 或中科大镜像源)
    docker tag docker.m.daocloud.io/quay.io/sclorg/postgresql-15-c9s:latest quay.io/sclorg/postgresql-15-c9s:latest
    # 或
    docker tag docker.mirrors.ustc.edu.cn/quay.io/sclorg/postgresql-15-c9s:latest quay.io/sclorg/postgresql-15-c9s:latest# 加载到 Minikube
    minikube image load quay.io/sclorg/postgresql-15-c9s:latest# 打包镜像
    docker save -o /home/leo/postgresql-15-c9s.tar quay.io/sclorg/postgresql-15-c9s:latest# 验证打包是否可用
    docker rmi quay.io/sclorg/postgresql-15-c9s:latest
    docker load -i /home/leo/postgresql-15-c9s.tar
    minikube image load quay.io/sclorg/postgresql-15-c9s:latest

离线加载镜像(如果在线拉取失败)

# 加载之前打包的镜像
docker load -i /home/leo/kube-rbac-proxy-v0.15.0.tar
docker load -i /home/leo/awx-operator-2.19.0.tar
docker load -i /home/leo/redis-7.tar
docker load -i /home/leo/awx-24.6.1.tar
docker load -i /home/leo/awx-ee-24.6.1.tar
docker load -i /home/leo/postgres-15.tar
docker load -i /home/leo/postgresql-15-c9s.tar# 加载到 Minikube
minikube image load gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
minikube image load quay.io/ansible/awx-operator:2.19.0
minikube image load redis:7
minikube image load quay.io/ansible/awx:24.6.1
minikube image load quay.io/ansible/awx-ee:24.6.1
minikube image load postgres:15
minikube image load quay.io/sclorg/postgresql-15-c9s:latest

验证镜像是否加载

# 检查 Minikube 中的镜像,验证是否加载成功
minikube ssh -- docker images | grep -E "kube-rbac-proxy|redis|awx-operator|awx|awx-ee|postgres"

期望输出

quay.io/sclorg/postgresql-15-c9s          latest     7cf012c03d6e   5 days ago      373MB
quay.io/ansible/awx-operator              2.19.0     a60201718711   9 months ago    552MB
quay.io/ansible/awx                       24.6.1     87ab0ba4bf68   8 months ago    980MB
quay.io/ansible/awx-ee                    24.6.1     f5df180d3d59   8 months ago    1.75GB
redis                                     7          7705dd2858c1   10 months ago   109MB
gcr.io/kubebuilder/kube-rbac-proxy        v0.15.0    7ebda747308b   17 months ago   55.9M

4. 修改 AWX Operator 镜像版本

# 进入 AWX Operator 目录
cd ~/awx-operator-2.19.0# 编辑 manager.yaml 文件
nano config/manager/manager.yaml
  • 找到 image 字段,将:
    image: quay.io/ansible/awx-operator:latest
    修改为:
    image: quay.io/ansible/awx-operator:2.19.0
  • 保存并退出:Ctrl+O,Enter,Ctrl+X。

5. 部署 AWX Operator

# 进入 AWX Operator 目录
cd ~/awx-operator-2.19.0# 设置命名空间环境变量
export NAMESPACE=ansible-awx# 创建命名空间
kubectl create namespace $NAMESPACE# 部署 AWX Operator
make deploy

验证

# 实时查看 Pod 状态,验证 AWX Operator 是否运行
kubectl get pods -n ansible-awx -w

期望输出

NAME                                               READY   STATUS    RESTARTS   AGE
awx-operator-controller-manager-xxx                2/2     Running   0          Xm

6. 部署 AWX 实例

# 进入 AWX Operator 目录
cd ~/awx-operator-2.19.0# 复制示例配置文件
cp config/samples/awx_v1beta1_awx.yaml awx-ubuntu.yml# 编辑配置文件
nano awx-ubuntu.yml
  • 修改为以下内容:
    ---
    apiVersion: awx.ansible.com/v1beta1
    kind: AWX
    metadata:name: awx-ubuntunamespace: ansible-awx
    spec:service_type: NodePortimage_pull_policy: IfNotPresent  # 确保使用本地镜像web_resource_requirements:requests:cpu: 50mmemory: 128Mitask_resource_requirements:requests:cpu: 150mmemory: 384Miee_resource_requirements:requests:cpu: 150mmemory: 192Mi
  • 保存并退出:Ctrl+O,Enter,Ctrl+X。

应用配置

# 部署 AWX 实例
kubectl apply -f awx-ubuntu.yml -n ansible-awx

验证 AWX 实例

# 实时查看 Pod 状态,验证 AWX 实例是否运行
kubectl get pods -n ansible-awx -w

期望输出

NAME                                               READY   STATUS    RESTARTS   AGE
awx-operator-controller-manager-xxx                2/2     Running   0          Xm
awx-ubuntu-postgres-15-0                           1/1     Running   0          Xs
awx-ubuntu-task-<hash>                             4/4     Running   0          Xs
awx-ubuntu-web-<hash>                              3/3     Running   0          Xs

7. 访问 AWX

端口转发

# 查看 AWX 相关 Pod
kubectl get pods -n ansible-awx# 端口转发,将 AWX Web 服务映射到本地 8052 端口
nohup kubectl port-forward awx-ubuntu-web-<hash> 8052:8052 -n ansible-awx --address 0.0.0.0 &

直接通过 Minikube 获取服务 URL

# 获取 AWX 服务的访问 URL
minikube service awx-ubuntu-service -n ansible-awx --url

期望输出

http://192.168.49.2:30080

获取管理员密码

# 获取 AWX 管理员密码
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>部分

希望这个文章能对大家带来便利,如果需要离线镜像的朋友,可以私信我,免费提供

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39322.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulhub-jangow-01-1.0.1通关攻略

第0步&#xff1a; 打开靶机&#xff0c;按下shift&#xff0c;出现下图界面 在此页面按下e键&#xff0c;进入如下界面&#xff0c; 将ro 替换为 rw signie init/bin/bash 替换完毕后&#xff0c;按下Ctrl键X键&#xff0c;进入如下页面 ip a查看网卡信息 编辑配置文件网卡信…

默克生命科学 | ProClin™安全、高效防腐剂

ProClin™防腐剂是水溶性抗菌剂&#xff0c;是体外诊断(IVD)行业中最有效的抗菌剂之一&#xff0c;广泛应用于行业领先的诊断生产商的1,000多种FAD注册IVD试剂盒。低工作浓度下&#xff0c;ProClin™产品有效快速地抑制广谱微生物&#xff0c;有助于延长IVD试剂的保质期。 有别…

const应用

最近学校的花开了&#xff0c;选了一张三号楼窗前的白玉兰&#xff0c;(#^.^#) 1.修饰普通变量 当 const 用于修饰普通变量时&#xff0c;该变量的值在初始化之后就不能再改变。 #include <stdio.h>int main() {const int num 10;// num 20; // 错误&#xff0c;不…

FastStoneCapture下载安装教程(附安装包)专业截图工具

文章目录 前言FastStoneCapture下载FastStoneCapture安装步骤FastStoneCapture使用步骤 前言 在日常工作与学习里&#xff0c;高效截图工具至关重要。本教程将为你呈现FastStoneCapture下载安装教程&#xff0c;助你轻松拥有。 FastStoneCapture下载 FastStone Capture 是一款…

3. 轴指令(omron 机器自动化控制器)——>MC_ResetFollowingError

机器自动化控制器——第三章 轴指令 13 MC_ResetFollowingError变量▶输入变量▶输出变量▶输入输出变量 功能说明▶指令详情▶时序图▶重启动运动指令▶多重启运动指令▶异常 MC_ResetFollowingError 对指令当前位置和反馈当前位置的偏差进行复位。 指令名称FB/FUN图形表现S…

【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解

《从咖啡杯到财务自由&#xff1a;一个程序员的合成之旅——当代码遇上物理引擎的匠心之作》 &#x1f31f; 这是小游戏开发系列的第四篇送福利文章&#xff0c;感谢一路以来支持和关注这个项目的每一位朋友&#xff01; &#x1f4a1; 文章力求严谨&#xff0c;但难免有疏漏之…

举例说明自然语言处理(NLP)技术

当我们使用智能助手或社交媒体平台时&#xff0c;就会接触到自然语言处理&#xff08;NLP&#xff09;技术的应用。以下是一些常见的例子&#xff1a; 语音识别&#xff1a;当我们与智能助手如Siri、Alexa或Google Assistant交互时&#xff0c;我们说出语音命令&#xff0c;系统…

ResNet与注意力机制:深度学习中的强强联合

引言 在深度学习领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一直是图像处理任务的主流架构。然而&#xff0c;随着网络深度的增加&#xff0c;梯度消失和梯度爆炸问题逐渐显现&#xff0c;限制了网络的性能。为了解决这一问题&#xff0c;ResNet&#xff08;残差…

【设计模式】组合模式

第11章 组合模式 11.1 一个基本的目录内容遍历范例 组合模式用于处理树形结构数据&#xff0c;如操作系统目录。以下是目录遍历的非组合模式实现&#xff1a; 文件类定义 class File { public:File(string name) : m_sname(name) {}void ShowName(string lvlstr) {cout <…

DSP28335 eCAN(增强型控制器局域网)

一、概述 1.1 特征 can协议2.0 ,高达1Mbps32个邮箱 1)—可配置接收或发送—可配置标准或扩展标识符—接收标识符屏蔽功能—支持数据和远程帧—支持0到8字节的数据帧—在接收和发送的消息上使用32位时间戳(发送接收计时器)—接收新消息保护—允许动态可编程的发送消息优先…

现代控制原理

一、在状态空间中&#xff0c;建立控制系统的数学模型 如&#xff1a;有单输入&#xff08;U)--单输出&#xff08;Y)控制系统&#xff0c;其状态方程和输出方程如下图&#xff1a; 二、画状态结构图 将上述状态方程转化为状态结构图有&#xff1a; 三、高阶控制系统的状态方…

【Git】基础使用

Git基础使用 基础配置工作区-暂存区-版本库添加文件修改文件版本回退撤销修改删除文件分支管理强制删除分支 基础配置 初始化仓库&#xff1a; git init # 此时就会生成一个 .git 的文件夹&#xff0c;切勿修改或删除文件夹里的内容配置仓库——名字&#xff1a; git config…

系统与网络安全------网络应用基础(2)

资料整理于网络资料、书本资料、AI&#xff0c;仅供个人学习参考。 交换机 认识交换机 交换机&#xff0c;Switch 用户将多台计算机/交换机连接在一起&#xff0c;组建网络 交换机负责为其中任意两台计算机提供独享线路进行通信 非网管型交换机 即插即用交换机 即插即用&…

【xiaozhi赎回之路-2:语音可以自己配置就是用GPT本地API】

固件作用 打通了网络和硬件的沟通 修改固件实现【改变连接到小智服务器的】 回答逻辑LLM自定义 自定义了Coze&#xff08;比较高级&#xff0c;自定义程度比较高&#xff0c;包括知识库&#xff0c;虚拟脚色-恋人-雅思老师-娃娃玩具{可能需要使用显卡对开源模型进行微调-产…

蓝桥杯——嵌入式学习日记

因为lED和LCD共用PC8~PC15引脚&#xff0c;要通过锁存&#xff08;LE&#xff09;和&#xff08;GPIOC->ODR&#xff09;来避免LED和LCD引脚冲突 修改点: main.c中&#xff0c;GPIO初始化引脚后&#xff0c;LE&#xff08;PD2引脚低电平锁存&#xff0c;退出透明模式&…

Liunx系统Microsoft SQL Server数据库还原

1.确认Linux系统已安装SQLServer服务并启动 2.在Windows中使用SSMS连接原数据库与Linux远程数据库服务 3.备份 成功备份如下 4.上传bak文件到远程Linux服务器 登陆Linux服务并创建数据库文件夹 退出Linux服务

【学习资源】多元时序分析问题和时序图模型

工业数据分析领域中&#xff0c;多元时序数据分析是一个广泛的问题。今天和大家简单介绍多元时序预测、聚类、分类、时序图模型和相应的深度学习库。 图片来源&#xff1a;https://www.researchgate.net/publication/349207209_Multivariate_Time-Series_Anomaly_Detection_via…

QT二 QT使用generate form 生成常用UI,各种UI控件

一 。没有使用general form 和 使用 general form 后&#xff0c;file层面和代码层面的不同比较 file层面的不同 代码层面的不同&#xff0c; 在 使用了general form之后&#xff0c;在主界面的构造方法中&#xff0c;使用ui->setupUi(this),就完成了所有UI的处理。 而之…

Haption力反馈遥操作机器人:6自由度高精度技术,定义远程操作新标准

Haption在力反馈遥操作机器人技术领域展现了强大的创新能力。其核心技术——力反馈技术&#xff0c;通过提供高度逼真的触觉反馈&#xff0c;显著提升了远程操作的精确性与用户体验。这种技术在工业、医疗等高要求场景中表现出色&#xff0c;同时也为科研和教育领域提供了有力支…

魔塔社区的torch_empty错误问题的解决办法

前言 我在运行魔塔社区&#xff08;modelscope&#xff09;的ZhipuAI/chatglm3-6b模型&#xff08;智谱&#xff09;的实例程序的时候&#xff0c;碰到了一个奇怪的错误&#xff08;torch.empty&#xff09;&#xff0c;我尝试解决了一下。 &#xff08;当前采用的Python版本…