Ansible extra-varsで真偽値(True/False)を使う
概要
ansibleの実行時にextra-varsで変数の真偽値(True/False)を変更する場合、 そのまま指定しても変更できません。
例えば、以下のように実行すると、test_boolに"True"という文字列が入るため、 真偽値のTrueのような使い方は出来ません。
$ ansible-playbook exstra_vars_boolean.yml -e test_bool=true
解決策
extra-varsで値を辞書型で宣言すれば、真偽値をアップデートできます。
$ ansible-playbook exstra_vars_boolean.yml -e '{"test_bool": True}'
実行例
# exstra_vars_boolean.yml --- - hosts: localhost gather_facts: no vars: test_bool: false tasks: - name: debug test_bool debug: var=test_bool when: test_bool == True
上記のymlを実行する場合、下記のように実行することで、test_boolの値をアップデート出来る
$ ansible-playbook exstra_vars_boolean.yml -e '{"test_bool": True}' PLAY [localhost] ************************************************************************* TASK [debug test_bool] ******************************************************************* ok: [localhost] => { "test_bool": true } PLAY RECAP ******************************************************************************* localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0