Ansible Documentation
機能
- vars セクションで定義した変数の設定を上書きする(定義し直す)
- 変数を定義する
- ファイルに YAML/JSON 形式で定義した変数を取り込む
例
■ 変数を上書き--- - hosts: all gather_facts: no vars: var1: "{{ now(False, '%Y%m%d_%H%M%S') }}" var3: vars_prompt: - name: var2 prompt: "var2 の値を入力してください。" private: no tasks: - name: var1 の値 debug: var: var1 - name: var2 の値 debug: var: var2実行結果です。vars セクションで定義した変数がコマンドラインで指定した変数に初期値を含めて上書きされています。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i hosts.yml --extra-vars 'var1=123, var2="abc"' site.yml
PLAY [all] *********************************************************************************************************
TASK [var1 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var1": "123,"
}
TASK [var2 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var2": "abc"
}
PLAY RECAP *********************************************************************************************************
node-c0706 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/vars$
■ 変数を定義
--- - hosts: all gather_facts: no tasks: - name: var1 の値 debug: var: var1 - name: var2 の値 debug: var: var2実行結果です。play に変数は定義されていません。コマンドラインで指定した変数 var1 と var2 が play 内で参照されています。
nsibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i hosts.yml --extra-vars 'var1=123, var2="abc"' site.yml
PLAY [all] *********************************************************************************************************
TASK [var1 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var1": "123,"
}
TASK [var2 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var2": "abc"
}
PLAY RECAP *********************************************************************************************************
node-c0706 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/vars$
変数を定義(指定)する場合、YAML 形式で指定できます。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i hosts.yml --extra-vars '{ "var1":123, "var2":"abc" }' site.
yml
PLAY [all] *********************************************************************************************************
TASK [var1 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var1": 123
}
TASK [var2 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var2": "abc"
}
PLAY RECAP *********************************************************************************************************
node-c0706 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/vars$
■ 変数をファイルで取り込み
--- - hosts: all gather_facts: no tasks: - name: var1 の値 debug: var: var1 - name: var2 の値 debug: var: var2ファイル variablefile.yml の内容
--- var1: 123 var2: "abc"実行結果です。play に変数は定義されていません。コマンドラインで指定したファイル variablefile.yml が読み込まれています。vars_files ディレクティブに似た使い方ができます。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i hosts.yml --extra-vars '@variablefile.yml' site.yml
PLAY [all] *********************************************************************************************************
TASK [var1 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var1": 123
}
TASK [var2 の値] ***************************************************************************************************
**
ok: [node-c0706] => {
"var2": "abc"
}
PLAY RECAP *********************************************************************************************************
node-c0706 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/vars$
■ --extra-vars を複数指定した例
--- - hosts: all gather_facts: no tasks: - name: var1 の値 debug: var: var1 - name: var2 の値 debug: var: var2 - name: var3 の値 debug: var: var3実行結果です。
nsibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i hosts.yml --extra-vars '@variablefile.yml' --extra-vars 'var3="xyz"' site.yml
PLAY [all] *************************************************************************************************************
TASK [var1 の値] *******************************************************************************************************
**
ok: [node-c0706] => {
"var1": 123
}
TASK [var2 の値] *******************************************************************************************************
**
ok: [node-c0706] => {
"var2": "abc"
}
TASK [var3 の値] *******************************************************************************************************
**
ok: [node-c0706] => {
"var3": "xyz"
}
PLAY RECAP *************************************************************************************************************
node-c0706 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/vars$