SaltStack - Salt-Dateiserver
Der Salt-Dateiserver ist ein zustandsloser ZeroMQ-Server. Es ist in den Salzmeister eingebaut. Ein Salt-Dateiserver wird zum Verteilen von Dateien vom Master an Minions verwendet. Es enthält verschiedene Module. Lassen Sie uns in diesem Kapitel den Salt-Dateiserver, seine Konfiguration, Module im Zusammenhang mit dem Salt-Dateiserver, den Zugriff auf den Salt-Dateiserver in Python usw. verstehen.
Dateiserver-Backend
Das Dateiserver-Backend ermöglicht es dem Salt-Dateiserver, als transparente Schnittstelle zu anderen Dateiservern wie einem lokalen Dateisystem, einem Git-Versionskontrollsystem usw. zu fungieren.
Ein Git-Dateiserver-Backend kann mithilfe der folgenden Konfiguration in der Masterdatei aktiviert werden.
fileserver_backend:
- git
Um mehrere Backend-Dateisysteme zu aktivieren, können Sie die folgende Konfiguration verwenden.
fileserver_backend:
- roots
- git
Wir können die zusätzliche Option für einen anderen Backend-Server auch über den spezifischen Abschnitt des entsprechenden Backend-Servers angeben.
Lokales Dateisystem
Für die Verwendung dieses Systems müssen wir den folgenden Code verwenden.
file_roots:
base:
- /srv/salt/prod
Git-Dateisystem
Für die Verwendung dieses Systems müssen wir den folgenden Code verwenden.
gitfs_remotes:
- https://github.com/sample/sample1.git
Dateien anfordern
Salt bietet die Möglichkeit, Dateien für bestimmte Umgebungen anzufordern.
salt://path/to/file?saltenv = base
Hier wird die Umgebung mit der Option Roots definiert.
Dateiserverkonfiguration
Salt-Dateien können in vielen Stammverzeichnissen zugewiesen und aufgerufen werden, indem sowohl der Dateipfad als auch die zu durchsuchende Umgebung angegeben werden. Die einzelnen Umgebungen können sich über mehrere Verzeichniswurzeln erstrecken.
Umgebung
Die Standardumgebung ist base. Diese Umgebung ist definiert und wird zum Herunterladen von Dateien verwendet, wenn keine andere Umgebung angegeben ist.
file_roots:
base:
- /srv/salt/base
Sie können auch mehrere Umgebungen verwenden, wie im folgenden Code gezeigt.
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
- /srv/salt/base
CP-Modul
Das CP-Modul ist das Hauptmodul zur Manipulation des Salt file server. Dassalt-cp Der Befehl kann auch zum Verteilen von Dateien verwendet werden, die vom Salt-Dateiserver angezeigt werden.
EINE DATEI BEKOMMEN
Das cp.get_fileDie Funktion kann auf dem Minion verwendet werden, um eine Datei vom Master herunterzuladen. Es wird wie im folgenden Codeblock gezeigt definiert.
salt '*' cp.get_file salt://vimrc /etc/vimrc
Der obige Befehl weist alle Salt Minions an, das herunterzuladen vimrc Datei und kopieren Sie es in /etc/vimrc.
Vorlage aktivieren
Sie können die Vorlagenoption in get_file wie folgt aktivieren:
salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja
Komprimierung anwenden
Verwenden Sie die Komprimierung, um die Komprimierung zu verwenden gzipbenanntes Argument. Die gültigen Werte sind Ganzzahlen von 1 bis 9, wobei 1 die minimale Komprimierung und 9 der maximale Wert ist.
Der Befehl ist wie folgt definiert:
salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5
GET_DIR
Das cp.get_dirDie Funktion kann auf dem Minion verwendet werden, um ein gesamtes Verzeichnis vom Master herunterzuladen. Es wird im folgenden Codeblock definiert.
salt '*' cp.get_dir salt://etc/mysql /etc
Das cp.get_dirunterstützt Template-Rendering und gzip-Komprimierungsargumente. Wenn Sie möchten, können Sie auch zuweisen.
FILECLIENT-Modul
Salt bietet ein Python-Modul, mit dem Sie auf den Salt-Dateiserver zugreifen können. Dassalt/fileclient.py Das Modul wird verwendet, um die Kommunikation vom Diener zum Meister einzurichten.
Der Beispielcode zum Abrufen von Dateien lautet wie folgt:
import salt.minion
import salt.fileclient
def get_file(path, dest, saltenv = ‘base'):
client = salt.fileclient.get_file_client(__opts__)
return client.get_file(path, dest, true, saltenv)
Hier,
opts ist verfügbar, wenn das Modul in der Salt-Umgebung ausgeführt wird. Andernfalls sollten wir den Konfigurationspfad angeben -/etc/salt/minion.
path bezieht sich auf den Pfad der Quelldatei im Salt-Dateiserver.
dest verweist auf den Zielpfad der Datei.
saltenv bezieht sich auf die Umwelt
Im nächsten Kapitel werden wir verstehen, wie man es benutzt Git als Dateiserver.