【问题标题】:Trying to use variables from variable file in ansible playbook尝试在ansible playbook中使用变量文件中的变量
【发布时间】:2022-01-23 03:36:29
【问题描述】:

您好,我很难在我的剧本中使用变量文件中的变量。我正在使用相同的变量文件快照这是我的代码,我只是想遍历列表中的一项。

snapshotvar.yml

kvm1
  - vm1
  - vm2
kvm2
  - vm4
  - vm3
  - vm5

kvmsnapshot.yml

---
- hosts: kvm2
  vars_files:
    - snapshot.yml
  tasks:
  - name: Create kvm snapshot
    ovirt_snapshot:
      vm_name: "{{ item }}"
      description: prepatch
    loop: "{{ kvm2[2] }}"

【问题讨论】:

    标签: ansible


    【解决方案1】:

    您的 var 文件中有一些错误:(您忘记了 :) 并给出正确的名称 (snapshot.yml)

    kvm1:
      - vm1
      - vm2
    kvm2:
      - vm4
      - vm3
      - vm5
    

    如果您只想使用具有第二个索引的项目,则无需循环:

    ---
    - hosts: kvm2
      vars_files:
        - snapshot.yml
      tasks:
      - name: Create kvm snapshot
        ovirt_snapshot:
          vm_name: "{{ kvm2[2] }}"
          description: prepatch
    

    如果你想遍历 kvm2 的所有值:

    ---
    - hosts: kvm2
      vars_files:
        - snapshot.yml
      tasks:
      - name: Create kvm snapshot
        ovirt_snapshot:
          vm_name: "{{ item }}"
          description: prepatch
        loop: "{{ kvm2 }}"
    

    【讨论】:

      【解决方案2】:

      有几个语法错误。

      1. 修复文件 snapshotvar.yml 的 YAML
      shell> cat snapshotvar.yml 
      kvm1:
        - vm1
        - vm2
      kvm2:
        - vm4
        - vm3
        - vm5
      
      1. 修正文件snapshotvar.yml的名称和你要迭代的变量kvm2的名称
      - hosts: localhost
        vars_files:
          - snapshotvar.yml
        tasks:
          - debug:
              var: item
            loop: "{{ kvm2 }}"
      

      给予

        item: vm4
        item: vm3
        item: vm5
      

      根据您的需要调整任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-12
        • 2015-06-20
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 2020-09-07
        • 2020-09-22
        • 1970-01-01
        相关资源
        最近更新 更多