てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] quay.io/ansible/ansible-runner のイメージの廃止予定と今後の動き(2023年3月地点)

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)。

quay.io/ansible/ansible-runner の状況

(一方、pip 版 ansible-navigator や VS Code の Ansible の拡張がデフォルトで使う creator-eeのほうは更新されています)

そして、以下のツイートで知ったのですが、今後もメンテナンスされなくなるそうです。

どうなる?

github.com

runner 用のイメージを提供するのをやめて、数ヶ月後にリリース予定の ansible-builder の次期メジャーバージョン によって柔軟に環境を作れるようにする、ということのようです。

quay.io/ansible/ansible-runnerリポジトリ自体は will be discontinued とのこと。具体的に、リポジトリが消えるのか何なのかはわかりません。本記事のタイトルでは「廃止」と表現しました。

気になる ansible-builder の今後ですが、現在以下の Draft のプルリクエストで、機能改善が開発中のようです。(後日追記: 2023/04/04 に devel にマージ

github.com

ちょっと開発中のファイルを見てみますと、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' のような指定はなくなり、別の指定方法になるようです。

開発中なので仕様は変わるかもしれませんが、少し雰囲気がつかめました。今後の動きが気になるところです。

後日追記

[2023/05/16 追記]

ansible-builder 3.0.0 がリリースされました。

github.com