はじめに
こんにちは たそ(@taso_int)です。
1週間ぶりです。前よりモチベが上がってます。
前回はEE(execution environment)を作成し、
AWXユーザーにイメージを直接置くことで、AAP上に実行環境として登録することができました。
今回はコンテナレジストリーを使って、AAP上に実行環境として登録させたいと思います。
コンテナレジストリとは
本題ではないので、ざっくりと説明しますが、
コンテナイメージを保管するリポジトリのことです。
Dockerの学習でbuild,ship,runという内容があり、
ここのshipでイメージの共有としてよく使われるところのことを指してます。
コンテナレジストリサービスは色々あります。
今回はクラウドサービスを利用したいと思います。
やり方はそこまで差がないと思います。
環境
- AWS ec2
- Red Hat Enterprise Linux release 8.6
- AAP2.2
AAPおよびEEイメージは既にある状態で行います。
各構築方法はこちらへ
AAPのライセンスに関しては
Red HatさんのRed Hat Developer Programに参加し、
Developer Subscriptionを利用しています。
詳細はこちらへ
ECRを使ったやり方
EEをECRにpushするまで
今回はPrivate Registoryの方でイメージの登録をします。
リポジトリの作成を選択し、必要な設定をします。
たぶんリポジトリ名を決めるだけで問題ないと思います。
awscliをインストールおよび設定をします。
以降はrootユーザーで作業します
awscliのインストール(venvを作らずにpipするの怖い) pip3 install awscli awscliの設定 aws configure AWS Access Key ID [None]: アクセスキー AWS Secret Access Key [None]: シークレットキー Default region name [None]: リージョン名 Default output format [None]: json
これで準備が出来たのでimageのpushを行います。
レジストリに対して認証を行う aws ecr get-login-password --region リージョン名 | podman login --username AWS --password-stdin アカウントID.dkr.ecr.リージョン.amazonaws.com Login Succeeded! イメージのタグ付け podman tag smartcs_ee:latest アカウントID.dkr.ecr.リージョン.amazonaws.com/smartcs_ee:latest イメージのpush podman push アカウントID.dkr.ecr.リージョン.amazonaws.com/smartcs_ee:latest AAPで使用するパスワードの取得(メモる) aws ecr get-login-password
上手くいくとイメージタグにlatestがついたものがリストに載ります。
これで完了です。
コンテナレジストリを利用するとAAP上で無理にEEイメージを作成する必要性が 無くなるが割といいかなと思いました。
AAPの設定
AAPで設定を行います。
イメージをpullするのに認証情報が必要になります。
認証情報の追加
名前: ECR(なんでも) 認証情報タイプ: コンテナーレジストリー タイプの詳細 認証URL: アカウントID.dkr.ecr.リージョン.amazonaws.com ユーザー名: AWS パスワードまたはトークン: aws ecr get-login-passwordの結果
実行環境の追加
名前: なんでも イメージ: アカウントID.dkr.ecr.リージョン.amazonaws.com/smartcs_ee:latest(pushした時のタグ) プル: 実行前に必ずコンテナーをプルするorイメージが存在しない場合のみプルする レジストリーの認証情報: 上で設定した認証情報
これで試しに実行してみましょう
問題なく実行できました。
認証情報とかを間違えるとunauthorized: authentication required みたいなエラーが出ます。
ACRを使ったやり方
EEをACRにpushするまで
コンテナーレジストリから作成をクリックします。
設定を入れます。
リソースグループはなければ作りましょう。
サーバー側にazure-cliはいりませんでした。
そのままimageのpushを行います。
レジストリに対して認証を行う podman login レジストリ名.azurecr.io Username: ACRの設定にあるアクセスキーのユーザー名 Password: ACRの設定にあるアクセスキーのパスワード Login Succeeded! イメージのタグ付け podman tag smartcs_ee:latest レジストリ名.azurecr.io/smartcs_ee:latest イメージのpush podman push レジストリ名.azurecr.io/smartcs_ee:latest
imageのpushが出来ました。
AAPで設定を行います。
こちらも同様にイメージをpullするのに認証情報が必要になります。
認証情報の追加
名前: ACR(なんでも) 認証情報タイプ: コンテナーレジストリー タイプの詳細 認証URL: レジストリ名.azurecr.io ユーザー名: ACRの設定にあるアクセスキーのユーザー名 パスワードまたはトークン: ACRの設定にあるアクセスキーのパスワード
実行環境の追加
名前: なんでも イメージ: レジストリ名.azurecr.io/smartcs_ee:latest(pushしたタグ) プル: 実行前に必ずコンテナーをプルするorイメージが存在しない場合のみプルする レジストリーの認証情報: 上で設定した認証情報
これで試しに実行してみましょう
問題なく実行できました。
最後にAWXユーザーに入ってちゃんとイメージを取得してるか
確認して終わりたいと思います。
[awx]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE *******.azurecr.io/smartcs_ee latest cfd020121b4a 6 days ago 449 MB ***********************************.amazonaws.com/smartcs_ee latest cfd020121b4a 6 days ago 449 MB registry.redhat.io/ansible-automation-platform-22/ee-supported-rhel8 latest 5b5c0fdeca9a 5 weeks ago 1.45 GB registry.redhat.io/ansible-automation-platform-22/ee-minimal-rhel8 latest c2450081e5d1 5 weeks ago 286 MB registry.redhat.io/ansible-automation-platform-22/ee-29-rhel8 latest c39fb0c046f4 5 weeks ago 799 MB
以上となります。
ここまで読んでいただきありがとうございました。
次の記事はAAPのローカルサーバーに
生成したファイルを保存する方法について書ければなと思います。