Jor*_*sov 7 dynamic-variables ansible
我有vars,我把这样的东西:
vars/main.yml
hello_port: 80
world_port: 81
Run Code Online (Sandbox Code Playgroud)
在我的ansbile文件中,我加载变量
vars_files:
- ./vars/main.yml
Run Code Online (Sandbox Code Playgroud)
这是我初始化m_name的方式:
- name: set_fact
set_fact:
m_name:
- 'hello'
- 'world'
Run Code Online (Sandbox Code Playgroud)
然后我使用with_items进行迭代任务:
- debug:
msg: "{{ (item + '_port') }}"
with_items: "{{ m_name }}"
Run Code Online (Sandbox Code Playgroud)
但我得到了输出
hello_port
world_port
Run Code Online (Sandbox Code Playgroud)
不是他们的价值观
好吧,我发现如果我使用debug var它正在工作.但是如果我想把这个表达式"{{ (item + '_port') }}"放在shell任务中的一个例子中,它就不会对它进行评估.有没有办法评估动态创建的变量名称 - 获取值?
小智 14
https://docs.ansible.com/ansible/2.5/plugins/lookup/vars.html
- name: Show value of 'variablename'
debug: msg="{{ lookup('vars', 'variabl' + myvar)}}"
vars:
variablename: hello
myvar: ename
Run Code Online (Sandbox Code Playgroud)
小智 8
{{ hostvars[inventory_hostname][item + '_port'] }}
Run Code Online (Sandbox Code Playgroud)
http://docs.ansible.com/ansible/latest/faq.html#how-do-i-access-a-variable-name-programmatically
小智 5
我认为您正在寻找:
{{ vars[item ~ '_port'] }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17094 次 |
| 最近记录: |