はじめに
Ansible から Terraform を呼ぶ terraform
モジュールですが、現状 cloud.terraform
コレクションと community.general
コレクションの2つにあります。
ここまでの経緯や、現在の状況になっている理由をまとめます。
経緯
もともと terraform
モジュールは community.general
コレクションにありました。
そこから独立する形で、cloud.terraform
コレクションができました。バージョン 1.0.0 のリリースは 2022年のことでした。
コレクション単位で比較すると以下の特徴があります。
community.general |
cloud.terraform |
|
---|---|---|
内容 | いろいろ | Terraform 用 |
Terraform 関連のモジュール類 | terraform モジュール |
terraform モジュール 、terraform_state インベントリプラグイン、terraform.provider インベントプラグインなど |
配布元 | Ansible Galaxy | Ansible Galaxy、Automation Hub |
まだ2つのコレクションにある事情
cloud.terraform.terraform
の方が後発ですが、 community.general.terraform
は Deprecated (非推奨)になっていません。直近だと 2024年2月のコミットがありました。
どういうことだろうと思って、Forum で聞いてみました。以下のような事情があるそうです。
cloud.terraform
コレクションは Ansible Community Package (いろいろコレクションがセットのもの)に含まれていないcommunity.general
コレクションはもともと Ansible Community Package に含まれている- ルール上、Ansible Community Package に含まれるものを外に移動することはできない
おわりに
開発者にとっても利用者にとっても 1つに統一されてメンテナンスされる方が、好ましいと思います。
が、すでに差分が出てしまっている状態で、互換性などを考慮して統一させていくのは難しいのかもしれません。見守りたいと思います。
参考
- Remove or deprecate community.general.terraform · Issue #192 · ansible-community/community-topics · GitHub
- Should we allow moving content out of community.general and community.network to collections that are not part of Ansible? · Issue #167 · ansible-community/community-topics · GitHub
- Should we allow moving content out of community.general and community.network to collections that are not part of Ansible? - Project Discussions - Ansible