Ich würde versuchen, das zu ignorieren Continue with Installation?
und einfach auf die [y/N]
Linie zu passen .
ersetzen (^Con[^\n]*\n+[^\n]*)+: "y"
durch'y/N' : 'y'
Ansible verwendet das pexpect-Modul, das nicht immer das tut, was Sie erwarten würden. Zum Beispiel ist EOL '\r\n'
nicht '\n'
.
Hier finden Sie die Dokumente .
Hier ist ein kurzer Test:
/root/junk.sh echo 'Enter the Agent profile name' read -p "Agent Profile Name: " AGENT_PROFILE_NAME echo $AGENT_PROFILE_NAME > junk.dat echo "Continue with installation" read -p "[y/N] : " CONFIRM echo $CONFIRM >> junk.dat play: - expect: command: sh /root/junk.sh responses: 'Profile Name' : "oook" 'y/N' : 'y'
Hier ist eine einfachere Möglichkeit, dies ohne zu erwarten zu tun.
Wenn Sie sich das Skript agentadmin.sh ansehen, werden Sie sehen, dass Antworten auf alle Fragen in Umgebungsvariablen gespeichert werden, z
while [ -z $ ]; do
Wenn Sie alle im Umgebungsbereich Ihres Playbooks vordefinieren, sollte das Skript ohne Eingreifen des Benutzers ausgeführt werden. Keine Notwendigkeit zu erwarten.
So etwas wie:
environment: OPENAM_URL: whatever_1 AGENT_PROFILE_NAME: whatever_2 AGENT_PASSWORD: whatever_3 CONFIRM: y - shell: /opt/nginx_agent/bin/agentadmin.sh