我有一组变量和一个如下任务。我的目的是根据用户选择的URL动态进行健康检查。
vars:
current_hostname: "{{ ansible_hostname }}"
hc_url1: "https://blah1.com/healthcheck"
hc_url2: "https://blah2.com/healthcheck"
tasks:
- name: Notification Msg For Healthcheck
shell: "echo 'Performing healthcheck at the URL {{ lookup('vars', component) }} on host {{ current_hostname }}'"
在Ansible 2.3中运行剧本
ansible-playbook ansible_playbook.yml -i inventory -k -v --extra-vars "component=hc_url1"
错误
fatal: [hostname]: FAILED! => {"failed": true, "msg": "lookup plugin (vars) not found"}
我知道这是因为在Ansible v2.5中引入了查找插件“ var”。在Ansible 2.3中有没有办法做到这一点?我想获取{{component}}的值,然后获取{{hc_url1}}
的值PS-由于组织限制,不能升级到2.5
答案 0 :(得分:0)
或者,也许您可以使用字典来做到这一点。
例如,
vars:
current_hostname: "{{ ansible_hostname }}"
urls:
hc_url1: "https://blah1.com/healthcheck"
hc_url2: "https://blah2.com/healthcheck"
tasks:
- name: Notification Msg For Healthcheck
shell: "echo 'Performing healthcheck at the URL {{ urls[component] }} on host {{ current_hostname }}'"
这样,用户提供的component
的值将被视为字典中的键。