Con*_*Fun 15 ansible ansible-playbook
由于各种原因/限制,我无法在清单文件中创建新组,并且需要使用--limit/-l
它来指定主机。
我被告知要做类似的事情:
ansible-playbook -i /path/to/my/inventory/file.ini -l server.1.com server.2.com my-playbook.yml --check --diff
这引发了一个错误:
ERROR! the playbook: server.2.com could not be found
从有关此主题的Ansible 文档中,我发现您可以使用单独的文件来列出您想要限制的所有主机。就像是:
ansible-playbook -i /path/to/my/inventory/file.ini -l @list-to-limit.txt my-playbook.yml
但是,我需要内联完成这一切,而不创建额外的文件。
Vla*_*tka 17
相同的常见模式适用于命令行选项-l
。引用注释:
“您可以使用逗号 (,) 或冒号 (:) 来分隔主机列表。在处理范围和 IPv6 地址时,首选逗号。”
例如,给定库存
shell> cat hosts
[webservers]
test_01
test_02
[dbservers]
test_03
test_04
Run Code Online (Sandbox Code Playgroud)
和剧本
shell> cat pb.yml
- hosts: all
tasks:
- debug:
var: inventory_hostname
Run Code Online (Sandbox Code Playgroud)
各种主机的模式按预期工作。例如
shell> ansible-playbook -i hosts pb.yml -l webservers:dbservers
...
ok: [test_01] =>
inventory_hostname: test_01
ok: [test_02] =>
inventory_hostname: test_02
ok: [test_03] =>
inventory_hostname: test_03
ok: [test_04] =>
inventory_hostname: test_04
Run Code Online (Sandbox Code Playgroud)
shell> ansible-playbook -i hosts pb.yml -l test_02,test_04
ok: [test_02] =>
inventory_hostname: test_02
ok: [test_04] =>
inventory_hostname: test_04
Run Code Online (Sandbox Code Playgroud)
shell> ansible-playbook -i hosts pb.yml -l webservers:\!test_02
inventory_hostname: test_01
Run Code Online (Sandbox Code Playgroud)
小智 10
操作方法如下:
ansible-playbook ./your_playbook --limit "host1,host2,host3,host4"
Run Code Online (Sandbox Code Playgroud)
我当时有点发呆,当时我完全认为我可以直接列出所有内嵌的主机并且ansible-playbook
能够理解。
-l
我通过简单地在命令中的每个主机名之前添加来解决我的问题。
(我意识到这可能不是“最佳实践”)
我的最终命令如下所示:
ansible-playbook -i /path/to/my/inventory/file.ini -l server.1.com -l server.2.com my-playbook.yml --check --diff
归档时间: |
|
查看次数: |
72203 次 |
最近记录: |