はじめに
当方、Ansible 2.9 台を使用したことはありますが、Ansible 2.10 は未使用であり、Ansible 2.10 からはある程度仕様が変更になったとの情報を目にしていました。
2.10 以降では Ansible を使用する上で大きな変更点があるのか、が気になったため以下に情報をまとめます。
Ansible 使用者視点での差分
- 2.10 以降でもほとんどの場合は 2.9 と同じ内容の Playbook で実行できそう
- Playbook でのモジュール名の記述方法として、コレクション名を含む完全な形式での記述(FQCN での記述)が推奨となった
- コレクション間で同名のモジュールが存在する可能性があるため
- Index of all Modules で検索すればコレクション名を確認できる
Ansible パッケージについて
pip install ansible
でインストールされるパッケージについて、Ansible 2.10 以降では ansible
と ansible-base
の 2 つがインストールされるようになりました。
- Ansible 2.9 台
ansible
- Ansible 2.10 以降
ansible
ansible-base
2.9 台の ansible パッケージの内容が 2.10 台以降では ansible
と ansible-base
の 2 つに分けられたということの様です。
Ansible 2.10 Porting Guide によると Ansible 2.10 は以下の 2 パートで構成されているとのこと。
ansible-base
: コマンドラインツールと、少数のプラグインおよびモジュール- コレクションのセット
ansible
パッケージのことと推測されます
また以下の注意書きがありました。(Google 翻訳まま)
ansible-base に含まれるプラグインとモジュール一覧
ansible および ansible-base のバージョンについて
pip freeze
で ansible
および ansible-base
それぞれのバージョンを確認できます。
以下のように 2 つのパッケージでバージョンが一致しているとは限らないようです。
# pip freeze
ansible==3.3.0
ansible-base==2.10.8
ansible --version
では ansible-base
のバージョンが表示されます。
# ansible --version
ansible 2.10.8
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.pyenv/versions/3.9.4/lib/python3.9/site-packages/ansible
executable location = /root/.pyenv/versions/3.9.4/bin/ansible
python version = 3.9.4 (default, Apr 26 2021, 02:50:05) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
あえて Ansible 2.9 台の最新版をインストールする
以下のいずれかのコマンドで Ansible 2.9 台の最新版をインストールすることができます。
pip install "ansible==2.9.*"
pip install ansible~=2.9.0
Playbook でのコレクションの使用方法
インストール済みコレクションの確認
ansible-galaxy collection list
# ansible-galaxy collection list
# /root/.pyenv/versions/3.9.4/lib/python3.9/site-packages/ansible_collections
Collection Version
----------------------------- -------
amazon.aws 1.4.1
ansible.netcommon 1.5.0
ansible.posix 1.2.0
ansible.utils 2.0.2
ansible.windows 1.5.0
arista.eos 1.3.0
(以下略)
ansible-base から ansible-core へ
2021/4/26 に ansible-core (2.11.0)
がリリースされたようです。
ansible-core は ansible-base の後継のようで、早速名前が変わったようです。
ansible-core
のみインストールする場合は以下コマンドでできました。
pip install ansible-core
ansible
パッケージと ansible-core
を同時インストールしたい場合は、現時点では ansible
のバージョン 4 以降を明示的に指定するとできるようです。
pip install ansible==4.0.0a1
pip install ansible==4.0.0a2
pip install ansible==4.0.0a3
pip install ansible==4.0.0a4
ansible 4.0.0b1 リリース
以下コマンドでインストールできました。
pip install ansible==4.0.0b1
# pip freeze
ansible==4.0.0b1
ansible-core==2.11.0
ansible-core 2.11.0
も一緒にインストールされました。
参考資料まとめ

―――――――――――――