Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在另一个剧本中使用一个yml文件中的变量_Variables_Import_Ansible - Fatal编程技术网

Variables 在另一个剧本中使用一个yml文件中的变量

Variables 在另一个剧本中使用一个yml文件中的变量,variables,import,ansible,Variables,Import,Ansible,我是ansible新手,正在尝试在playbook.yml文件中使用vars.yml文件中的变量 瓦拉斯·伊梅尔 --- - firstvar: id: 1 name: One - secondvar: id: 2 name: two playbook.yml --- - hosts: localhost tasks: - name: Import vars include_vars: file: ./vars.yml

我是ansible新手,正在尝试在playbook.yml文件中使用vars.yml文件中的变量

瓦拉斯·伊梅尔

---
- firstvar:
    id: 1
    name: One
- secondvar:
    id: 2
    name: two
playbook.yml

---
- hosts: localhost

  tasks:
  - name: Import vars
    include_vars:
      file: ./vars.yml
      name: vardata

  - name: Use FirstVar
    iso_vlan:
      vlan_id: "{{ vardata.firstvar.id }}"
      name: "{{ vardata.firstvar.name }}"
      state: present

  - name: Use Secondvar
    iso_vlan:
      vlan_id: "{{ vardata.secondvar.id }}"
      name: "{{ vardata.secondvar.name }}"
      state: present

您可以看到,这里我将导入的变量数据(存储在vardata中)视为对象,并尝试在其他任务中调用它们。我很确定这些在第一个任务中导入的变量只在该任务中可用。我如何在其他任务中使用它?它将输出为每个任务未定义的变量。非常感谢您的任何输入。

您的
vars.yml
文件格式不正确

试试这个:

---

firstvar:
  id: 1
  name: One
secondvar:
  id: 2
  name: two
我用这个来测试它:

---
- hosts: localhost

  tasks:
    - name: Import vars
      include_vars:
        file: ./vars.yml
        name: vardata

    - name: debug
      debug:
        msg: "{{ vardata.firstvar.name }}"

    - name: more debug
      debug:
        msg: "{{ vardata.secondvar.id }}"

除了声明变量时出现的错误(语法非常重要),还可以定义include_vars:./vars.yml,这样您就可以立即调用{{firstvar.name}}、{{firstvar.id}。更瘦/更短

这很有帮助。谢谢在本例中,我们可以使用with_项循环另一个文件中的变量,以便只执行一个调试任务吗?