[PYTHON] Ich war für die Pflege des Fabric-Skripts verantwortlich, weiß es aber nicht.> <Für diejenigen, die

Ich habe ein vorgefertigtes Fabric-Skript erhalten ... aber ich weiß nicht, was ich tue ...> < Weil es so war, habe ich die Wörter zusammengefasst, die häufig vorkommen.

Wenn Sie überhaupt kein vorhandenes Skript haben Ich frage mich, ob ich es natürlich verstehen kann, wenn ich mir das Tutorial von Anfang an ansehe.

Übrigens das offizielle Tutorial http://fabric-ja.readthedocs.org/ja/latest/tutorial.html

env In '** env ** ironment' wird es als Umgebungswörterbuch bezeichnet. Es ist eine sogenannte Einstellungsdatei, Anstelle einer Konfigurationsdatei ** Ein Wörterbuchobjekt, auf das in einem Skript global verwiesen werden kann ** Es ist eine korrekte Erkennung. Es ist ein Wörterbuch, aber Sie können es mit env.hosts wie ein Attribut aufrufen, um die Verwendung zu vereinfachen.

Es ist sowieso das wichtigste Element, das in Fabric verwendet wird.

Übrigens gibt es eine Funktion namens settings (), aber wenn Sie sie mit der with-Klausel verwenden Dies hat zur Folge, dass nur dieser Bereich auf eine bestimmte Einstellung festgelegt werden kann.

from fabric.api import settings

def hoge():
  with settings(warn_only=True):
    return run('hoge hoge')

Ist env.warn_only = False standardmäßig nur im Bereich der with-Klausel warn_only = True. Es scheint, dass Sie bei der Verwendung von Django eine besondere Bedeutung in den Einstellungen finden, aber dies ist alles in Fabric.

local () und run ()

local () ist lokal. Mit anderen Worten, führen Sie den Befehl lokal auf dem laufenden PC aus. Run () führt dagegen den Befehl in der Remote-Zielumgebung aus. Wenn Sie in run () local ('cd / path / mypath') ausführen

Überspringen Sie den run () -Prozess von Ihrem PC auf den Remote-PC ↓ Der Remote-PC verschiebt das Verzeichnis nach cd / path / mypath in sein lokales Verzeichnis

Es ist wie es ist. Es gibt auch sudo (), das von sudo ausgeführt wird.

role Lassen Sie sich nicht von der Übersetzung der Rolle täuschen. Es ist nur eine Gruppe von Hosts. Es ist in env.roledefs festgelegt.

env.roledefs = {
  'web-servers': ['web1', 'web2']
}

Dies zielt auf Web1- und Web2-Server ab, wenn diese auf einem Webserver bereitgestellt werden. Anstatt jedes Mal ['web1', 'web2'] auszuführen, wäre es einfacher, wenn Sie nur 'Webserver' angeben könnten. Mehr bedeutet es nicht. Wenn der Rollenschlüssel denselben Namen wie der Befehlsname hat, ist es für Fabric-Anfänger schwierig zu verstehen. Wenn Sie sich beruhigen, ist das alles.

Übrigens kann es auch mit Dekorateuren verwendet werden,

@role('web-servers')
def deploy():
  '''do deploy'''

In diesem Fall wird der Befehl für die Rolle ausgeführt.

Aufgabendekorateur

@taskBei Anwendung auf eine Funktion mit ** "Dies ist eine machbare Aufgabe" ** Stoff wird es aufheben. Das heißt, es wird in `` $ fab -l aufgeführt. Es ist eine relativ neue Funktion, wenn Sie diesen Dekorator verwenden Beachten Sie, dass Funktionen ohne ** `@ task nicht in $ fab -l``` ** angezeigt werden.

Ich habe es absichtlich zu einem Taskdekorateur gemacht, weil es auch eine task () -Funktion gibt, aber es gibt die Möglichkeit, diese direkt zu verwenden Es gibt so etwas fast nicht, also müssen Sie sich keine Sorgen machen.

execute Die Bedeutung ist leicht verwechselt mit run und local, aber sie ist verwirrend ** Rufen Sie die Fabric-Taskfunktion von einer anderen Taskfunktion aus auf. ** **. Mit anderen Worten kann die Verarbeitung verschachtelt werden. Der Unterschied zum normalen Funktionsaufruf ist ** Die Host- und Rolleneinstellungen für jede Aufgabe werden unverändert angewendet ** Da ist in. Daher können Sie Aufgaben intuitiv verschachteln, ohne über die Details nachzudenken. Zum Beispiel als Verwendung

