AWXでカスタムEEを使ってみた

どうも、Tです。

独自にビルドしたカスタムEEをAWXで使えるようにした備忘録です。

スポンサーリンク
アドセンス1

環境

Harbor

# helm list --namespace harbor-system
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
harbor  harbor-system   1               2025-07-24 13:48:19.749107727 +0900 JST deployed

Podman

$ podman --version
podman version 5.4.0

AWX

24.6.1

やりたいこと

下記のことをやっていきます。

  1. PodmanでカスタムEEコンテナイメージを作成
  2. カスタムEEをプライベートコンテナレジストリのHarborにPushして保存
  3. AWXからHarborに保存したカスタムEEを利用する

事前準備

本環境はすべてオンプレミスで実施しています。必要となる事前準備は済んでいる前提で進めています。また、要点のみ記載しているため、下記の手順を参考にしてください。

Harborデプロイ

Harborのデプロイ方法は、下記の記事にまとめました。

Helmを使ってK3sにHarborをデプロイしてみた
どうも、Tです。 プライベートコンテナリポジトリとしてHarborをデプロイした備忘録です。 環境 Oracle ...

クラウドなどのコンテナレジストリサービスを利用することもできますが、カスタムEEのコンテナイメージが数百MBと少々大きくなりやすいため、無料枠で使う場合何かしらの制限にかかる可能性が高いです。

今回は、制限なく検証が行えるようプライベートと利用できるHarborを使っています。

カスタムEE作成

カスタムEEの作成方法は、下記の記事にまとめました。

PodmanとAnsible BuilderでカスタムEEをビルドしてみた
どうも、Tです。 AWXで利用するカスタムEEをPodman上で作成した備忘録です。 環境 Oracle Linux(Po...

PodmanからHarborへのPush

PodmanからHarborへのコンテナイメージPushに必要な手順は下記の記事にまとめました。

HarborにコンテナイメージをPush・Pullしてみた
どうも、Tです。 プライベート用のコンテナレジストリHarborの基本動作を確認してみたので備忘録です。 環境 H...

AWXデプロイ

AWXのデプロイ方法は、下記の記事にまとめました。

Oracle Linux9(RHEL9互換)にAWXをデプロイしてみた
どうも、Tです。 AWXのデプロイ手順を確認できたので備忘録です。 前置きがかなり長いので、インストールだけしたい方は「Or...

【Harbor】コンテナレジストリ設定

Harborに「k-library」プロジェクトを作成し、テスト用に「k-harbor」ユーザーに「Developer」ロールを設定しています。

【Podman】カスタムEEのPush

カスタムEEをlocalhostにビルド済みの状態です。

$ podman images k-awx-ee 
REPOSITORY          TAG         IMAGE ID      CREATED            SIZE
localhost/k-awx-ee  v1.0        97d9f2250361  About an hour ago  406 MB

HarborにPushする用にコンテナイメージにタグをつけます。

$ podman tag localhost/k-awx-ee:v1.0 192.168.10.208:30003/k-library/k-awx-ee:v1.0
「192.168.10.208:30003」は、Harborのアクセス先になります。

タグがついたコンテナイメージがあることを確認します。

$ podman images k-awx-ee 
REPOSITORY                                TAG         IMAGE ID      CREATED      SIZE
192.168.10.208:30003/k-library/k-awx-ee  v1.0        97d9f2250361  2 hours ago  406 MB
localhost/k-awx-ee                        v1.0        97d9f2250361  2 hours ago  406 MB

Harborにログインします。

$ podman login 192.168.10.208:30003
Username: k-harbor
Password: 
Login Succeeded!

HarborにカスタムEEのコンテイメージをPushします。

$ podman push 192.168.10.208:30003/k-library/k-awx-ee:v1.0
--割愛--
Writing manifest to image destination

【AWX】実行環境設定

【K3s】レジストリのhttps検証スキップ

AWXからHarborに保存したカスタムEEコンテナイメージをPullするとK3sに保存されます。HarborのHTTPSで利用している証明書は、自己証明書のためK3sにPullする際にエラーになります。

HTTPSのTLS証明書の検証をスキップする設定をAWXが稼働しているK3sに設定します。

本手順を実施せず、カスタムEEを使用しようとすると下記のエラーでAWXのジョブが失敗します。

Receptor detail: Error creating pod: container failed to start, ImagePullBackOff

設定ファイルを作成します。

 # vi /etc/rancher/k3s/registries.yaml

下記の内容を記載します。

mirrors:
  "192.168.10.208:30003":
    endpoint:
      - "https://192.168.10.208:30003"

configs:
  "192.168.10.208:30003":
    tls:
      insecure_skip_verify: true

設定を反映するためK3sを再起動します。

 # systemctl restart k3s

認証情報設定

Harborに接続するための認証情報を設定します。

「リソース」->「認証情報」画面で下記の設定を行います。

項目備考
名前k-harbor任意の名前
認証情報タイプコンテナーレジストリー
認証URL192.168.10.208:30003HarborのURL
ユーザー名k-harborHarborのプロジェクトに設定したメンバー
パスワードまたはトークンk-harborのパスワード
SSLの検証オフ

実行環境設定

カスタムEEを利用できるよう実行環境を設定します。

「管理」->「実行環境」画面で下記の設定を行います。

項目備考
名前k-harbor任意の名前
イメージ192.168.10.208:30003/k-library/k-awx-ee:v1.0HarborにPushしたカスタムEEを指定
プルイメージが存在しない場合のみ実行前にプルする毎回プルされないようにする。
レジストリーの認証情報k-harbor

動作確認

カスタムEEの簡単な動作確認のため、カスタムEE(k-awx-ee)を指定して下記のアドホックコマンドを時刻してみます。

ansible --version

カスタムEEでビルドしたansibleバージョンであることが確認できたので、カスタムEEが正常に動作しているようです。

127.0.0.1 | CHANGED | rc=0 >>
ansible [core 2.19.0]
  config file = None
  configured module search path = ['/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.12/site-packages/ansible
  ansible collection location = /runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.12.9 (main, Jun 20 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3.12)
  jinja version = 3.1.6
  pyyaml version = 6.0.2 (with libyaml v0.2.5)
Pythonに関するWARNINGは今回動作確認に影響ないため無視しています。
どうしても解消したいという場合は、下記の記事を参照してください。
AWXのAnsible実行時のPython関連のWARNING出力を解消する
どうも、Tです。 AWXでPlaybook実行時に警告が出て、モヤっとするので解消した備忘録です。 環境 コントロールノード A...

参考

Ansible AWX で Execution Environment と Container Group を作って使う | kurokobo.com

まとめ

考えていたよりかなり面倒でしたが、まともに動作するAWX環境を獲得できました…。

スポンサーリンク
アドセンス1
アドセンス1
ブログランキング・にほんブログ村へ

シェアする

フォローする