実現したいこと
ansible-plyabookコマンド内で -e で指定した変数(area)をplaybook内で上書きしたいです。
下記のコマンドにて変数(area)に「kanto」を指定します。
ansible-playbook -i hosts.yml playbook.yml -e "region=osaka area=kanto"
インベントリー内(hosts.yml)のホスト名に「osaka」が含まれていた場合
変数(area)を「kansai」に上書きしたいのですが、変数(area)は「kanto」のままです。
extra-varsで設定する変数はpkaybook内では上書き出来ないのでしょうか。
もしご存じの方がいらっしゃいましたらご教授頂けますと幸いです。
宜しくお願い致します。
コマンド実行結果
ok: [osaka101.hoge.co.jp] => { "msg": "are: kanto"
該当のソースコード
playbook.yml
1--- 2- name: Start Playbook 3 hosts: "{{ region }}" 4 gather_facts: false 5 6 vars_files: 7 - vars/hoge_vars.yml 8 9 tasks: 10 - name: Set_fact area 11 ansible.builtin.set_fact: 12 area: "{% if \"osaka\" in inventory_hostname %}kansai{% else %}{{ area }}{% endif %}" 13 - name: Echo "{{ inventory_hostname }}" 14 ansible.builtin.debug: 15 msg: "area: {{ area }}"
試したこと
下記のように新たに別の変数を設定すれば想定通りの結果となりますが、
可能であれば変数(area)の値を上書きしたいです。
ansible.builtin.set_fact: change_area: "{% if \"osaka\" in inventory_hostname %}kansai{% else %}{{ area }}{% endif %}"

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。