【发布时间】:2020-07-23 00:41:18
【问题描述】:
塔:3.2.3 Ansible 2.4.2
我有一个分配了值的 Tower 剧本,比如说 build_cl: latest。这是在 Ansible Tower 的调查中定义的,我认为这被视为额外变量。我有一个执行检查的任务,如果条件正确,我需要修改 build_cl 的值。
所以让我们说当 Tower playbook 被启动时,var 是:
build_cl: latest
然后:
- name: "Get latest installed CL on groups['Healthcheck_Host'][0]"
shell: |
grep -oP '(?<=\:)(.*?)(?=\-)' {{ latest_deployed_build_dir.stdout }}/buildinfo.txt
register: latest_deployed_cl
- debug:
var: latest_deployed_cl
- set_fact:
build_cl: "{{ latest_deployed_cl.stdout }}"
cacheable: yes
- debug:
var: build_cl
我已经测试过,这里返回的第一个任务的调试可以说是 123456。
但是我尝试使用 set_fact 模块,但第二个调试输出仍然给出:latest。
我尝试的一切似乎都不会影响原始价值。帮助将不胜感激。谢谢
【问题讨论】:
-
我已经验证 ansible 正在分配新值:{ "changed": false, "ansible_facts": { "build_cl": "123456" }, "_ansible_no_log": false }
-
您是否将其作为额外的 var 传递?如果是,则绝对没有机会修改该值。额外的变量有the highest precedence priority。
标签: variables ansible ansible-tower