てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] 2024年の Ansible 関連リリースや動向まとめ

この記事は Ansible Advent Calendar 2024 の 24日目の記事です。

はじめに

ここ数年、アドベントカレンダーのタイミングで、その年の Ansible 関連のリリースや動向をまとめるようにしているので、今年もやりたいと思います。

例年通り、半年に一度の ansible-core のバージョンアップがあったほか、2024年9月リリースの AAP 2.5 では、インストール方法やアーキテクチャに大きな変更がありました。

ほか、Playbook のポリシーをチェックする Policy as Code についての発表もありました(ツールとしては未リリース)。

この記事では、今年の個人的にポイントだと思った Ansible 関連リリースや動向をまとめます。

リリースや発表

AAP 2.5 リリース

2024年9月30日に、AAP (Ansible Automation Platform) 2.5 がリリースされました。今回のリリースは、AAP 2 系になって、一番大きな変化が起きたという印象があります。

ポイントは以下のとおりです。

  • 統合UI「Platform Gateway」の導入
  • コンテナによるデプロイ方式の追加

Platform Gateway の導入によって、Automation Controller や Automation Hub、EDA Controller の画面が1つに統合されました。認証も統一されており、シームレスに操作できるようになりました。

コンテナによるデプロイは、従来からある RPM ベースのインストールと比べると処理が早くて良かったです。API リクエストの仕方も変わってるのは注意点です。

AAP 2.4 で GA になった Event-Driven Ansible も AAP 2.5 で順調にアップデートされているようです。

Policy as Code

AnsibleFest 2024 や Ansible Automates 2024 Japan で Policy as Code についての発表がありました。

Ansible における Policy as Code は、例えば Playbook で指定する AWS インスタンスタイプが指定したポリシーにあっているかどうか確認するよなことを指します。

ansible-lint が文法的なチェックだとすると、Policy as Code は内容のチェックといったところでしょうか。Ansible Lightspeed が生成した Playbook をより安全に使うためにチェックする、いわばガードレールのような使い方もできそうです。

ポリシーを記述したものを Policybook と呼びます。チェックする具体的なツールとして ansible-policy が公開されていますが、現状は prototype implementation です。

2025 年は、このジャンルの動きもあるのではないかと思います。

AAP 1.2 の Extended life cycle support (ELS) add-on 終了

去年「Maintenance support 2」が終わった AAP 1.2 ですが、一定の条件下、「Extended life cycle support (ELS) add-on」が設けられていました。それも 2024年12月31日 に終了を迎えます。

access.redhat.com

ansible-core 2.17 / Ansible 10 リリース

2024年5月に、ansible-core 2.17.0 がリリースされました

Ansible Community Package (pip install ansible でインストールされるもの) としても、ansible-core 2.17 系を含む バージョン 10 が続いてリリースされました。

コントロールノード側の Python 要件が、Python 3.6 以上になりました。Python 2 系のサポートがいよいよ無くなったのも特徴です。

また、Linux ディストリビューションに基づくインタープリター検出機能も廃止されました。

総じて、新機能の追加よりも、Python の扱いの変化が大きなポイントのように感じたバージョンアップでした。

ansible-core 2.18 / Ansible 11 リリース

2024年11月に、ansible-core 2.18.0 がリリースされました。

Ansible Community Package (pip install ansible でインストールされるもの) としても、ansible-core 2.18 系を含む バージョン 11 が続いてリリースされました。

ループを抜ける条件を指定する break_when がサポートされたり、ansible.builtin.meta モジュール で end_role がサポートされたりしました。

コントロールノードで Python 3.11 以上が、マネージドノードで Python 3.8 以上が必要になりました。このように、バージョンアップによってサポートされる Python のバージョンが引き上がることがあります。対応表は以下の「ansible-core support matrix」がわかりやすいです。

Releases and maintenance — Ansible Community Documentation

あと、vars ディレクティブに変数を定義する方法で、一部非推奨だった方法がありますが、それがいよいろエラーになるようになりました。

ansible-builder 3.1.0 リリース

Python 依存パッケージ関連の処理が一部変わって、3.0 系でビルドできたけど、3.1.0 でビルドできないというケースが出てきたので、少し注意ですが、基本は正常なバージョンアップです。

ポーティングガイドも出ています。

Terraform の ansible/aap プロバイダー 1.0.0 リリース

Terraform 「で」AAP 「を」設定するためのプロバイダーがリリースされました。今後どのような扱いになるのか気になっています。

コレクションの Ansible 2.9 切りが進む

たとえば、以下は ansible.posix コレクション 1.6.0 の changelog より。

Dropping support for Ansible 2.9, ansible-core 2.15 will be minimum required version for this release

AWX がリニューアル工事に入る

プラグイン化、UI の切り離しなど、さまざまな方面でアーキテクチャー変更のための工事に入りました。この関係で、バージョン 24.6.1 からあとのリリースはありません。

cisco.asa コレクションが deprecated 扱いへ

Ansible community package から削除されるのはまだ先ですが、Deprecated(非推奨)になりました。

2024/12/23 時点の latest のドキュメントにも以下の記載があります。

The cisco.asa collection has been deprecated and will be removed from Ansible 12. See the discussion thread for more information.

その他

周辺ツールのバージョン表記が CalVer に

ansible-lint や ansible-navigator などの周辺ツールのバージョン表記が、SemVer から CalVer になりました。

年月ベースの YY.MM.MCIRO であり、たとえば 2024年12月の初回リリースが 24.12.0 で、同月 2回目のリリースは 24.12.1 です。

「いきなりバージョン 24 系になったんだが!?」と驚かれた方もいらっしゃるかもしれません。

Devtools Projects Transitioning to CalVer Releases - News & Announcements - Ansible

ansible-core は従来のままです。

書籍「インフラの構成管理と自動化のための実践Ansible」発売

Playbook の書き方のみならず、ansible-navigator や molecule、自動化の始め方など、広範囲に書かれていてとても参考になりました。

www.shuwasystem.co.jp

おわりに

2024年の Ansible 関連の気になったリリースや動向をまとめました。

例年通り、ansible-core やバージョンアップや AAP のバージョンがありました。AWX の扱いの変化は大きく感じました。

2025 年は、Policy as Code (ansible-policy)の動向に注目していこうかなと思います。

Happy Automation!