この記事は、Ansible Advent Calendar 2022 の 14日目の記事です。
はじめに
もともと Ansible 本体とセットだったモジュール類の多くが、ansible(-base) 2.10 でコレクションに移行しました。
少しややこしく感じるかもしれませんが AWS の各種リソースを操作できるコレクションは以下の2つがあります。
amazon.aws
community.aws
それぞれの違いを簡単ですがまとめます。
比較
amazon.aws コレクション |
community.aws コレクション |
|
---|---|---|
メンテナンス主体 | Maintained and Supported By : Red Hat Ansible |
`This collection is maintained by the Ansible community |
Ansible 公式ドキュメント上のページ(モジュール一覧含む) | amazon.aws |
community.aws |
Ansible Galaxy のページ | amazon.aws |
community.aws |
GitHub リポジトリ | ansible-collections/amazon.aws |
ansible-collections/community.aws |
両コレクションとも、古いバージョンの ansible-core のサポート切ってきているのは共通です。各コレクションのバージョン 5.0.0 で、ansible-core 2.11 未満のサポートを切っています。
Support for ansible-core<2.11 has also been dropped.
(amazon.aws
側 CHANGELOG、community.aws
側 CHANGELOG)
含まれるモジュールも異なる
それぞれに含まれるモジュールも異なります。
たとえば、EC2 インスタンスを操作するモジュールは amazon.aws
コレクションにある amazon.aws.ec2_instance
モジュールです。
EC2 の情報を動的に扱えるインベントリプラグイン amazon.aws.aws_ec2 inventory
も同様です。
一方、ルートテーブルを操作するモジュールは community.aws
コレクションにある community.aws.ec2_vpc_route_table
モジュール です。
コレクション間でモジュール類が引っ越すこともある
モジュール類がコレクション間で引っ越す(移行)ことがあります。
例えば最近では、多くのモジュール類が community.aws
コレクション から amazon.aws
コレクションに移行しました。
それぞれのコレクションのバージョン 5.0.0
のタイミングです。
詳細はそれぞれの CHANGELOG を参照してください。
現状はリダイレクトの定義(例)があって、意識しなくてもいいケースあるかも知れませんが、症例的に定義が消えるかも知れません。
どのモジュールがどのコレクションあるかは意識して、リダイレクトに頼らないほうがトラブル防止になると思います。
おわりに
ほかにも、ansible.windows
と、ommunity.windows
のように、コレクションが別れているものがいくつかあります。
モジュールを探す場合は、両コレクションを探すのが良さそうです。