ansible.builtin.expect – Выполняет команду и отвечает на запросы
Примечание
Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля expect, даже не указывая ключевое слово collections:. Несмотря на это, рекомендуется использовать полное имя класса (FQCN) для лёгкой ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь такое же имя модуля.
Новая версия с 2.0: of ansible.builtin
Описание
- Модуль
expectвыполняет команду и отвечает на запросы. - Заданная команда будет выполнена на всех выбранных узлах. Она не будет обработана через оболочку, поэтому переменные, такие как
$HOME, и операции, такие как"<",">","|", и"&", не будут работать.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- pexpect >= 3.3
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir путь | Изменить текущую директорию перед выполнением команды. | |
| command строка / обязательно | Команда, которую нужно выполнить. | |
| creates путь | Имя файла. Если файл уже существует, этот шаг не будет выполнен. | |
| echo логическое |
| Выводить ли строки ответа в консоль. |
| removes путь | Имя файла. Если файл не существует, этот шаг не будет выполнен. | |
| responses словарь / обязательно | Сопоставление ожидаемой строки/регулярного выражения и строки ответа. Если ответ — список, последовательные совпадения возвращают последовательные ответы. Функциональность списка новая в версии 2.1. | |
| timeout целое число | По умолчанию: 30 | Время ожидания в секундах для ожидаемых строк. Используйте null для отключения таймаута. |
Примечания
Примечание
- Если нужно выполнить команду через оболочку (например, используете
<,>,|, и т.д.), необходимо указать оболочку в команде, например/bin/bash -c "/path/to/something | grep else". - Вопрос (или ключ) в responses — соответствие python регулярному выражению. Поиск без учёта регистра указывается префиксом
?i. - Библиотека
pexpect, используемая этим модулем, работает с окном поиска размером 2000 байт и не использует многострочное соответствие регулярным выражениям. Для выполнения соответствия с начала строки используйте шаблон, подобный(?m)^pattern - По умолчанию, если вопрос встречается несколько раз, его строковый ответ будет повторяться. Если вам нужны разные ответы для последовательных совпадений с вопросом, вместо строкового ответа используйте список строк в качестве ответа. Функциональность списка новая в версии 2.1.
- Модуль ansible.builtin.expect предназначен для простых сценариев. Для более сложных потребностей рассмотрите использование кода expect с модулями ansible.builtin.shell или ansible.builtin.script. (Пример есть в документации модуля ansible.builtin.shell).
См. также
См. также
- ansible.builtin.script
-
Официальная документация модуля ansible.builtin.script.
- ansible.builtin.shell
-
Официальная документация модуля ansible.builtin.shell.
Примеры
- name: Case insensitive password string match
ansible.builtin.expect:
command: passwd username
responses:
(?i)password: "MySekretPa$$word"
# you don't want to show passwords in your logs
no_log: true
- name: Generic question with multiple different responses
ansible.builtin.expect:
command: /path/to/custom/command
responses:
Question:
- response1
- response2
- response3
Авторы
- Matt Martz (@sivel)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/expect_module.html