Как добавить несколько файлов инвентаря в командной строке при выполнении playbook - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть книга воспроизведения с двумя разными играми

Sample.yml
    - name : Play1
      hosts: Host1
      tasks:
       ...
    - name: Play2
      hosts: Host2
      tasks:
       ...

Мне нужно запустить эту книгу с двумя разными хостами ( Host1 и Host2 ), и эти два разных хоста присутствуют вдва отдельных файла ( Hostfile1 и Hostfile2 ) в инвентаризации / каталоге.

inventory/
   Hostfile1
   Hostfile2
   .
   .
   HostfileN

Я хочу знать, как включить два разных файла hosts при запуске playbook.Я знаю, что, включив всю папку ( инвентарь / ) в командную строку, мы можем добиться этого, но у меня есть много файлов хостов внутри инвентаря / папки, поэтому эта опция загрузит неиспользуемый файл хостов.

Я пытался бежать, как показано ниже

ansible-playbook -i inventory/Hostfile1,Hostfile2 sample.yml

Но это не сработало.Итак, кто-нибудь знает, как запустить playbook, предоставив в командной строке несколько файлов hosts?

Ответы [ 2 ]

0 голосов
/ 13 августа 2019

Я хотел уточнить ответ выше.Причина, по которой предложение не работает, заключается в том, что, если ansible видит значение ',' в значении флага -i, он воспринимает это как список инвентаря.Используя ваш пример:

ansible-playbook -i инвентарь / Hostfile1, Hostfile2 sample.yml

Ansible попытается запустить playbook "sample.yml" на машинах "inventory / Hostfile1" и"Hostfile2".

Вот почему вы должны указывать -i несколько раз.

0 голосов
/ 27 февраля 2019

Просто укажите -i несколько раз

ansible-playbook -i inventory/Hostfile1 -i inventory/Hostfile2 sample.yml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...