我有一个问题,要找到一个可行的解决方案来循环我的库存。我从链接一个意图文件开始我的剧本:
-i库存/dev.yml playbook.yml
我的剧本是这样的:
---
- hosts: localhost
tasks:
- name: Create VM if enviro == true
include_role:
name: local_vm_creator
when: enviro == 'dev' 因此,当加载剧本时,变量enviro将从host_vars读取,并将when条件设置为dev。库存文件dev.yml如下所示:
[local_vm]
192.168.99.100
192.168.99.101
192.168.99.102
[local_vm_manager_1]
192.168.99.103
[local_vm_manager_2]
192.168.99.104
[local-all:children]
local_vm
local_vm_manager_1
local_vm_manager_2我在角色main.yml中的local_vm_creator如下所示:
---
- name: Create test host
local_action: shell docker-machine create -d virtualbox {{ item }}
with_items:
- node-1
- node-2
- node-3
- node-4
- node-5
- debug: msg="host is {{item}}"
with_items: groups['local_vm'] 问题是我无法从dev.yml库存文件中获取列出的服务器。
它只会返回:
ok: localhost => (item=group‘’local_vm‘) => { "item":“group’‘local_vm’”,"msg":"host is group‘’local_vm‘“}
发布于 2017-03-31 12:04:25
如果唯一的问题是with_items循环,请将其替换为:
with_items: "{{ groups['local_vm'] }}"你可以走了。在with_中不再支持裸变量。
https://stackoverflow.com/questions/43140086
复制相似问题