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?
Antwort
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
angeben müssen<
verwenden,>
,|
, etc.), können Sie eine Shell in der Befehl wie/bin/bash -c "/path/to/something | grep else"
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"
Ich möchte dies mit dem 'expect' Modul und nicht mit dem' shell' Modul verwenden. –
Werfen Sie einen Blick auf [Dokumentation] (http://docs.ansible.com/ansible/expect_module.html), können Sie versuchen, echo als Antwort –
@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 –
haben Sie versucht, 'child.sendline()'? – jfs