てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible/Terraform] terraform モジュールが2つのコレクションにある事情(cloud.terraform、community.general)

はじめに

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つに統一されてメンテナンスされる方が、好ましいと思います。

が、すでに差分が出てしまっている状態で、互換性などを考慮して統一させていくのは難しいのかもしれません。見守りたいと思います。

参考