はじめに
Ansible 2.10 で Collection 運用が本格的に始まったことにより、本体側にも新しい仕組みができました。
わりと重要そうだけど埋もれそうな情報として以下の2点のリンクを掲載ます。
- Ansible2.9までにあったモジュールを装飾なし表記(FQCNでない)した場合の FQCNへのリダイレクト先の定義
ansible
がansible-base
とどのcollection をセットにしているかの定義
1. FQCN へのリダイレクト定義
Ansible 2.9 から 2.10 への移行容易性(おそらく)のため、これまであったモジュール名などを、装飾なし(FQDNでない)で指定したときに、リダイレクト先FQCNを定義したデータです。
ansible_builtin_runtime.yml
たとえば、
ios_config: redirect: cisco.ios.ios_config
であれば、ios_config
と表記したときに FQCN cisco.ios.ios_config
にリダイレクトされることが分かります。リダイレクトの様子は ansible-playbook
コマンドで -vvv
のように v
を3つ以上つけたときに redirecting (type: action) ansible.builtin.ios to cisco.ios.ios
のようなログとして確認できます。(対象の collection がインストールされていることが前提です)
なお、このデータは間違いがあるときもあるので、うまく呼び出せないときは疑ったほうがいいです。呼び出せない場合は Playbook 実行時に以下のようなエラーになります。
ERROR! couldn't resolve module/action 'ios_config'. This often indicates a misspelling, missing collection, or incorrect module path.
2. ansible とセットの collection の定義
ansible は ansible-base と collection のセットで構成されます。
どのようなセットかを定義するデータはこちらです。
たとえば、ansible 2.10.0rc1
であれば、2.10/ansible-2.10.0rc1.deps
を参照します。
_ansible_base_version: 2.10.1
とあるのでは、 ansible-base は 2.10.1 を利用することが分かります。
ほか、たとえば、
cisco.ios: 1.0.3