解鎖 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.pswp.cn/web/73420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73420.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

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

固件作用 打通了網絡和硬件的溝通 修改固件實現【改變連接到小智服務器的】 回答邏輯LLM自定義 自定義了Coze&#xff08;比較高級&#xff0c;自定義程度比較高&#xff0c;包括知識庫&#xff0c;虛擬腳色-戀人-雅思老師-娃娃玩具{可能需要使用顯卡對開源模型進行微調-產…

Springboot 學習 之 Shardingsphere 按照日期水平分表(二)

文章目錄 業務場景依賴配置特別注意優劣參考資料 業務場景 在 報表 等 大數據量 且需要 按照日期顯示 的業務場景下&#xff0c;按照 日期水平分表 是一個不錯的選擇 依賴 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-b…

(UI自動化測試web端)第二篇:元素定位的方法_xpath擴展(工作當中用的比較多)

看代碼里的【driver.find_element_by_xpath( )】()里的路徑怎么寫&#xff1f; xpath元素定位有多種寫法&#xff0c;那我們現在說的就是在元素定位時&#xff0c;根據網頁的實際情況來選擇適合的xpath元素定位的寫法。信我 &#xff0c;你真正工作當中每個都有用的&#xff01…

[已解決]服務器CPU突然飆高98%----Java程序OOM問題 (2024.9.5)

目錄 問題描述問題排查問題解決參考資料 問題描述 業主單位服務器自8月29日晚上21:00起CPU突然飆高至98%&#xff0c;內存爆滿&#xff0c;一直到9月5日&#xff1a; 問題排查 ①執行 top 命令查看Java進程PID top②執行top -Hp PID 命令查看具體的線程情況 top -Hp 3058輸入上…

Mybatis基于注解開發

Mybatis基于注解進行開發 基于注解形式開發Mybatis省去XML的SQL映射配置文件&#xff08;只需要在Mybatis的核心配置文件中設置要掃描的接口通過Mapper標簽中的子標簽<package>指定要掃描的包&#xff09; 注意&#xff1a;在進行想改的SQL操作的時候首先要注意數據表的…

【C++】STL性能優化實戰

STL性能優化實戰 STL (Standard Template Library) 是 C 標準庫的核心部分&#xff0c;提供了各種容器、算法和迭代器。雖然 STL 提供了強大的功能&#xff0c;但不恰當的使用可能導致性能問題。下面我將詳細介紹 STL 性能優化的實戰技巧&#xff0c;并通過具體案例說明。 1.…

OSI模型_TCP/IP模型_五層模型

文章目錄 OSI模型_TCP/IP模型_五層模型模型對比模型層級對比關鍵區別對比 OSI模型OSI模型概述舉例說明流程圖示 TCP/IP 四層模型模型結構舉例說明流程圖示 TCP/IP 五層模型模型的結構舉例說明流程圖示 OSI模型_TCP/IP模型_五層模型 學OSI&#xff0c;用TCP/IP&#xff0c;分析選…

R語言——字符串

參考資料&#xff1a;學習R 文本數據存儲在字符向量中。重要的是&#xff0c;字符向量中的每個元素都是字符串&#xff0c;而非單獨的字符。 文本的基本單位是字符向量&#xff0c;著意味著大部分字符串處理函數也能用于字符向量。 1、創建和打印字符串 字符向量可用c函數創建…

如何區別在Spring Boot 2 和 Spring Boot 3 中使用 Knife4j:集成與配置指南

在現代的 Web 開發中&#xff0c;API 文檔是不可或缺的一部分。Knife4j 是基于 Swagger 的增強工具&#xff0c;它不僅提供了更友好的 API 文檔界面&#xff0c;還支持更多實用的功能&#xff0c;如離線文檔導出、全局參數配置等。本文將詳細介紹如何在 Spring Boot 2 和 Sprin…

pagehelper 分頁插件使用說明

pom.xml&#xff1a;pageHelper坐標 <!--pageHelper坐標--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency> 分…

C++可變參數

