Утилита ansible-playbook#

Описание#

ansible-playbook - инструмент для запуска playbooks Ansible Core и выполнения определенных задач на целевых хостах. Представляет собой систему настройки и развертывания для работы с несколькими nodes одновременно.

Синтаксис утилиты:

ansible-playbook <options> <playbook> ...

Где:

  • <options> - опции с соответствующими аргументами;

  • <playbook> - файл(ы) playbook.

Настройка утилиты производится с помощью файлов, описанных в разделах:

Опции#

Опции утилиты представлены в таблице ниже.

Опции ansible-playbook#

Опция

Описание

--become-method <become_method>

Указать метод повышения привилегий для использования (по умолчанию sudo); используйте ansible-doc -t become -l, чтобы вывести список допустимых вариантов

--become-password-file <become_password_file>, --become-pass-file <become_password_file>

Указать файл пароля для повышения привилегий

--become-user <become_user>

Выполнить операции от имени указанного пользователя (по умолчанию root)

--connection-password-file <connection_password_file>, --conn-pass-file <connection_password_file>

Указать файл пароля для подключения

--flush-cache

Очистить кеш фактов для каждого хоста в inventory

--force-handlers

Выполнить обработчики, даже если задача завершилась с ошибкой

--list-hosts

Вывести список соответствующих хостов

--list-tags

Вывести список всех доступных тегов

--list-tasks

Вывести список всех задач, которые будут выполнены

--private-key <private_key_file>, --key-file <private_key_file>

Использовать указанный файл для аутентификации соединения

--scp-extra-args <scp_extra_args>

Указать дополнительные аргументы для передачи только в scp (например, -l)

--sftp-extra-args <sftp_extra_args>

Указать дополнительные аргументы для передачи только в sftp (например, -f, -l)

--skip-tags

Выполнить только те сценарии и задачи playbooks, теги которых не соответствуют указанным значениям. Этот аргумент может быть указан несколько раз

--ssh-common-args <ssh_common_args>

Указать общие аргументы для передачи в sftp/scp/ssh (например, ProxyCommand)

--ssh-extra-args <ssh_extra_args>

Указать дополнительные аргументы для передачи только в ssh (например, -R)

--start-at-task <start_at_task>

Начать выполнение playbook с задачи, соответствующей заданному имени

--step

Выполнить по одному шагу: подтверждать каждую задачу перед выполнением

--syntax-check

Выполнить проверку синтаксиса playbook, но не выполнять его

--vault-id

Указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз

--vault-password-file, --vault-pass-file

Указать файл пароля хранилища

--version

Показать номер версии утилиты, расположение конфигурационного файла, настроенный путь поиска модулей, расположение модуля, расположение исполняемого файла и выходить

-C, --check

Не вносить никаких изменений; вместо этого предсказать и показать их результат в «режиме проверки» (check mode)

-D, --diff

При изменении (маленьких) файлов и шаблонов показать различия в этих файлах; отлично работает с --check

-J, --ask-vault-password, --ask-vault-pass

Запросить пароль хранилища

-K, --ask-become-pass

Запросить пароль для повышения привилегий

-M, --module-path

Добавить путь(-и), разделенные двоеточием, к библиотеке модулей (по умолчанию {{ ANSIBLE_HOME ~ “/plugins/modules:/usr/share/ansible/plugins/modules” }}). Этот аргумент может быть указан несколько раз

-T <timeout>, --timeout <timeout>

Переопределить тайм-аут соединения в секундах (по умолчанию зависит от соединения)

-b, --become

Выполнить операции с повышением привилегий (не подразумевает запроса пароля)

-c <connection>, --connection <connection>

Указать тип соединения (по умолчанию ssh)

-e, --extra-vars

Установить дополнительные переменные в формате «ключ=значение» или YAML/JSON; если имя файла, добавлять @. Этот аргумент может быть указан несколько раз

-f <forks>, --forks <forks>

Указать количество параллельных процессов для использования (по умолчанию 5)

-h, --help

Показать сообщение справки и выйти

-i, --inventory

Указать путь к хосту inventory или список хостов, разделенных запятыми. Этот аргумент может быть указан несколько раз

-k, --ask-pass

Запросить пароль для соединения

-l <subset>, --limit <subset>

Дополнительно ограничить выбранные хосты до дополнительного шаблона

-t, --tags

Выполнить только сценарии и задачи playbooks, помеченные указанными значениями. Этот аргумент может быть указан несколько раз

-u <remote_user>, --user <remote_user>

Подключиться как заданный пользователь (по умолчанию не задан)

-v, --verbose

Вывести дополнительные отладочные сообщения. Добавление нескольких -v увеличивает уровень подробности, встроенные плагины в настоящее время оценивают до -vvvvvv. Разумный уровень для начала - -vvv, отладка соединения может потребовать -vvvv. Этот аргумент может быть указан несколько раз

Переменные окружения#

Переменные окружения, влияющие на работу утилиты, представлены в таблице ниже.

Переменные окружения ansible-playbook#

Переменная

Описание

ANSIBLE_INVENTORY

Переопределить файл inventory по умолчанию

ANSIBLE_LIBRARY

Переопределить путь к библиотеке модуля по умолчанию

ANSIBLE_CONFIG

Переопределить конфигурационный файл по умолчанию

Другие варианты доступны в качестве параметров ansible.cfg (подробнее - в разделе «Конфигурационные файлы ansible.cfg»).

Пример использования#

Загрузите файл my_playbook.yml из текущего рабочего каталога:

ansible-playbook -i /path/to/my_inventory_file -u my_connection_user -k -f 3 -T 30 -t my_tag -M /path/to/my_modules -b -K my_playbook.yml

Данная команда:

  • -i - использует файл my_inventory_file в пути, указанном для inventory, чтобы он соответствовал шаблону;

  • -u - подключается по SSH от имени my_connection_user;

  • -k - запрашивает пароль, который затем вводится для аутентификации по SSH;

  • -f - выделяет 3 ответвления;

  • -T - устанавливает тайм-аут в 30 секунд;

  • -t - запускает только задачи, помеченные тегом my_tag;

  • -M - загружает локальные модули из /path/в/my/modules;

  • -b - запускается с повышенными привилегиями (использует become);

  • -K - запрашивает у пользователя пароль become.

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

ansible-playbook --help