2016-06-30 29 views
3

Ich möchte ein Playbook schreiben, das eine Anwendung mit ihrem Installer installiert. Ich verwende Ansible expect Modul, um dies zu tun. Zu Beginn der Installation werden Sie aufgefordert, ENTER zu drücken, um mit der Installation fortzufahren. Wie sende ich die ENTER Taste drücken?Wie senden Sie die ENTER-Taste gedrückt, um ansible erwartet?

+0

haben Sie versucht, 'child.sendline()'? – jfs

Antwort

1

Es gibt einen Linux-Befehl namens yes, der "eine bestätigende Antwort oder eine benutzerdefinierte Zeichenfolge ausgibt". Haben

- shell: yes '' | your command goes here 

einen Blick auf simulation keypress in bash script: mit

hat prüfe ich es nicht, aber man könnte versuchen.

from documentation Genommen:

Wenn Sie einen Befehl durch die Shell ausgeführt werden soll (sagen Sie < verwenden, >, |, etc.), können Sie eine Shell in der Befehl wie /bin/bash -c "/path/to/something | grep else"

angeben müssen

Daher können Sie versuchen /bin/bash -c "echo" oder etwas ähnliches wie eine Antwort, so etwas wie:

responses: 
    press_enter: /bin/bash -c "echo" 
+0

Ich möchte dies mit dem 'expect' Modul und nicht mit dem' shell' Modul verwenden. –

+0

Werfen Sie einen Blick auf [Dokumentation] (http://docs.ansible.com/ansible/expect_module.html), können Sie versuchen, echo als Antwort –

+0

@LowKianSeong, ich habe die Antwort ein wenig geändert. Wenn du dein Problem gelöst hast und etwas hinzuzufügen hast - verbessere es! Ich könnte mich mit Syntax verwechselt haben –