Ansible : AWX インストール2026/01/08 |
|
Red Hat Ansible Tower のコミュニティエディション Ansible AWX のインストールです。
Ansible AWX の実装には、Kubernetes 環境が必要となります。 |
|
| [1] |
当例では、開発/テスト用途で便利な Minikube を使用します。 |
| [2] | 必要なパッケージをインストールしておきます。 |
|
dlp:~ # zypper -n install git make
|
| [3] | 任意の一般ユーザーで Minikube を起動します。 |
|
suse@dlp:~> minikube start --vm-driver=kvm2 --cpus=4 --memory=8g --addons=ingress
* minikube v1.37.0 on Opensuse-Leap 16.0 (kvm/amd64)
* Using the kvm2 driver based on user configuration
* Downloading VM boot image ...
> minikube-v1.37.0-amd64.iso....: 65 B / 65 B [---------] 100.00% ? p/s 0s
> minikube-v1.37.0-amd64.iso: 370.78 MiB / 370.78 MiB 100.00% 35.13 MiB p
* Starting "minikube" primary control-plane node in "minikube" cluster
.....
.....
* Verifying ingress addon...
* Enabled addons: storage-provisioner, default-storageclass, ingress
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
suse@dlp:~> minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configuredsuse@dlp:~> kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE ingress-nginx ingress-nginx-admission-create-bdzmh 0/1 Completed 0 50s ingress-nginx ingress-nginx-admission-patch-n6kft 0/1 Completed 0 50s ingress-nginx ingress-nginx-controller-9cc49f96f-wljj6 1/1 Running 0 50s kube-system coredns-66bc5c9577-jrh85 1/1 Running 0 50s kube-system etcd-minikube 1/1 Running 0 55s kube-system kube-apiserver-minikube 1/1 Running 0 55s kube-system kube-controller-manager-minikube 1/1 Running 0 55s kube-system kube-proxy-mz6bw 1/1 Running 0 50s kube-system kube-scheduler-minikube 1/1 Running 0 57s kube-system storage-provisioner 1/1 Running 1 (20s ago) 54s |
| [4] | Ansible AWX をデプロイします。 |
|
# AWX に必要な AWX Operator を取得 suse@dlp:~> git clone https://github.com/ansible/awx-operator.git Cloning into 'awx-operator'... remote: Enumerating objects: 11260, done. remote: Counting objects: 100% (82/82), done. remote: Compressing objects: 100% (59/59), done. remote: Total 11260 (delta 52), reused 23 (delta 23), pack-reused 11178 (from 2) Receiving objects: 100% (11260/11260), 3.86 MiB | 25.68 MiB/s, done. Resolving deltas: 100% (6558/6558), done.
suse@dlp:~>
cd awx-operator
# AWX Operator のバージョンを指定 # バージョンの確認 : https://github.com/ansible/awx-operator/releases suse@dlp:~/awx-operator> git checkout 2.19.1 Note: switching to '2.19.1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at dd37ebd Update index.md (#1904) # AWX 用に任意のネームスペース名をセットして Operator をデプロイ suse@dlp:~/awx-operator> export NAMESPACE=ansible-awx suse@dlp:~/awx-operator> make deploy namespace/ansible-awx created Warning: unrecognized format "int32" customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created customresourcedefinition.apiextensions.k8s.io/awxmeshingresses.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 createdsuse@dlp:~/awx-operator> kubectl get pods -n $NAMESPACE NAME READY STATUS RESTARTS AGE awx-operator-controller-manager-6686bb5899-gmlsf 2/2 Running 0 70s
suse@dlp:~/awx-operator>
cp awx-demo.yml ansible-awx.yml suse@dlp:~/awx-operator> vi ansible-awx.yml # 任意のサービス名称に変更
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: ansible-awx
spec:
service_type: nodeport
# AWX 用のネームスペースを kubectl のコンテキストにセットして AWX をデプロイ suse@dlp:~/awx-operator> kubectl config set-context --current --namespace=$NAMESPACE Context "minikube" modified. [cent@dlp awx-operator]$ kubectl apply -f ansible-awx.yml awx.awx.ansible.com/ansible-awx created # 進行状況はログで確認可 suse@dlp:~/awx-operator> kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
.....
.....
--------------------------- Ansible Task StdOut -------------------------------
TASK [installer : Start installation if auto_upgrade is false and deployment is missing] ***
task path: /opt/ansible/roles/installer/tasks/main.yml:31
-------------------------------------------------------------------------------
{"level":"info","ts":"2026-01-08T00:04:33Z","logger":"runner","msg":"Ansible-runner exited successfully","job":"7160745769708720504","name":"ansible-awx","namespace":"ansible-awx"}
----- Ansible Task Status Event StdOut (awx.ansible.com/v1beta1, Kind=AWX, ansible-awx/ansible-awx) -----
PLAY RECAP *********************************************************************
localhost : ok=88 changed=0 unreachable=0 failed=0 skipped=85 rescued=0 ignored=1
# 最終的に上記のように failed=0 で終了していれば OK
suse@dlp:~> kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" NAME READY STATUS RESTARTS AGE ansible-awx-migration-24.6.1-tx89z 0/1 Completed 0 5m37s ansible-awx-postgres-15-0 1/1 Running 0 7m2s ansible-awx-task-5d86756d55-tnzhj 4/4 Running 0 6m28s ansible-awx-web-5f6fff5d6b-4f799 3/3 Running 0 6m29ssuse@dlp:~> 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 7m20s ansible-awx-service NodePort 10.103.106.243 <none> 80:32525/TCP 6m49s # サービス URL 確認 suse@dlp:~> minikube service ansible-awx-service --url -n ansible-awx http://192.168.39.177:32525 # 管理アカウントのパスワード 確認 suse@dlp:~> kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" | base64 --decode; echo SW2cZwdQbzwzTYim5qyjY5sbFv5Zp222 # Kubernetes クラスター外部からもアクセスできるようにするには要ポートフォワード # [10445] ⇒ Minikube インストールホストが待ち受けるポート ⇒ 任意の空きポートを指定すれば OK # [80] ⇒ AWX コンテナーが待ち受けているポート suse@dlp:~> kubectl port-forward service/ansible-awx-service --address 0.0.0.0 10445:80 Forwarding from 0.0.0.0:10445 -> 8052 # ポートフォワードした 且つ Firewalld 稼働中の場合は root 権限でポート許可 dlp:~ # firewall-cmd --add-port=10445/tcp dlp:~ # firewall-cmd --runtime-to-permanent |
| [5] | Web ブラウザーを起動して Ansible AWX にアクセスします。 Minikube インストールホスト ローカル からアクセスする場合は、確認したサービス URL へアクセスします。 ポートフォワードした場合は、ローカルネットワーク内の任意のコンピューターから [http://(Minikube インストールホスト のホスト名 または IP アドレス):(設定したポート)] へアクセスします。 アクセスするとログイン画面が表示されます。 ユーザー名 [admin], パスワードは確認した管理アカウントのパスワードでログイン可能です。 |
|
| [6] | 正常にログインすると、Ansible AWX のダッシュボードが表示されます。以上でインストール完了です。 |
|
| [7] | なお、画面例は英語表記となっていますが、日本語 OS でアクセスすれば、自動的に日本語表記となります。 |
|
| Sponsored Link |
|
|