てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] AWS 系コレクションは 2つある(amazon.aws、community.aws)

この記事は、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 側 CHANGELOGcommunity.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 を参照してください。

  • amazon.aws 5.0.0 CHANGELOG
      • ec2_eip - The module has been migrated from the community.aws collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use amazon.aws.ec2_eip.

  • community.aws 5.0.0 CHANGELOG
      • ec2_eip - The module has been migrated from the community.aws collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use amazon.aws.ec2_eip

現状はリダイレクトの定義()があって、意識しなくてもいいケースあるかも知れませんが、症例的に定義が消えるかも知れません。

どのモジュールがどのコレクションあるかは意識して、リダイレクトに頼らないほうがトラブル防止になると思います。

おわりに

ほかにも、ansible.windowsと、ommunity.windowsのように、コレクションが別れているものがいくつかあります。

モジュールを探す場合は、両コレクションを探すのが良さそうです。