2012-11-08 14 views
6

mit Stoff nach this documentation, können Sie einen beliebigen Shell-Befehl ausführen, ohne eine fabfile wie folgt mit:Wie führe ich einen Fabric Anywhere Sudo Befehl aus, ohne Passwort eingeben zu müssen?

fab -H host1,host2 -- echo 'hello, world!' 

Sie auch sudo Befehle in der gleichen Art und Weise ausgeführt werden können, aber Sie werden für das sudo Passwort gefragt für jeden Host in der Liste.

Gibt es eine Möglichkeit zu vermeiden, das sudo Passwort für jeden Host eingeben müssen, muss die Fabric-Funktion sudo() funktioniert?

+0

Original-Poster scheint zu fragen, wie kann ich Folgendes tun, ohne für die Sudo-Passwort für jeden Host aufgefordert werden: 'fab -H Host0, Host1, Host2 - Sudo/root/bin/my_script_that_must_be_run_as_root.sh'. Ich weiß, wie man eine Fabfile schreibt, aber ich würde auch gerne wissen, wie man das als Add-hoc-Befehl macht. Die Option -I scheint in diesem Fall nicht zu funktionieren. Ich teste mit Fabric 1.6.0. – Carl

Antwort

2

Fügen Sie einfach die folgende Zeile zu etc/sudoers hinzu, wo myusername der beabsichtigte Benutzer sein sollte, der sudo ausführen wird. Sie sollten die Sicherheitsauswirkungen der folgenden Schritte verstehen. Sie können auch die folgenden Optionen einschränken, um die Befehle zu begrenzen, die der Benutzer ohne Passwort ausführen kann.

myusername ALL=(ALL) NOPASSWD: ALL 
0

Sie könnten auch eine PAM-Authentifizierung gegen eine SSH-Schlüssel-Datei in Betracht ziehen. Ein guter Grund wäre dieser Blog - entry. Auf diese Weise müssen Sie die Sicherheit nicht gefährden. Sie könnten sogar die Schlüsseldatei vor den sudo-Operationen in Ihr Remote-Konto kopieren, vorausgesetzt, Sie haben ein qualifiziertes Konto. :-)

Verwandte Themen