So ansible-playbook
hat --ask-pass
und --ask-sudo-pass
. Gibt es eine Möglichkeit, ssh ohne Passwort zu testen und nur dann nach einem Passwort zu fragen, wenn die passwortlose Anmeldung fehlschlägt? Ähnlich kann ssso ohne Kennwort zuerst versucht werden und dann nur gefragt werden, wenn das nicht funktioniert?kann automatisch nach Passwörtern fragen und nur wenn notwendig
FYI Ich habe eine kleine Shell-Funktion, um dies durch Versuch und Irrtum herauszufinden, aber ich hoffe, dass so etwas in ansible gebacken wird.
get_ansible_auth_args() {
local base_check="ansible all --one-line --inventory-file=deploy/hosts/localhost.yml --args=/bin/true --sudo"
${base_check}
if [[ $? -eq 0 ]]; then
return;
fi
local args="--ask-pass"
${base_check} ${args}
if [[ $? -eq 0 ]]; then
export ANSIBLE_AUTH_ARGS="${args}"
return;
fi
local args="--ask-pass --ask-sudo-pass"
${base_check} ${args}
if [[ $? -eq 0 ]]; then
export ANSIBLE_AUTH_ARGS="${args}"
return;
fi
}
Ich könnte mich irren, aber ich glaube ansible SSH im nicht interaktiven Modus und muss im Voraus wissen, damit es seine Verbindungsparameter einstellen kann. – Mxx
Noch ab 1.6.6 glaube ich immer noch nicht, dass das ein Feature ist. Es erlaubt noch nicht einmal unterschiedliche Passwörter pro Host (auf der Eingabeaufforderung können verschiedene Passwörter in der Hosts-Datei gesetzt werden). Du könntest das wahrscheinlich ein Feature machen. – seeafish
@Peter Lyons - Eine solche Funktion wäre auch für mich nützlich. Fragen Sie einfach bei ansible-Leuten nach, ob sie eine empfohlene Methode zum Anfordern einer Funktion haben, nachdem sie ihre Community-Guides gelesen haben. - https://twitter.com/smprk/status/576414667913969664 Ein Github-Problem scheint ihre Warteschlange zu überladen. –