2016-06-30 6 views
3

Я хочу написать playbook, который устанавливает приложение, используя их установщик. Для этого я использую модуль ansible expect. В начале установки он просит нажать ENTER, чтобы продолжить установку. Как отправить сообщение ENTER?Как вы можете отправить ENTER, нажав на ожидаемый?

+0

Вы пробовали 'child.sendline()'? – jfs

ответ

1

Существует команда 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" 
+0

Я хочу использовать это с модулем 'ожидать' не модулем' shell'. –

+0

Посмотрите на [documentation] (http://docs.ansible.com/ansible/expect_module.html), вы можете попробовать 'echo' как ответ –

+0

@LowKianSeong, я немного изменил ответ. Если вы решили свою проблему, и у вас есть что добавить - улучшите ее! Возможно, я ошибся с синтаксисом –