可變參數C風格的可變參數C風格可變參數的使用 C11可變參數模板遞歸展開參數包參數列表展開折疊表達式 STL中的emplace插入接口 可變參數 C風格的可變參數 可變參數是一種語言特性&#xff0c;可以在函數聲明中使用省略號...來表示函數接受可變數量的參數。 例如典型的printf…

數據庫的操作,以及sql之DML

首先&#xff0c;創建表以及插入數據 create table t_text(id int primary key auto_increment,name varchar(20) unique not null,gender char(5) not null check(gender in ("男","女")),deed varchar(255) not null default "事例不詳"); in…

vue2前端日志數據存儲(indexedD)自動清理3天前的數據

前言&#xff1a;關于Dexie.js這個前端本地數據庫&#xff0c;如何使用IndexedDB來存儲數據&#xff0c;并且設置到期自動清理的機制。首先&#xff0c;我需要回憶一下Dexie.js的基本用法&#xff0c;以及IndexedDB的特性。IndexedDB是瀏覽器中的一種非關系型數據庫&#xff0c…

【MySQL篇】索引特性,索引的工作原理以及索引的創建與管理

目錄 一&#xff0c;初識索引 二&#xff0c;MySQL與磁盤交互的基本單位 三&#xff0c;MySQL中數據文件的特性 四&#xff0c;理解page和索引 五&#xff0c;聚簇索引和非聚簇索引 六&#xff0c;索引操作 查詢索引 創建主鍵索引 唯一索引的創建 普通索引的創建 全文…

springboot項目啟動常見的問題以及配置以及一些使用技巧

1.配置倉庫 這里要把xml文件從國外的鏡像源改成國內的鏡像源。改鏡像源可以查看這篇文章 點擊查看 2.更改文件類型 方法一&#xff1a;右鍵文件找到Mark Dircetory as可以更改文件類型 方法二&#xff1a; 3.springboot本地Maven倉庫的位置 4.pom.xml文件報紅錯誤怎么辦 這…

【初探數據結構】二叉樹的順序結構——堆的實現詳解(上下調整算法的時間復雜度分析)

&#x1f4ac; 歡迎討論&#xff1a;在閱讀過程中有任何疑問&#xff0c;歡迎在評論區留言&#xff0c;我們一起交流學習&#xff01; &#x1f44d; 點贊、收藏與分享&#xff1a;如果你覺得這篇文章對你有幫助&#xff0c;記得點贊、收藏&#xff0c;并分享給更多對數據結構感…

流量分析2

一&#xff0c;webshell流量 [GKCTF 2021]簽到 先看協議分級&#xff0c;大部分是tcp&#xff0c;里面有http的基于的行文本數據占了很大的比重&#xff0c;看看里面有什么 過濾http的流量 點擊一條流量&#xff0c;里面的內容進去后面有基于行的文本數據&#xff0c; 先解he…

頭歌實踐教學平臺--【數據庫概論】--SQL

一、表結構與完整性約束的修改(ALTER) 1.修改表名 USE TestDb1; alter table your_table rename TO my_table; 2.添加與刪除字段 #語句1&#xff1a;刪除表orderDetail中的列orderDate alter table orderDetail drop orderDate; #語句2&#xff1a;添加列unitPrice alter t…

在 React 中,組件之間傳遞變量的常見方法

目錄 1. **通過 Props 傳遞數據**2. **通過回調函數傳遞數據**3. **通過 Context API 傳遞數據**4. **通過 Redux 管理全局狀態**5. **通過事件總線&#xff08;如 Node.js 的 EventEmitter&#xff09;**6. **通過 Local Storage / Session Storage**7. **通過 URL 查詢參數傳…

Redis + 布隆過濾器解決緩存穿透問題

Redis 布隆過濾器解決緩存穿透問題 1. Redis 布隆過濾器解決緩存穿透問題 &#x1f4cc; 什么是緩存穿透&#xff1f; 緩存穿透指的是查詢的數據既不在緩存&#xff0c;也不在數據庫&#xff0c;導致每次查詢都直接訪問數據庫&#xff0c;增加數據庫壓力。 例如&#xff1…