2012-11-08 4 views
6

in tessuto, in base alle this documentation, è possibile eseguire un comando arbitrario shell senza avere una fabfile come questo:Come si esegue un comando sudo arbitrario Fabric senza dover digitare la password?

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

È inoltre possibile eseguire sudo comandi nello stesso modo, ma verrà richiesto per la sudo della password per ogni host nell'elenco.

C'è un modo per evitare di dover digitare la password sudo per ciascun host, deve come funziona la funzione Fabric sudo()?

+0

Il poster originale chiede come posso fare quanto segue senza che venga richiesta la password sudo per ciascun host: 'fab -H host0, host1, host2 - sudo/root/bin/my_script_that_must_be_run_as_root.sh'. So come scrivere un fabfile per farlo, ma mi piacerebbe sapere come farlo anche come comando add-hoc. L'opzione -I non sembra funzionare in questo caso. Sto testando con Fabric 1.6.0. – Carl

risposta

2

basta aggiungere la seguente riga a etc/sudoers dove myusername deve essere l'utente previsto che eseguirà sudo. Dovresti capire le implicazioni sulla sicurezza di fare quanto segue. Potresti anche voler limitare le opzioni seguenti per limitare i comandi che l'utente può eseguire senza una password.

myusername ALL=(ALL) NOPASSWD: ALL 
0

Si potrebbe anche prendere in considerazione un'autenticazione PAM su un file chiave ssh. Un bel primer sarebbe questo blog- entry. In questo modo non si dovrebbe compromettere la sicurezza. Potresti anche copiare il file di chiavi prima di sudo-operazioni nel tuo account remoto assumendo che tu abbia un account qualificato. :-)