機能
- ansible-playbook コマンドの -i / --inventory オプションで inventory ファイルの代わりに対象ホストの IP アドレスを指定することができる
- 指定する IP アドレスが 1 つのときはの最後に "," を付ける(最後に "," がないと inventory ファイルを指定したと解釈される)
- "," で区切って複数の対象ホストの指定が可能
- 名前解決ができるなら IP アドレスの代わりにホスト名の指定も可能
- localhost の指定も可能
例
今回の例で使用する play です。
---
- hosts: all
tasks:
- name: ホスト名
debug:
var: ansible_facts['hostname']
- name: IP アドレス
debug:
var: ansible_facts['default_ipv4']['address']
- name: メッセージ出力
debug:
msg: "最後"
IP アドレスを指定した実行結果です。IP アドレスが 1 つだけなので最後に "," を付けます。-u オプションで対象ホストに接続するユーザー名( workman )を指定しています。
ansibleman@ubuntu-pc:~/ansible/eg$ ansible-playbook -i 192.168.101.21, -u workman site.yml
PLAY [all] ****************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************
ok: [192.168.101.21]
TASK [ホスト名] ***********************************************************************************************************************
****
ok: [192.168.101.21] => {
"ansible_facts['hostname']": "node-c0706"
}
TASK [IP アドレス] ********************************************************************************************************************
****
ok: [192.168.101.21] => {
"ansible_facts['default_ipv4']['address']": "192.168.101.21"
}
TASK [メッセージ出力] *****************************************************************************************************************
*******
ok: [192.168.101.21] => {
"msg": "最後"
}
PLAY RECAP ****************************************************************************************************************************
192.168.101.21 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/eg$
IP アドレスを 2 つ指定した例です。今回は IP アドレスの最後に "," は不要です。
ansibleman@ubuntu-pc:~/ansible/eg$ ansible-playbook -i 192.168.101.21,192.168.101.22 -u workman site.yml
PLAY [all] ****************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************
ok: [192.168.101.21]
ok: [192.168.101.22]
TASK [ホスト名] ***********************************************************************************************************************
****
ok: [192.168.101.21] => {
"ansible_facts['hostname']": "node-c0706"
}
ok: [192.168.101.22] => {
"ansible_facts['hostname']": "node-u1804"
}
TASK [IP アドレス] ********************************************************************************************************************
****
ok: [192.168.101.21] => {
"ansible_facts['default_ipv4']['address']": "192.168.101.21"
}
ok: [192.168.101.22] => {
"ansible_facts['default_ipv4']['address']": "192.168.101.22"
}
TASK [メッセージ出力] *****************************************************************************************************************
*******
ok: [192.168.101.21] => {
"msg": "最後"
}
ok: [192.168.101.22] => {
"msg": "最後"
}
PLAY RECAP ****************************************************************************************************************************
192.168.101.21 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.101.22 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/eg$
localhost に接続する例です。localhost に接続する場合、-c オプションでコネクションタイプの指定が必要です。
ansibleman@ubuntu-pc:~/ansible/eg$ ansible-playbook -i localhost, -c local site.yml
PLAY [all] ****************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************
ok: [localhost]
TASK [ホスト名] ***********************************************************************************************************************
****
ok: [localhost] => {
"ansible_facts['hostname']": "ubuntu-pc"
}
TASK [IP アドレス] ********************************************************************************************************************
****
ok: [localhost] => {
"ansible_facts['default_ipv4']['address']": "192.168.101.233"
}
TASK [メッセージ出力] *****************************************************************************************************************
*******
ok: [localhost] => {
"msg": "最後"
}
PLAY RECAP ****************************************************************************************************************************
localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/eg$