[PYTHON] Stoff Schreibtipps
Ich möchte lokal laufen
fabfile.py
from fabric.api import local
def test:
local("ls")
Befehlszeile
$ fab test
Ich möchte es ausführen, während ich irgendwo auf einen Remote-Server sshing
fabfile.py
from fabric.api import run
def test:
run("ls")
Befehlszeile
$ fab -i ${key} -u ${user} -H ${host} test
Ich möchte eine Umgebungsvariable aus dem Ausführungsbefehl übergeben und ausführen
fabfile.py
from fabric.api import local
def test(value="hello"):
local('echo %s' % value)
Befehlszeile
$ fab test
# hello
$ fab test:value=ok
# ok
Ich möchte es im CD-Zustand ausführen
fabfile.py
from fabric.api import cd, lcd, run
def test(value="hello"):
#Für Einheimische
with lcd("/var/tmp/"):
local("pwd")
#Für Fernbedienung
with cd("/var/www/"):
run("pwd")
Befehlszeile
$ fab -i ${key} -u ${user} -H ${host} test
# /var/tmp/
# /var/www/
Ich möchte eine Datei übertragen
fabfile.py
from fabric.api import cd, put, run
def test():
#SFTP-Übertragung
put("~/local.txt", "/tmp/remote.txt")
#Bestätigung
with cd("/tmp"):
run("ls")
Befehlszeile
$ fab -i ${key} -u ${user} -H ${host} test
# remote.txt
Ich möchte es mitten in der Verarbeitung in den Ruhezustand versetzen
fabfile.py
import time
from fabric.api import local
def test():
#Prozess 1
local('echo A')
#Warten Sie 30 Sekunden
time.sleep(30)
#Prozess 2
local('echo B')
Ich möchte parallel ausführen
Muster 1 (füge @ parallel
zum Code hinzu)
fabfile.py
from fabric.api import parallel
@parallel
def test():
#wird bearbeitet
Befehlszeile
$ fab -H "host1,host2,host3" test
Muster 2 (mit der Option -P ausführen)
Befehlszeile
$ fab -P -H "host1,host2,host3" test