てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] 組織内でのみ使うコレクションの名前空間「local」が公式ドキュメントに明示された

そもそもコレクションとは

Ansible は現在、モジュール類の管理はコレクションという単位でまとめられています。

このコレクションは「名前空間(namespace).コレクション名」という形式で識別されます。例えば、ansible.utislcisco.ios などです。

コレクションは Ansible Galaxy でインターネット上に公開されてるので、名前空間は一意であるあることが求められます。

組織内だけで利用するコレクション

ただ、Ansible Galaxy では公開せず、組織の中だけで使うコレクションもあるかと思います。

この場合、組織内で独自に名前空間を付けたとしても、その名前空間が第三者によって Ansible Galaxy に登録されるとトラブルの元です。

それを防ぐには、自らが Ansible Galaxy でその名前空間を予約しておくことが対策になります。

気軽に使える名前空間「local」

とはいえ「そこまでするほどでもないけど、とにかく組織内だけでコレクションの体裁を保つための名前空間があればいいなぁ」というときに有効なのが「local」です。

今まで、中身が空の名前空間としてあることはありましたが、最近ドキュメント上に用途が明示されました。

docs.ansible.com

The local namespace does not contain any collection on Ansible Galaxy, and the intention is that this will never change. You can use the local namespace for collections that are locally on your machine or locally in your git repositories, without having to fear collisions with actually existing collections on Ansible Galaxy.

Galaxy に公開せず、一意性を気にせずに組織内でコレクションの名前空間を使いたいときに便利です。

経緯

私が気になっていたことで、Forum で質問したら local の持ち主さんに回答いただき、ドキュメントに記載していただた、という流れです。

とても助かりました。

forum.ansible.com