quay.io/ansible/ansible-runner
とは
venv でははく、コンテナベースの Ansible の実行環境が登場してしばらく経ちました。
AAP を利用するときは registry.redhat.io/ansible-automation-platform-21/ee-supported-rhel8
のようなイメージを見かけますが、それ以外では、quay.io/ansible/ansible-runner
というイメージをよく見かけます。quay.io/ansible/ansible-runner
は、ansible-builder でビルドする際のデフォルのベースイメージだったりします。
メンテナンスが止まっている
quay.io/ansible/ansible-runner
ですが、しばらくメンテナンスされていません。ansible-core 2.12 らしきタグで止まっています(現在最新は 2.14)。
(一方、pip 版 ansible-navigator や VS Code の Ansible の拡張がデフォルトで使う creator-ee
のほうは更新されています)
そして、以下のツイートで知ったのですが、今後もメンテナンスされなくなるそうです。
Ansible Runner のコンテナイメージ(本体ではなくコンテナイメージだけの話)、しばらく放置されてたけど、このまま更新しない方針で決まったみたい。
— くろい (@kurokobo) 2023年2月27日
新しい Builder どうなるのかな、OS のベースイメージに Runner を直接入れて組み立てる? ことになるのかしら?https://t.co/rgxsolyDpr
どうなる?
runner 用のイメージを提供するのをやめて、数ヶ月後にリリース予定の ansible-builder の次期メジャーバージョン によって柔軟に環境を作れるようにする、ということのようです。
quay.io/ansible/ansible-runner
のリポジトリ自体は will be discontinued
とのこと。具体的に、リポジトリが消えるのか何なのかはわかりません。本記事のタイトルでは「廃止」と表現しました。
気になる ansible-builder の今後ですが、現在以下の Draft のプルリクエストで、機能改善が開発中のようです。(後日追記: 2023/04/04 に devel
にマージ)
ちょっと開発中のファイルを見てみますと、ansible-builder の定義ファイルは以下のような例がありました。
dependencies: python: requirements.txt system: bindep.txt galaxy: requirements.yml ansible_core: ansible-core==2.14.2 ansible_runner: ansible-runner==2.3.1 python_interpreter: package_name: "python310" python_path: "/usr/bin/python3.10"
これは version: 3
なフォーマットのようで、これまでの version: 2
までにはなかった項目を含んでいます。
一番特徴的なのは、ansible_core
でしょうか。ここで使用する ansible-core のバージョン含めて指定するようです。これまでは ansible-core がインストールされたベースイメージを指定していました。ansible_core
という項目があるということは、ベースイメージは ansible-core なしにして、入れたい ansible-core のバージョンを ansible_core
で指定する、という形になるということでしょうか。このあたりが、例の issue でいう柔軟さに通じるのかもしれません。(まだ深く見れていないので予想を含みます)
また、これまであった ansible_config: 'ansible.cfg'
のような指定はなくなり、別の指定方法になるようです。
開発中なので仕様は変わるかもしれませんが、少し雰囲気がつかめました。今後の動きが気になるところです。
後日追記
もしかして ansible-builder の次期メジャーバージョンて 2 じゃなくて 3 なのかな。確かのそのほうが execution-environment.yml の version と整合性取れてて良さそう。
— よこち (@akira6592) 2023年4月15日
おもったよりリリースも早い予感がする。
[2023/05/16 追記]
ansible-builder 3.0.0 がリリースされました。