SaltStack - Remote-Ausführung
Eines der Kernkonzepte von Salt ist die Remote-Ausführung. Salt kann Befehle in Sekundenschnelle über Tausende von Systemen ausführen. Salt verwendet einen eigenen Befehl, um diese Funktionalität auszuführen. Lassen Sie uns nun die verschiedenen Salt-Befehle für die Remote-Ausführung in diesem Kapitel verstehen.
Salzbefehl
Mit dem Salt-Befehl kann der Salt-Master mit einem oder mehreren kommunizieren Salt minions. Die grundlegende Syntax lautet wie folgt:
salt '<target>' <module.function> [arguments]
Die obige Befehlssyntax besteht aus den folgenden drei Hauptkomponenten.
target - Legt fest, welche Systeme vom Befehl angewendet werden.
module.function- Es ist ein Befehl. Befehle bestehen aus einem Modul und einer Funktion.
arguments - Zusätzliche Daten zum Aufrufen der Funktion.
Lassen Sie uns jede der Komponenten im Detail verstehen.
Was ist die Zielkomponente?
Ziel ist eine Komponente, mit der Sie Schergen (verwaltetes System) filtern können, um die Funktion auszuführen. Ein einfacher Befehl unter Verwendung der Zielkomponente ist unten definiert.
salt '*' test.ping
Es wird Folgendes erzeugt output - -
minion2:
True
minion1:
True
Hier das Ziel ‘*’repräsentiert alle verwalteten Systeme. Das 'test'hier ist ein Modul und pingist eine Funktion. Dies wird verwendet, um den Ping-Dienst im Remote-System zu testen. In den folgenden Kapiteln lernen wir die verschiedenen Module und ihre Funktionen kennen.
Ziele mit ID (Diener)
Sie können einen Befehl an einen bestimmten Diener senden, indem Sie dessen idim Ziel. Anstatt zu verwenden'*'können Sie es mit ersetzen minion id. Es ist unten definiert.
salt 'minion1’ test.ping
Es wird Folgendes erzeugt output - -
minion1:
True
Ziele mit regulärem Ausdruck
Ziele können nach bestimmten regulären Ausdrücken gefiltert werden. Es ist unten definiert.
salt -E 'minion[0-9]' test.ping
Es wird Folgendes erzeugt output - -
minion2:
True
minion1:
True
Ziele mit Liste
Ziele können explizit in einer Liste angegeben werden. Es wird im folgenden Codeblock definiert.
salt -L 'minion1,minion2' test.ping
Es wird Folgendes erzeugt output - -
minion2:
True
minion1:
True
Ziele nach Zustand
Ziele können in einem Befehl kombiniert werden, wie im folgenden Codeblock gezeigt.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
Es wird Folgendes erzeugt output - -
minion1:
True
minion2:
True
Modul und Funktionen (Modul.Funktion)
Salt kann Shell-Befehle ausführen. Aktualisieren Sie Pakete und verteilen Sie Dateien usw. auf allen verwalteten Systemen gleichzeitig. Salt führt diese Operationen mit Modulen aus. Salt verfügt über spezielle Module für alle verfügbaren Funktionen. Lassen Sie uns die verschiedenen Salt-Module anhand eines einfachen Beispiels in diesem Kapitel verstehen.
Shell-Befehl
Salt führt Shell-Befehle mithilfe von cmd.runBefehl. Dascmd ist das Hauptmodul und run ist eine der Funktionen, die in der cmdModul. Dasrun Mit dieser Funktion kann jeder Shell-Befehl im Remote-System ausgeführt werden, wie im folgenden Codeblock gezeigt.
salt '*' cmd.run 'ls -l /etc'
Es wird Folgendes erzeugt output - -
minion2:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:14 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
……………
……………
minion1:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:09 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
-rw-r----- 1 root daemon 144 Oct 21 2013 at.deny
-rw-r--r-- 1 root root 2177 Apr 9 2014 bash.bashrc
-rw-r--r-- 1 root root 45 Mar 22 2014 bash_completion
……………
……………
Festplattennutzung anzeigen
Salz bietet ein spezielles Modul, diskum die vollständigen Datenträgerdetails des verwalteten Systems abzurufen. Dasdiskmodule hat ein usage Funktion zum Abfragen der Details.
salt '*' disk.usage
Es wird Folgendes erzeugt output - -
minion1:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
minion2:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
Netzwerk Schnittstellen
Salt bietet ein separates Modul, Netzwerk und Funktionsschnittstellen innerhalb des Moduls, um die Netzwerkschnittstelleninformationen zu den verwalteten Systemen abzufragen.
salt '*' network.interfaces
Es wird Folgendes erzeugt output - -
minion1:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:34:10:52
inet:
|_
----------
address:
192.168.50.11
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe34:1052
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
minion2:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:a7:31:8e
inet:
|_
----------
address:
192.168.50.12
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fea7:318e
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
Ausführungsmodul sys.doc
Salzfunktionen können an die gesendet werden sys.docAusführungsmodul. Dies wird verwendet, um die Details zu jedem Modul direkt über die Befehlszeile abzurufen. Die Salt-Funktionen sind selbstdokumentierend. Die gesamte Funktionsdokumentation kann über die unten definierte Funktion sys.doc () von den Minions abgerufen werden.
salt '*' sys.doc
Argumente für einen Funktionsaufruf
Argumente werden verwendet, um zusätzliche Daten für den Funktionsaufruf bereitzustellen. Ein einfaches Argumentbeispiel ist unten angegeben.
salt '*' sys.doc pkg.install
Hier das Argument pkg.install ist ein Modul zum Installieren bestimmter Pakete.
Python-Funktion
Argumente sind durch Leerzeichen getrennte Parameter für die Funktion. Damit kann der Python-Code wie unten angegeben als Argumente übergeben werden.
salt '*' cmd.exec_code python 'import sys;print sys.version'
Es wird Folgendes erzeugt output - -
minion2:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
minion1:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
Ebenso können Sie optionale Schlüsselwörter und die verwenden YAML Format auch.