概要
Ansibleで作成したツールに複数の値を渡す場合、思わず-e
に頼ってしまいがちだが、playbookの書き方を一工夫することでスマートに値を渡すことができるようになる。
コード
playbook.yml
- hosts: all
gather_facts: no
vars_files:
- '{{ fl_param }}'
tasks:
- debug:
var: parameter
/tmp/parameter.yml
parameter:
hoge: hogehoge
fuga:
- foo
- bar
- baz
piyo:
p1: swallow
p2: sparrow
実行コマンド
$ ansible-playbook -i localhost, -e "fl_param=/tmp/parameter.yml" playbook.yml
アウトプット(抜粋)
TASK [debug] *************************************************
ok: [localhost] => {
"parameter": {
"fuga": [
"foo",
"bar",
"baz"
],
"hoge": "hogehoge",
"piyo": {
"p1": "swallow",
"p2": "sparrow"
}
}
}