Группы Ansible Dynamic Inventory не работают

Я работаю со сценарием динамической инвентаризации ec2 для ansible и создал довольно простое доказательство концепции. Это содержимое файла groups, который существует рядом с ec2.py и ec2.ini:

[tag_classification_server_type_1]

[app_servers:children]
tag_classification_server_type_1

[stage:children]
app_servers

[stage:vars]
environment_name = stage

Когда я использую этот инвентарь для проверки связи с группами тегов, он работает должным образом:

$>ansible -i inventory/stage/ec2.py tag_classification_server_type_1 -m ping --private-key ~/.ssh/foo.pem 
12.345.67.89 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Но попытка использовать определенные группы не удалась (здесь я показываю stage, но тот же результат верен при попытке связи с группой app_servers):

$>ansible -i inventory/stage/ec2.py stage -m ping --private-key ~/.ssh/foo.pem
 [WARNING]: Could not match supplied host pattern, ignoring: stage

 [WARNING]: No hosts matched, nothing to do

Раньше я использовал группы в ansible, используя ec2, и у меня никогда не было проблем. Я загрузил совершенно свежие файлы ec2.ini и ec2.py, чтобы убедиться, что случайно не изменил их.

Когда я проверяю инвентарь ansible-inventory ec2.py --list, он подтверждает, что моих определенных групп нет.

Любые идеи?

Введение в Ansible Roles
Введение в Ansible Roles
Ansible - это отличный инструмент управления конфигурацией, который можно использовать для автоматизации настройки или развертывания на большом...
0
0
619
1

Ответы 1

Естественно, если вы будете бороться с проблемой в течение часа, вы ничего не добьетесь. Но опубликуйте сообщение на StackOverflow, и вы сами разберетесь в этом за 5 минут.

В конце концов, вы должны передать всю папку, содержащую groups, ec2.py и ec2.ini, если вы хотите, чтобы он уважал groups - иначе он их игнорирует.

Итак, правильный вызов:

$>ansible -i inventory/stage stage -m ping --private-key ~/.ssh/foo.pem

Вместо того:

$>ansible -i inventory/stage/ec2.py stage -m ping --private-key ~/.ssh/foo.pem

Другие вопросы по теме