Утилита ansible-console#

Описание#

ansible-console - консоль REPL (Read-Eval-Print Loop), которая позволяет запускать специальные задачи (ad hoc) для выбранного inventory из удобной оболочки со встроенным автозавершением вкладок.

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

ansible-console <options> <host-pattern>

Где:

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

Опции#

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

Опции ansible-console#

Опция

Описание

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

--list-hosts

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

--playbook-dir <basedir>

Использовать указанный каталог в качестве каталога playbooks; устанавливает относительный путь для многих функций, включая roles/, group_vars/ и т.д.

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

--step

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

--task-timeout <task_timeout>

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

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

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

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

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

-v, --verbose

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

Команды#

Интерактивные команды утилиты, с помощью которых можно изменять конфигурацию ansible-console во время выполнения, представлены в таблице ниже.

Команды ansible-console#

Команда

Описание

cd <pattern>

Изменить хост/группу (можно использовать шаблоны хостов, например: app*.dc*:!app01*)

list

Перечислить хосты, доступные для выполнения команд на данный момент (в текущем контексте)

list groups

Перечислить группы, включенные в текущий путь

become

Переключить флаг повышения привилегий

!

Принудительно использовать модуль shell вместо модуля Ansible Core (например: !yum update -y)

verbosity <num>

Установить уровень подробности сообщений, выводимых во время выполнения команд

forks <num>

Установить количество параллельных процессов

become_user <user>

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

remote_user <user>

Установить удаленного пользователя

become_method <method>

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

check <bool>

Переключить режим проверки

diff <bool>

Переключить режим diffs

timeout <integer>

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

help <command/module>

Отобразить справочную информацию для команды или модуля

exit

Выйти из ansible-console

Аргументы#

host-pattern - имя группы в списке, шаблон, похожий на оболочку, для выбора хостов в списке или любая комбинация этих двух параметров, разделенных запятыми.

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

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

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

Переменная

Описание

ANSIBLE_INVENTORY

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

ANSIBLE_LIBRARY

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

ANSIBLE_CONFIG

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

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

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

Запустите интерактивную консоль для дальнейшего выполнения команд на целевых хостах, заданных в файле inventory:

ansible-console -i <inventory_file>

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

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

ansible-console --help