如何跳过一个主机名从可行的库存文件?



我的可见库存文件有以下条目

[non_prod_servers]
oracle[1:13]

如何消除主机"one_answers";oracle10"从上面的规范,而不必创建以下条目?

[non_prod_servers]
oracle[1:6]
oracle[8:9]
oracle[11:13]

本质上,寻找一个比我已经提出的更优雅的解决方案。

提前感谢。

FR

恕我直言,您正在寻找的功能不可用。您可以在库存中使用Python切片。库存模式不适用于库存文件。

如果你需要自动化,也就是说,你想通过几个变量来控制过程,下面的库存和剧本动态创建组

shell> cat hosts
[non_prod_servers]
localhost
[non_prod_servers:vars]
_name=oracle
_from=1
_to=13
_deny=[7,10]
shell> cat playbook.yml
---
- hosts: non_prod_servers
gather_facts: false
tasks:
- add_host:
hostname: "{{ _name }}{{ item }}"
groups: non_prod_servers_dyn
loop: "{{ range(_from, _to + 1)|difference(_deny) }}"
- hosts: non_prod_servers_dyn
gather_facts: false
tasks:
- debug:
var: ansible_play_hosts_all
run_once: true

shell> ansible-playbook -i hosts playbook.yml
PLAY [non_prod_servers] *************************************************
TASK [add_host] *********************************************************
ok: [localhost] => (item=1)
ok: [localhost] => (item=2)
ok: [localhost] => (item=3)
ok: [localhost] => (item=4)
ok: [localhost] => (item=5)
ok: [localhost] => (item=6)
ok: [localhost] => (item=8)
ok: [localhost] => (item=9)
ok: [localhost] => (item=11)
ok: [localhost] => (item=12)
ok: [localhost] => (item=13)
PLAY [non_prod_servers_dyn] **********************************************
TASK [debug] *************************************************************
ok: [oracle1] => 
ansible_play_hosts_all:
- oracle1
- oracle2
- oracle3
- oracle4
- oracle5
- oracle6
- oracle8
- oracle9
- oracle11
- oracle12
- oracle13

相关内容

  • 没有找到相关文章

最新更新