Ansible playbook для запуска скрипта с аргументами - PullRequest
0 голосов
/ 07 февраля 2020

Возможно ли в Ansible написать сценарий запуска с вводом аргументов?

Например, в Unix, когда мы его запускаем, мы можем сделать:

/etc/init.d/SCRIPT start|stop|restart

Возможно ли сделать это в Ansible, чтобы он прочитал ввод start|stop|restart?

1 Ответ

0 голосов
/ 07 февраля 2020

Вы можете передавать переменные в свою игровую книгу во время выполнения, используя аргумент -e. Например:

ansible-playbook playbook.yml -e mode=start

Учитывая приведенную выше командную строку, внутри книги воспроизведения вы можете просмотреть переменную mode:

- hosts: localhost
  tasks:
    - name: start something
      command: echo do you want to be starting something
      when: "mode|default('') == 'start'"

Вы можете использовать столько аргументов -e, сколько вы хотите, и вы можете включать переменные из файла, а не включать их в командной строке. Например, если у вас есть файл vars.yml, вы можете запустить:

ansible-playbook playbook.yml -e @vars.yml

Таким образом, с одной точки зрения, вам нужно будет выполнить три разные задачи, каждая из которых будет иметь свою инструкцию when справьтесь с тремя start / stop / restart условиями.

Но в зависимости от того, что вы пытаетесь сделать, может быть более простое решение. Если вы просто пытаетесь вызвать сценарий инициализации из задачи, вместо этого вы можете сделать следующее:

- hosts: localhost
  tasks:
    - name: start something
      command: /etc/init.d/SCRIPT {{ mode }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...