ansible

ansible#

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

ansible [ARGUMENTS] HOST_PATTERN [-m MODULE_NAME] [MODULE_ARGS]

где:

  • ARGUMENTS – аргументы, передаваемые в ansible.

  • HOST_PATTERN – шаблон, который указывает, на каких узлах или группах узлов будет выполнена команда.

  • MODULE_NAME – название модуля, который будет выполнен.

  • MODULE_ARGS – аргументы, передаваемые в модуль.

Аргументы утилиты:

--become-method <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>#

Путь к файлу с паролем для установления соединения.

--list-hosts#

Вывод списка узлов, для которых будет выполнена команда. Целевое действие команды при этом не выполняется.

--playbook-dir <BASEDIR>#

Каталог, который будет использоваться в качестве замены каталога сценариев. Замена влияет на относительные пути к ролям, групповыми переменным и другим ресурсам.

--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE>#

Путь к файлу приватного ключа SSH.

--scp-extra-args <SCP_EXTRA_ARGS>#

Дополнительные аргументы для утилиты scp.

--sftp-extra-args <SFTP_EXTRA_ARGS>#

Дополнительные аргументы для утилиты sftp.

--ssh-extra-args <SSH_EXTRA_ARGS>#

Дополнительные аргументы для утилиты ssh.

--ssh-common-args <SSH_COMMON_ARGS>#

Дополнительные аргументы для утилит ssh, scp и sftp.

--task-timeout <TASK_TIMEOUT>#

Ограничение по времени выполнения задачи (в секундах).

--vault-id#

Идентификатор Ansible Vault.

Может быть указан несколько раз.

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

Путь к файлу с ключом для расшифровки секретов, хранящихся в Ansible Vault.

--version#

Вывод версии Ansible, пути к файлу настроек и пути поиска модулей.

-B <SECONDS>, --background <SECONDS>#

Запуск задачи на управляемом узле в фоновом режиме.

Ansible не ждет выполнения текущей задачи и запускает выполнение следующей. Указанное значение <SECONDS> определяет максимальное время (в секундах), в течение которого задача должна быть завершена. В противном случае выполнение задачи прерывается с ошибкой.

Значение по умолчанию: не установлено.

-C, --check#

Запуск команды в режиме проверки (без фактического выполнения).

-D, --diff#

Отображение разницы при изменении файлов или шаблонов.

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

Включение запроса пароля хранилища.

-K, --ask-become-pass#

Включение запроса пароля для повышения привилегий.

-M <MODULE_PATH>, --module-path <MODULE_PATH>#

Путь к каталогу с модулями Ansible.

Может быть указан несколько раз.

Значение по умолчанию: ~/.ansible/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>"#

Аргументы для модуля в формате key=value.

-b, --become#

Требование использовать повышенные привилегии при выполнении модуля.

-c <CONNECTION>, --connection <CONNECTION>#

Тип соединения.

Значение по умолчанию: ssh.

-e, --extra-vars#

Передача дополнительных переменных в формате key=value, YAML или JSON.

Может быть указан несколько раз.

-f <FORKS>, --forks <FORKS>#

Количество параллельных процессов, используемых для выполнения набора сценариев.

Значение по умолчанию: 5.

-h, --help#

Вывод справки.

-i, --inventory#

Путь к файлу инвентаря или список узлов через запятую. Поддерживает динамический инвентарь.

Может быть указан несколько раз.

-k, --ask-pass#

Запрос пароля для подключения, если не используется аутентификация по ключу.

-l <SUBSET>, --limit <SUBSET>#

Ограничение списка узлов, на которых выполняется команда.

-m <MODULE_NAME>, --module-name <MODULE_NAME>#

Название модуля, который будет использован для выполнения задачи.

Примечание

Рекомендуется использовать полное название модуля (FQCN), например ansible.builtin.apt вместо короткого apt.

Значение по умолчанию: command.

-o, --one-line#

Вывод результата в одну строку.

-t <TREE>, --tree <TREE>#

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

-u <REMOTE_USER>, --user <REMOTE_USER>#

Название учетной записи для подключения к управляемому узлу.

Значение по умолчанию: None.

-v, --verbose#

Включение подробного вывода, показывающего больше информации о выполнении команды.

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

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

Проверка доступности узлов#
ansible all -m ping
Запуск команды на конкретном узле#
ansible webserver -m command -a "uptime"
Установка NGINX с повышенными привилегиями#
ansible webservers -m apt -a "name=nginx state=present" -b
Копирование файла на управляемые узлы#
ansible all -m copy -a "src=/local/file.txt dest=/remote/file.txt mode=0644"
Использование переменных#
ansible all -m debug -a "msg={{ ansible_fqdn }}" -e "ansible_fqdn=example.com"