Ubuntu 22.04.4LTS へ k3s で AWX Operator を起動する
Ubuntu 22.04.4LTS へ K3s を使って AWX Operator を起動する手順をメモしておきます。 以下のメモも参考にします。
検証環境¶
| 対象 | バージョン |
|---|---|
| Ubuntu | 22.04.4LTS |
| k3s | v1.28.8+k3s1 (653dd61a) |
| kustomize | 5.4.1 |
k3s と kustomize のインストール¶
k3s と kustomize をインストールしておきます。
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 && \
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash && \
mv kustomize /usr/local/bin/
実行したホストがノード登録されました。
# k3s kubectl get node
NAME STATUS ROLES AGE VERSION
localhost Ready control-plane,master 24m v1.28.8+k3s1
awx 名前空間の定義¶
AWX Operator の構築手順は Basic Install に記載されています。 予め、AWX Operator または Releases いずれかのページで最新のバージョンを確認しておきます。 現時点では 2.14.0 でした。

先に確認したバージョン情報も加味した上で以下の内容にしました。 異なるバージョンの AWX Operator をインストールしたい場合は、バージョン部分を修正します。
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/ansible/awx-operator/config/default?ref=2.14.0
images:
- name: quay.io/ansible/awx-operator
newTag: 2.14.0
namespace: awx
マニフェストを適用します。
これで awx 名前空間が定義されました。 kubectl get pods -n awx で確認出来ます。
# kubectl get pods -n awx
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-6458cd4798-nlvpl 0/2 ContainerCreating 0 7s
AWX Operator の構築¶
AWS Operator を起動する為に .yaml ファイルを修正します。 kustomization.yaml には resources の定義に awx-demo.yaml を追加します。
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/ansible/awx-operator/config/default?ref=2.14.0
- awx-demo.yaml
images:
- name: quay.io/ansible/awx-operator
newTag: 2.14.0
namespace: awx
AWX Operator の起動に必要な .yaml ファイルのサンプルは awx-operator / awx-demo.yml にあります。 今回はポート番号の指定を加え、以下の内容で awx-demo.yaml というファイルを新規作成しました。
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
nodeport_port: 30080
マニフェストを再適用します。
コンテナが起動します。 但し、AWX Operator はそこそこ重く、起動に時間がかかります…
# kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -n awx
NAME READY STATUS RESTARTS AGE
awx-demo-postgres-15-0 1/1 Running 0 23s
私の環境では必要なコンテナが全て Running 状態になるまで 5 から 6 分かかりました。
# kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -n awx
NAME READY STATUS RESTARTS AGE
awx-demo-postgres-15-0 1/1 Running 0 6m58s
awx-demo-web-fc74f65b9-gtf8l 3/3 Running 0 6m11s
awx-demo-task-5b784cd899-zkwj6 4/4 Running 0 6m10s
AWX Operator へのログイン¶
AWX Operator の管理者 (admin ユーザ) 初期パスワードは kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode で確認出来ます。 実際の実行例は以下の通りです。
# kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode
1234567890ABCDEF1234567890ABCDEF
初期パスワードを確認したら Web ブラウザで http://ADDRESS:30080 へアクセスすると以下のように表示されます。 ユーザには admin を、パスワードには確認した初期パスワードでログイン出来ます。

正しくログイン出来れば以下のような画面が表示されます。

AWX Operator が Listen しているポートの確認¶
今回は AWX Operator が Listen するポート番号をマニフェスト内で指定しています。 もし値を指定しなかった場合は kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator" -n awx でポート番号を確認することが出来ます。