按需反向库存订单

reverse inventory order on demand

我有一本已经用了一段时间的剧本。该剧本定义了东西方位置的某些参数和变量。西部一直是主要位置,东部是备用。我们现在将逻辑切换到客户所在的位置,这将是主要位置。当位置位于东海岸时,我正尝试反转库存主机,这样东海岸设备将获得主要设置,然后是西海岸。我尝试了以下但没有任何运气。根据文档,这是颠倒清单文件顺序的正确语法。

违规行似乎是:

时间:位置 ==“东” 顺序: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