Утилита ansible#

Описание#

ansible - простой инструмент/фреймворк/API для выполнения «удаленных задач», позволяет определять и запускать задачи playbook для набора хостов.

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

ansible <options> <pattern>

Где:

  • <options> - опции;

  • <pattern> - шаблон, задающий целевой хост/группу хостов.

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

Опции#

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

Опции ansible#

Опция

Описание

--become-method <become_method>

Указать метод повышения привилегий (по умолчанию sudo)

--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

--list-hosts

Вывести список соответствующих хостов; не выполнять никаких других действий

--playbook-dir <basedir>

Использовать указанный каталог в качестве каталога для playbook

--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)

--ssh-common-args <ssh_common_args>

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

--ssh-extra-args <ssh_extra_args>

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

--task-timeout <task_timeout>

Установить лимит времени выполнения задачи в секундах; должен быть положительным целым числом

--vault-id

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

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

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

--version

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

-b <seconds>, --background <seconds>

Запустить асинхронно, завершить через указанное количество секунд (значение по умолчанию отсутствует)

-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" }}). Может быть указан несколько раз

-p <poll_interval>, --poll <poll_interval>

Установить интервал опроса, если используется -b (по умолчанию 15)

-t <timeout>, --timeout <timeout>

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

-a <module_args>, --args <module_args>

Указать параметры действия в формате «ключ=значение», разделенном пробелами: -a ‘opt1=val1 opt2=val2’ или в формате json: -a ‘{“opt1”: “val1”, “opt2”: “val2”}

-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>

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

-m <module_name>, --module-name <module_name>

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

-o, --one-line

Сжать вывод

-t <tree>, --tree <tree>

Записать вывод в указанный каталог

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

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

-v, --verbose

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

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

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

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

Переменная

Описание

ANSIBLE_INVENTORY

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

ANSIBLE_LIBRARY

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

ANSIBLE_CONFIG

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

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

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

Установите пакет httpd на локальной системе, используя повышенные привилегии (с запросом пароля для таких привилегий):

ansible localhost -m ansible.builtin.dnf -a "name=httpd state=present" -b -K

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

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

ansible --help