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

 

IT

Posted by arkgame