Ansible AWXをインストールする方法
環境
Ubuntu 24.04
minikube v1.33.0
概要
Red Hat Ansible Tower のコミュニティエディション Ansible AWX のインストールです。 Ansible AWX の実装には、Kubernetes 環境が必要となります。 Kubernetes 環境であれば MicroK8s や K3s, Minikube 等々でも構築可能です。
1.必要なパッケージをインストールします。
# apt -y install git make curl
2.任意の一般ユーザーで Minikube を起動します。
$ minikube start –vm-driver=kvm2 –cpus=4 –memory=8g –addons=ingress
3.ステータスを確認する
$ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
$ kubectl get pods -A
4. AWX に必要な AWX Operator を取得する
$ git clone https://github.com/ansible/awx-operator.git
$ cd awx-operator
# AWX Operator のバージョンを指定
# バージョンの確認 : https://github.com/ansible/awx-operator/releases
$ git checkout 2.19.0
AWX 用に任意のネームスペース名をセットして Operator をデプロイ
$ export NAMESPACE=ansible-awx $ make deploy $ kubectl get pods -n $NAMESPACE
$ cp awx-demo.yml ansible-awx.yml
$ vi ansible-awx.yml
# 任意のサービス名称に変更 --- apiVersion: awx.ansible.com/v1beta1 kind: AWX metadata: name: ansible-awx spec: service_type: nodeport
AWX 用のネームスペースを kubectl のコンテキストにセットして AWX をデプロイ
$ kubectl config set-context --current --namespace=$NAMESPACE Context "minikube" modified. $ kubectl apply -f ansible-awx.yml awx.awx.ansible.com/ansible-awx created
# 進行状況はログで確認可
$ kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
$ kubectl get pods -l “app.kubernetes.io/managed-by=awx-operator"
NAME READY STATUS RESTARTS AGE ansible-awx-migration-24.6.0-6m7vr 0/1 Completed 0 5m23s ansible-awx-postgres-15-0 1/1 Running 0 6m44s ansible-awx-task-6df7b95588-bpgsr 4/4 Running 0 6m11s ansible-awx-web-695d9477c5-lrxv4 3/3 Running 0 6m12s
$ kubectl get service -l “app.kubernetes.io/managed-by=awx-operator"
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ansible-awx-postgres-15 ClusterIP None <none> 5432/TCP 7m9s ansible-awx-service NodePort 10.109.21.143 <none> 80:32196/TCP 6m39s
# サービス URL 確認
$ minikube service ansible-awx-service –url -n ansible-awx
http://192.168.33.44:32196
# 管理アカウントのパスワード 確認
$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" | base64 --decode; echo n3wEHCDuCvU2rg4HxqtNLjGkRkaJe5lb
# Kubernetes クラスター外部からもアクセスできるようにするには要ポートフォワード
# [10445] ⇒ Minikube インストールホストが待ち受けるポート ⇒ 任意の空きポートを指定すれば OK
# [80] ⇒ AWX コンテナーが待ち受けているポート
$ kubectl port-forward service/ansible-awx-service --address 0.0.0.0 10445:80 Forwarding from 0.0.0.0:10445 -> 8052