Dies ist mit meiner previous question verwandt, aber eine andere.Wie mache Fabric Offline-Hosts in der Liste env.hosts ignorieren?
Ich habe folgendes 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")
Und der Ausgang ist:
[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.
Nach der Ausführung des Offline-Server trifft, es bricht sofort, unabhängig von den anderen Servern in der env. Gastgeber Liste.
Ich habe die Umgebungseinstellung "warn_only = True" verwendet, aber vielleicht verwende ich sie nicht richtig.
Wie kann ich dieses Verhalten so ändern, dass es nur den Fehler druckt und weiter ausführt?
Ich habe einen ähnlichen Weg, um dies zu tun, aber viel naiv - ich wickelte Ping-Befehl mit Subprozess-Modul -_- " Ich sollte auf jeden Fall mehr in die Module, die Sie verwendet haben. Vielen Dank, Mann. –
@ jevonearth's Antwort schlägt die Methode fabric> = v1.4 vor, indem Sie das Flag --skip-bad-hosts oder env.skip_bad_hosts = True in der Funktion verwenden – sreenivas