0

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

第一个文件.yml

---
prefix: test

第二个文件.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>

4

1 回答 1

0

您应该使用调试模块在 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"
    }
}
于 2015-09-08T09:20:19.977 回答