はじめに
Ansible のインベントリファイルでは、効率よく定義するためにパターン表記ができます。
例えば、
web_[1:3]
は
web_1 web_2 web_3
と同じです。
この様にパターン表記を利用した場合、うまく解釈されるかどうか事前に確認したくなるのではないでしょうか。
ansible-inventory
コマンドを利用すると確認できます。この記事では、簡単なサンプルをご紹介します。
- 動作確認環境
- Ansible 2.9.4
サンプル
インベントリの用意
いろいろなパターン表記を含めたインベントリファイルを用意します。
- inventory.ini
[web] web_[1:3] web_[01:03] 10.0.0.[101:103] [db] db_[a:c] db_[X:Z] [general] gen_[a:b][01:02]
ansible-inventory
コマンドの実行
ansible-inventory
コマンドの -i
オプションでインベントリファイルを指定し、--list
オプションでリスト表示を指定します。
$ ansible-inventory -i inventory.ini --list { "_meta": { "hostvars": {} }, "all": { "children": [ "db", "general", "ungrouped", "web" ] }, "db": { "hosts": [ "db_X", "db_Y", "db_Z", "db_a", "db_b", "db_c" ] }, "general": { "hosts": [ "gen_a01", "gen_a02", "gen_b01", "gen_b02" ] }, "web": { "hosts": [ "10.0.0.101", "10.0.0.102", "10.0.0.103", "web_01", "web_02", "web_03", "web_1", "web_2", "web_3" ] } }
色々なパターン表記が展開されたことが分かります。
さいごに
ansible-inventory
コマンドは他にも、グループの親子関係を表示する --graph
オプションがあったり、ダイナミックインベントリを指定する機能もあります。
Playbook を用意、実行する前に意図したインベントリかどうか確認するのにとても便利です。