【发布时间】:2017-03-31 11:56:36
【问题描述】:
我很难找到一个有效的解决方案来循环我的库存。 我从链接意向文件开始我的剧本:
ansible-playbook -i inventory/dev.yml playbook.yml
我的剧本是这样的:
---
- hosts: localhost
tasks:
- name: Create VM if enviro == true
include_role:
name: local_vm_creator
when: enviro == 'dev'
因此,在加载 playbook 时,从 host_vars 读取变量 enviro 并将 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
我在角色 local_vm_creator 中的 main.yml 如下所示:
---
- 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 库存文件中获取列出的服务器。
它只是返回:
好的:[localhost] => (item=groups['local_vm']) => { “项目”:“组['local_vm']”, "msg": "主机是组['local_vm']" }
【问题讨论】:
标签: ansible