我有一个剧本,我已经使用了一段时间。剧本为东部和西部位置定义了某些参数和变量。西部一直是主要位置,东部是备用位置。我们现在将逻辑切换到客户所在的位置,这将是主要位置。当位置在东海岸时,我试图扭转库存主机,这样东海岸设备将获得主要设置,然后是西海岸。我试过以下方法,但没有成功。根据文档,这是颠倒库存文件顺序的正确语法。
违规行似乎是:
when: location == "east"秩序:reverse_inventory这里^
- hosts: cisco_lab
when: location == "east"
order: reverse_inventory
......Rest of playbook
使用三元制,例如给定库存
shell> cat hosts
[cisco_lab]
host1
host2
host3
的剧本shell> cat playbook.yml
---
- hosts: cisco_lab
order: "{{ (location == 'east')|ternary('reverse_inventory', 'inventory') }}"
gather_facts: false
tasks:
- debug:
var: inventory_hostname
以倒序执行东位置
shell> ansible-playbook -i hosts playbook.yml -e location=east
PLAY [cisco_lab] ***********************************************************
TASK [debug] ***************************************************************
ok: [host3] =>
inventory_hostname: host3
ok: [host2] =>
inventory_hostname: host2
ok: [host1] =>
inventory_hostname: host1