コマンドラインで変数を定義する
変数を参照するコマンド(ansible, ansible-playbook など)では以下のオプションが有効になっている。
-e オプション
--extra-vars オプション
key=value 形式で指定する場合
$ ansible ... --extra-vars "key1=value1 key2=value2" ...
value はすべて文字列になる。それ以外を渡したい場合は JSON 形式にする必要がある。
code:console
$ ansible -e "hello=world key2=value2" -m debug -a '{"msg":"{{ hello }}"}' localhost
localhost | SUCCESS => {
"msg": "world"
}
JSON 形式で指定する場合
JSON では各項目をすべてダブルクォーテーションで括る必要があることに注意。このためシングルクォーテーションで全体を括る必要がある。
$ ansible ... --extra-vars '{"key1":"value1", "key2":123 }' ...
code:console
$ ansible -e '{"hello":"world", "key1":"value1"}' -m debug -a '{"msg":"{{ hello }}"}' localhost
localhost | SUCCESS => {
"msg": "world"
}
ファイルを指定する場合
JSON または YAML ファイルを指定できる。
$ ansible ... --extra-vars "@ファイル名" ...
ファイルは暗号化されていてもよい。その場合はパスワードファイルを指定する必要がある。