ansible --限制特定组和该组中的主机不工作

问题描述 投票:0回答:1

我希望 ansible 在特定组的特定主机上运行剧本。

这是我的库存

[a]
10.10.10.10
11.11.11.11
dog.local.lab

[b]
10.10.10.11
cat.local.lab
moose.local.lab

[c]
10.10.10.12
wolf.local.lab

我想用这个来运行剧本

ansible-playbook -i ./inventory.ini
            --limit a:10.10.10.10,a:11.11.11.11,b:10.10.10.11,b:moose.local.lab,c:wolf.local.lab
                -e foo=test
                -e bar=test2
                ./mypbook.yaml

但是 ansible 不断返回这些警告:

[WARNING]: Could not match supplied host pattern, ignoring: a:10.10.10.10
[WARNING]: Could not match supplied host pattern, ignoring: a:11.11.11.11
[WARNING]: Could not match supplied host pattern, ignoring: b:10.10.10.11
[WARNING]: Could not match supplied host pattern, ignoring: b:moose.local.lab
[WARNING]: Could not match supplied host pattern, ignoring: c:wolf.local.lab
ERROR! Specified inventory, host pattern and/or --limit leaves us with no hosts to target.

为什么?我是否错误地使用了

--limit

ansible pattern-matching limit group
1个回答
0
投票

问:“我是否错误地使用了 --limit ?”

答:是的。 ansible-playbook 的人说:

-l 'SUBSET', --limit 'SUBSET' 进一步将所选主机限制为其他模式

查看该男子正在谈论的模式。不存在将主机限制为组的模式,例如

a:10.10.10.10
。事实上,创建这样的限制是没有意义的,因为一旦将主机放入此列表中,主机来自哪个组就不再重要了。例如,给定库存

shell> cat inventory.ini 
[a]
10.10.10.10
11.11.11.11
dog.local.lab

[b]
10.10.10.11
cat.local.lab
moose.local.lab

[c]
10.10.10.12
wolf.local.lab

剧本

shell> cat mypbook.yml
- hosts: all
  tasks:
    - debug:
        var: ansible_play_hosts_all
      run_once: true

按预期工作

shell> ansible-playbook -i inventory.ini --limit 10.10.10.10,11.11.11.11,10.10.10.11,moose.local.lab,wolf.local.lab mypbook.yml

  ...

  ansible_play_hosts_all:
  - 10.10.10.10
  - 11.11.11.11
  - 10.10.10.11
  - moose.local.lab
  - wolf.local.lab

  ...

© www.soinside.com 2019 - 2024. All rights reserved.