Как мы можем подсказать с каким-то тегом?

Мне было интересно, если вы можете помочь мне с некоторым образцом.

Я знаю, что такие модули, как tag и when, полезны в этом случае. Однако мне трудно создать файл yml.

Цель: На server1 команды:

 /bin/startJob
/bin/stopJob
/bin/validateJob

На server2 команды следующие:

/bin/startTask
/bin/stopTask
/bin/validateTask

Я хотел бы предложить пользователю вариант того, что он хотел бы сделать. Например:

ansible-playbook services.yml 

В учебнике говорится:

Услуги, доступные для Server1:

А. /bin/startJob

Б. /bin/stopJob

C. /bin/validateJob

Услуги, доступные для Server2:

Д. /bin/startTask

E. /bin/stopTask

F. /bin/validateTask

Пользователь вводит букву E, и ansible-playbook запускает команду /bin/stopTask с сервера Server2.


person Community    schedule 06.10.2019    source источник


Ответы (1)


Я бы создал 3 плейбука: start, stop и validate, 2 инвентаря: server1 и server2 с переменными, определяющими конкретные имена команд для данной среды.

Пользователи просто звонили: ansible-playbook -i server2 start.yml

person Jan Steuer    schedule 06.10.2019
comment
Это хорошая идея. Но представьте себе сервер с 10 командами. Теперь представьте 10 подач с разными командами. Управлять всеми ими станет проблемой. Чтобы решить проблему нескольких серверов, вы бы создали один инвентарь и один yml с тегами и когда? - person ; 07.10.2019
comment
Если у вас есть несколько серверов, на которых одни и те же команды называются по-разному, сгруппируйте одинаковые серверы в файлах инвентаризации и задайте имена команд в переменных для этих групп. Вот как это сделать: >docs.ansible.com/ansible/latest/user_guide/ Нет необходимости в тегах, просто создайте отдельную книгу для каждого типа команд, поскольку я ожидаю, что никто не захочет запускать более одной команды за раз. - person Jan Steuer; 07.10.2019