ansible调用从第一个变量文件和字符串形成的变量,并在第二个变量文件中列出

时间:2015-09-06 10:27:59

标签: linux python-2.7 ansible ansible-playbook ansible-awx

我们有两个变量文件,第一个文件带有常量,第二个变量来自生成的输出。

firstfile.yml

---
prefix: test

secondfile.yml

---
test_variable: 12345

我们想要调用test_variable,但变量的形成应该是来自firstfile.yml而不是"{{ test_variable }}"

的连接

示例:

- hosts: localhost
  connection: local

  vars: 

    constants: firstfile.yml
    variables: seconfile.yml

  vars_files:

    - [ "{{ constants }}, {{ variables }}"

  tasks:
    name: test_name
    field: "{{ prefix }}_variable"

错误:'test_variable' does not exist</Message></Error></Errors>

1 个答案:

答案 0 :(得分:0)

您应该使用debug模块在​​Ansible中显示变量。

您必须引用每个模板表达式括号,而不是全部。如果要包含多个变量文件,可以为每个文件使用单独的行或使用列表,不应该组合2个方法。

修改后的剧本:

---

- hosts: localhost
  connection: local
  vars: 
    constants: firstfile.yml
    variables: secondfile.yml
  vars_files: ["{{ constants }}", "{{ variables }}"]
  tasks:
    - debug: var="{{ prefix }}_variable"

结果:

TASK: [debug var="{{ prefix }}_variable"] ************************************* 
ok: [localhost] => {
    "var": {
        "test_variable": "12345"
    }
}