【发布时间】:2019-03-21 00:54:30
【问题描述】:
我目前的设置如下:
ansible.cfg
[defaults]
retry_files_enabled = false
hash_behaviour = merge
主机
[sample]
sampleserver
group_vars
group_vars/1.yml 的内容:
tenants:
1:
name: name1
ip: ip1
group_vars/2.yml 的内容:
tenants:
2:
name: name2
ip: ip2
group_vars/3.yml 的内容:
tenants:
3:
name: name3
ip: ip3
playbook.yml
- hosts: sample
tasks:
- set_fact:
mytenants: "{{ {customtenants: tenants[customtenants]} }}"
when: customtenants is defined
- name: Output tenantname
debug:
msg: "mytenant: {{ mytenant }} name: {{ mytenant.name }}"
with_dict: "{{ mytenants|default(tenants) }}"
loop_control:
loop_var: mytenant
命令
为所有租户运行(工作正常)
ansible-playbook playbook.yml -i inventory/hosts
只为一个定义的租户运行(工作正常)
ansible-playbook tenants.yml -i inventory/hosts -e "customtenants=1"
为多个定义的租户运行
ansible-playbook playbook.yml -i inventory/hosts -e '{"customtenants": ["1", "3"]}'
谁能帮助我,让它适用于多个租户(最后一个命令示例)?
或者有没有更好的方法来实现这种动态解决方案?
【问题讨论】:
标签: loops dictionary ansible yaml