Questo è relativo al mio previous question, ma uno diverso.Come fare in modo che Fabric ignori gli host offline nell'elenco env.hosts?
Ho il seguente fabfile:
from fabric.api import *
host1 = '192.168.200.181'
offline_host2 = '192.168.200.199'
host3 = '192.168.200.183'
env.hosts = [host1, offline_host2, host3]
env.warn_only = True
def df_h():
with settings(warn_only=True):
run("df -h | grep sda3")
e l'uscita è:
[192.168.200.199] run: df -h | grep sda3
Fatal error: Low level socket error connecting to host 192.168.200.199: No route to host
Aborting.
Dopo l'esecuzione colpisce il server non in linea, si interrompe immediatamente, a prescindere degli altri server del env. lista degli ospiti.
Ho usato l'impostazione env "warn_only = True", ma forse lo sto usando in modo improprio.
Come posso modificare questo comportamento in modo che stampi solo l'errore e continui a eseguirlo?
Ho usato un modo simile per farlo, ma molto ingenuo - Ho spostato il comando ping con il sottoprocesso modulo -_- " Dovrei assolutamente dare un'occhiata ai moduli che hai usato. Grazie, amico –
@ jevonearth's answer suggerisce il metodo fabric = = v1.4 usando il flag --skip-bad-hosts o env.skip_bad_hosts = True nella funzione – sreenivas