在ansible中评估动态变量名称

时间:2017-01-26 14:24:50

标签: ansible dynamic-variables

我有vars,我把它放在这样的地方:

vars/main.yml
hello_port: 80
world_port: 81

在我的ansbile文件中,我用

加载变量
vars_files:
  - ./vars/main.yml

这是我初始化m_name的方式:

 - name: set_fact
     set_fact:
        m_name:
          - 'hello'
          - 'world'

之后我使用with_items进行迭代任务:

 - debug:
      msg: "{{ (item + '_port') }}"
   with_items: "{{ m_name }}"

但我得到了输出

hello_port
world_port

不是他们的价值观。

好的,我发现如果我使用debug var就可以了。但是,如果我想将此表达式"{{ (item + '_port') }}"作为shell任务中的示例,则不会对其进行评估。有没有办法评估动态创建的变量名称 - 获取值?

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

答案 2 :(得分:1)

我认为您正在搜索:

n