expect - Выполняет команду и отвечает на запросы.
Новое в версии 2.0.
Описание
- Модуль
expectвыполняет команду и отвечает на запросы. - Указанная команда будет выполнена на всех выбранных узлах. Она не будет обработана через оболочку, поэтому переменные, такие как
$HOME, и операции, такие как"<",">","|", и"&", не будут работать.
Требования
Ниже перечислены требования, необходимые на хосте, который выполняет этот модуль.
- python >= 2.6
- pexpect >= 3.3
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir | Перейти в этот каталог перед запуском команды. | |
| command обязательно | Команда, которую должен выполнить модуль. | |
| creates | Имя файла. Если файл уже существует, этот шаг не будет выполнен. | |
| echo | По умолчанию: нет | Выводить ли строки ответа. |
| removes | Имя файла. Если файл не существует, этот шаг не будет выполнен. | |
| responses обязательно | Сопоставление ожидаемой строки/регулярного выражения и строки для ответа. Если ответ - список, последовательные совпадения возвращают последовательные ответы. Функциональность списка является новой в версии 2.1. | |
| timeout | По умолчанию: 30 | Время ожидания ожидаемых строк в секундах. |
Примечания
Примечание
- Если вы хотите запустить команду через оболочку (например, используя
<,>,|, и т. д.), вы должны указать оболочку в команде, например,/bin/bash -c "/path/to/something | grep else". - Вопрос или ключ в responses - это соответствие по регулярному выражению Python. Поиск без учета регистра указывается префиксом
?i. - По умолчанию, если вопрос встречается несколько раз, его строковый ответ будет повторяться. Если вам нужны разные ответы для последовательных совпадений с вопросом, вместо строкового ответа используйте список строк в качестве ответа. Функциональность списка является новой в версии 2.1.
- Модуль expect предназначен для простых сценариев. Для более сложных потребностей рассмотрите использование кода expect с модулями shell или script. (Пример находится в документации модуля shell)
Примеры
- name: Case insensitve password string match
expect:
command: passwd username
responses:
(?i)password: "MySekretPa$$word"
- name: Generic question with multiple different responses
expect:
command: /path/to/custom/command
responses:
Question:
- response1
- response2
- response3
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Автор
- Matt Martz (@sivel)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/expect_module.html