По разным причинам / ограничениям я не могу создавать новые группы в файле инвентаря, и мне нужно использовать --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
Однако мне нужно сделать все это в режиме онлайн, не создавая дополнительный файл.
Такой же Общие шаблоны применить к параметру командной строки -l
. Цитата примечания:
«Вы можете использовать запятую (,) или двоеточие (:) для разделения списка хостов. Запятая предпочтительна при работе с диапазонами и IPv6-адресами».
Например, учитывая инвентарь
shell> cat hosts
[webservers]
test_01
test_02
[dbservers]
test_03
test_04
и пьеса
shell> cat pb.yml
- hosts: all
tasks:
- debug:
var: inventory_hostname
Различные шаблоны хоста работают должным образом. Например
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
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
shell> ansible-playbook -i hosts pb.yml -l webservers:\!test_02
inventory_hostname: test_01
Я делал интервалы, и в то время я полностью думал, что могу просто перечислить все встроенные хосты и 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