てくなべ (tekunabe)

ansible / network / automation / StackStorm

Ansible でインベントリファイルを用意せずに対象ホストを指定する方法

-i にカンマ区切りで直接ホストを指定できる

通常、 ansible-playbook コマンドや ansible コマンドのオプション -i オプションでは、イベントリファイル名を指定することが多いと思います。 この -i オプションですが、インベントリファイルを用意することなく、対象ホストをカンマ区切りで直接指定することもできます。


例えば、rt01sw01 を対象とする場合は、以下のように指定します。

ansible-playbook -i rt01,sw01 playbook.yml


対象が1ホストだけの場合は、末尾のカンマを残したかたちにします。

ansible-playbook -i rt01, playbook.yml


なお、末尾のカンマがないと、インベントリファイル名が指定されたとみなされます。

ansible-playbook -i rt01 playbook.yml

(この場合 rt01 というインベントリファイルを探しいく)

インベントリファイルを用意するほどでもないときは、この方法を利用してみてはいかがでしょうか。


参考

コマンドオプションヘルプ (or comma separated host list と記載あり)

[vagrant@centos7 ~]$ ansible-playbook
Usage: ansible-playbook [options] playbook.yml [playbook2 ...]

Runs Ansible playbooks, executing the defined tasks on the targeted hosts.

(略)
  -i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
                        specify inventory host path or comma separated host
                        list. --inventory-file is deprecated