Wenn es jede Aufgabenfunktion von gäbe

def bereitstellen()
  execute(Holen Sie sich den neuesten Quellcode)
  execute(Server neu starten)

Sie sollten so etwas tun.


Plötzlich bekam ich ein vorgefertigtes Skript und sah mir den Inhalt an, aber ich verstehe nicht! Es war eine Sammlung von Wörtern, die zu sein schienen. Die offizielle Dokumentation sollte leichter verständlich sein, wenn diese allein Sinn macht!

Recommended Posts

Ich war für die Pflege des Fabric-Skripts verantwortlich, weiß es aber nicht.> <Für diejenigen, die
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Hallo Flask! Kann in Sekunden erledigt werden, aber Leute, die den Inhalt nicht kennen
Der erste Schritt für diejenigen, die Amateure der Statistik sind, aber Modelle für maschinelles Lernen in Python implementieren möchten
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Für diejenigen, die nicht wissen, wie man ein Passwort mit Jupyter auf Docker festlegt
Wie Sie die interne Struktur eines Objekts in Python kennen
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Ich kenne den Wertfehler nicht
[Fabric] Ich war süchtig danach, Boolesche Werte als Argument zu verwenden. Notieren Sie sich also die Gegenmaßnahmen.
Ich möchte es nicht zugeben ... Die dynamische Systemdarstellung von Neural Network
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich habe Airbnb-Daten für diejenigen analysiert, die in Amsterdam bleiben möchten
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen
Ich möchte einen beliebigen Befehl im Befehlsverlauf von Shell belassen
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Ich kannte die Grundlagen von Python nicht
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Die mit vim bearbeitete Datei war schreibgeschützt, aber ich möchte sie speichern
Python Ich weiß nicht, wie ich den Druckernamen bekomme, den ich normalerweise benutze.
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Sprechen Sie über die Funktionen, für die Pandas und ich im Projekt verantwortlich waren
P100-PCIE-16GB wurde der GPU von Google Colab hinzugefügt, bevor ich es wusste
Ich habe versucht, Resultoon auf Mac + AVT-C875 zu verwenden, war aber unterwegs frustriert.
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
AtCoder AGC 041 C - Ich war süchtig nach der vollständigen Suche nach Domino-Qualität
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte die Ergebnisse von% time, %% time usw. in einem Objekt (Variable) speichern.
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Ich habe versucht, die Texte von GReeeen zu visualisieren, die ich in meiner Jugend verrückt gehört habe, aber nicht mehr gehört habe.
Ich werde zusammenfassen, was ich gerne getan habe, um aus dem Zustand herauszukommen, in dem ich den Buchstaben D von Docker nicht einmal kenne
linux / c> link> Ruft das Ausführungsergebnis des Shell-Befehls im C-Programm ab.> Mir wurde beigebracht, wie man popen () verwendet.
Ich möchte die LED-Beleuchtung von ErgoDox EZ zum Leuchten bringen, aber sagen Sie mir, was die LED überhaupt ist
Die Ungenauigkeit von Tensorflow war auf log (0) zurückzuführen.
Python: Ich konnte in Lambda rekursieren
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte den Fortschritt in Python anzeigen!
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich benutze Python, aber ich kenne die Klasse nicht gut, deshalb werde ich ein Tutorial geben
Ich war nüchtern süchtig danach, awscli von einem in crontab registrierten Python 2.7-Skript aus aufzurufen
Ich habe versucht, YouTube zu kratzen, aber ich kann die API verwenden, also tu es nicht.
Der erste Schritt des maschinellen Lernens ~ Für diejenigen, die versuchen möchten, mit Python zu implementieren ~
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Ich weiß nicht, was HEIC ist. Aber vorerst verwenden wir PNG!
Hier ist eine, ich werde die mit "künstlicher Intelligenz" ausgestatteten Anwendungen zusammenfassen, an denen ich interessiert war
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Ich habe versucht, HULFT IoT (Agent) in das Gateway Rooster von Sun Electronics zu integrieren
[Erste Datenwissenschaft ⑥] Ich habe versucht, den Marktpreis von Restaurants in Tokio zu visualisieren
Ich habe Python verwendet, um mich über die Rollenauswahl der 51 "Yachten" in der Welt zu informieren.