Я хочу написать playbook, который устанавливает приложение, используя их установщик. Для этого я использую модуль ansible expect
. В начале установки он просит нажать ENTER
, чтобы продолжить установку. Как отправить сообщение ENTER
?Как вы можете отправить ENTER, нажав на ожидаемый?
ответ
Существует команда linux под названием yes
, которая «выводит утвердительный ответ или определенную пользователем строку текста».
Я не проверял, но вы можете попробовать использовать:
- shell: yes '' | your command goes here
Посмотрите simulation keypress in bash script.
Взятые from documentation:
Если вы хотите запустить команду через оболочку (скажем, вы используете
<
,>
,|
и т.д.), вы должны указать оболочку в команде, такие как/bin/bash -c "/path/to/something | grep else"
Таким образом, вы можете попробовать /bin/bash -c "echo"
или что-то подобное в качестве ответа, что-то вроде:
responses:
press_enter: /bin/bash -c "echo"
Я хочу использовать это с модулем 'ожидать' не модулем' shell'. –
Посмотрите на [documentation] (http://docs.ansible.com/ansible/expect_module.html), вы можете попробовать 'echo' как ответ –
@LowKianSeong, я немного изменил ответ. Если вы решили свою проблему, и у вас есть что добавить - улучшите ее! Возможно, я ошибся с синтаксисом –
Вы пробовали 'child.sendline()'? – jfs