この記事は 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 で順調にアップデートされているようです。
- Unlock your Automation Advantage with Red Hat Ansible Automation Platform 2.5
- What’s new in Red Hat Ansible Automation Platform 2.5 | Red Hat Developer
- What's new: Red Hat Ansible Automation Platform 2.5
- Ansible Automation Platform 2.5で新しくなったEvent-Driven Ansibleを使ってみる - 赤帽エンジニアブログ
- [Ansible/AAP] AAP 2.5 の変更点は?(リリース前の情報から) - てくなべ (tekunabe)
- [Ansible/AAP] AAP 2.5 で導入された統合UI「Platform Gateway」の概要と Automation Controller との関係 - てくなべ (tekunabe)
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 年は、このジャンルの動きもあるのではないかと思います。
- Red Hat Introduces “Policy as Code” to Help Address AI Complexities at Scale
- Automated Policy as Code with Red Hat Ansible Automation Platform
- [Ansible] AnsibleFest 2024 のキーノートで気になったポイント(事例、Event-Driven Ansible、Policy as Code など) - てくなべ (tekunabe)
- [Ansible] Ansible Automates 2024 Japan 参加メモ - てくなべ (tekunabe)
- [Ansible] Playbook の実装ポリシーをチェックできる ansible-policy(開発進行中)をためした - てくなべ (tekunabe)
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日 に終了を迎えます。
ansible-core 2.17 / Ansible 10 リリース
2024年5月に、ansible-core 2.17.0 がリリースされました
- Changelog: ansible/changelogs/CHANGELOG-v2.17.rst at stable-2.17 · ansible/ansible · GitHub
- Porting Guide: Ansible-core 2.17 Porting Guide — Ansible Core Documentation
- ansible-core 2.17 / ansible 10 関連メモ
Ansible Community Package (pip install ansible
でインストールされるもの) としても、ansible-core 2.17 系を含む バージョン 10 が続いてリリースされました。
- Changelog: ansible-build-data/10/CHANGELOG-v10.rst at main · ansible-community/ansible-build-data · GitHub
- Porting Guide: Ansible 10 Porting Guide — Ansible Community Documentation
コントロールノード側の Python 要件が、Python 3.6 以上になりました。Python 2 系のサポートがいよいよ無くなったのも特徴です。
また、Linux ディストリビューションに基づくインタープリター検出機能も廃止されました。
総じて、新機能の追加よりも、Python の扱いの変化が大きなポイントのように感じたバージョンアップでした。
ansible-core 2.18 / Ansible 11 リリース
2024年11月に、ansible-core 2.18.0 がリリースされました。
- Changelog: ansible/changelogs/CHANGELOG-v2.18.rst at stable-2.18 · ansible/ansible · GitHub
- Porting Guide: Ansible-core 2.18 Porting Guide — Ansible Core Documentation
- ansible-core 2.18 / ansible 11 関連メモ
Ansible Community Package (pip install ansible
でインストールされるもの) としても、ansible-core 2.18 系を含む バージョン 11 が続いてリリースされました。
- Changelog: ansible-build-data/11/CHANGELOG-v11.rst at main · ansible-community/ansible-build-data · GitHub
- Porting Guide: Ansible 11 Porting Guide — Ansible Community Documentation
ループを抜ける条件を指定する 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 「を」設定するためのプロバイダーがリリースされました。今後どのような扱いになるのか気になっています。
- Terraform Registry
- [Terraform/AAP] Terraform で Automation Controller を設定する ansible/aap プロバイダーを試す - てくなべ (tekunabe)
コレクションの 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
からあとのリリースはありません。
- Streamlining AWX Releases - Project Discussions - Ansible
- Refactoring AWX into a Pluggable, Service-Oriented Architecture - Project Discussions - Ansible
- Upcoming Changes to the AWX Project
AWX の今後についてのアナウンス。
— くろい (@kurokobo) 2024年7月2日
- CalVar にしようとしてるよ
- ビルドやリリースのプロセスを見直したいから、24.6.1 が出たらしばらくリリースを止めるよ
- アーキテクチャも改善して、AAP の次のバージョンでは統合 UI が提供される予定だよ
……的な。https://t.co/ugEjSUCyEt
AWX のリニューアル工事は 2025 年まで続くみたい。大がかり。https://t.co/19oWMdIhKC
— くろい (@kurokobo) 2024年10月30日
cisco.asa
コレクションが deprecated 扱いへ
Ansible community package から削除されるのはまだ先ですが、Deprecated(非推奨)になりました。
- Deprecation Announcement for the cisco.asa Ansible Collection - Get Help - Ansible
- Remove cisco.asa from Ansible 12 by mariolenz · Pull Request #509 · ansible-community/ansible-build-data · GitHub
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、自動化の始め方など、広範囲に書かれていてとても参考になりました。
おわりに
2024年の Ansible 関連の気になったリリースや動向をまとめました。
例年通り、ansible-core やバージョンアップや AAP のバージョンがありました。AWX の扱いの変化は大きく感じました。
2025 年は、Policy as Code (ansible-policy)の動向に注目していこうかなと思います。
Happy Automation!