尝试在ansible playbook中使用变量文件中的变量
Posted
技术标签:
【中文标题】尝试在ansible playbook中使用变量文件中的变量【英文标题】:Trying to use variables from variable file in 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] "
【问题讨论】:
【参考方案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】:有几个语法错误。
-
修复文件 snapshotvar.yml 的 YAML
shell> cat snapshotvar.yml
kvm1:
- vm1
- vm2
kvm2:
- vm4
- vm3
- vm5
-
修正文件snapshotvar.yml的名称和你要迭代的变量kvm2的名称
- hosts: localhost
vars_files:
- snapshotvar.yml
tasks:
- debug:
var: item
loop: " kvm2 "
给予
item: vm4
item: vm3
item: vm5
根据您的需要调整任务。
【讨论】:
以上是关于尝试在ansible playbook中使用变量文件中的变量的主要内容,如果未能解决你的问题,请参考以下文章
将变量传递给主机的 Ansible playbook:使用双引号