SaltStack - zdalne wykonanie
Jedną z podstawowych koncepcji Salt jest zdalne wykonywanie. Salt może wykonywać polecenia w tysiącach systemów w ciągu kilku sekund. Sól używa własnego polecenia, aby wykonać tę funkcję. Rozumiemy teraz różne polecenia Salt do zdalnego wykonania w tym rozdziale.
Salt Command
Polecenie Salt umożliwia mistrzowi soli komunikowanie się z jednym lub wieloma Salt minions. Podstawowa składnia jest następująca:
salt '<target>' <module.function> [arguments]
Powyższa składnia polecenia składa się z trzech głównych komponentów.
target - Określa, które systemy są stosowane przez polecenie.
module.function- To rozkaz. Polecenia składają się z modułu i funkcji.
arguments - Dodatkowe dane potrzebne do wywołania funkcji.
Przyjrzyjmy się szczegółowo każdemu z elementów.
Co to jest komponent docelowy?
Cel to komponent, który umożliwia filtrowanie stronników (systemu zarządzanego) w celu uruchomienia funkcji. Poniżej zdefiniowano proste polecenie wykorzystujące komponent docelowy.
salt '*' test.ping
Spowoduje to, co następuje output -
minion2:
True
minion1:
True
Tutaj cel ‘*’reprezentuje wszystkie zarządzane systemy. „test'tutaj jest moduł i pingjest funkcją. Służy do testowania usługi ping w systemie zdalnym. Dowiemy się o różnych modułach i ich funkcjach w kolejnych rozdziałach.
Cele używające identyfikatora (stronnik)
Możesz wysłać polecenie do określonego stronnika, używając jego idw celu. Zamiast używać'*', możesz go zastąpić za pomocą minion id. Jest to zdefiniowane poniżej.
salt 'minion1’ test.ping
Spowoduje to, co następuje output -
minion1:
True
Cele za pomocą wyrażenia regularnego
Cele można filtrować według określonego wyrażenia regularnego. Jest to zdefiniowane poniżej.
salt -E 'minion[0-9]' test.ping
Spowoduje to, co następuje output -
minion2:
True
minion1:
True
Cele za pomocą listy
Cele można jawnie określić na liście. Jest zdefiniowany w poniższym bloku kodu.
salt -L 'minion1,minion2' test.ping
Spowoduje to, co następuje output -
minion2:
True
minion1:
True
Cele według stanu
Cele można łączyć w jednym poleceniu, jak pokazano w bloku kodu poniżej.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
Spowoduje to, co następuje output -
minion1:
True
minion2:
True
Moduł i funkcje (module.function)
Salt może wykonywać polecenia powłoki; aktualizować pakiety i rozpowszechniać pliki itp. jednocześnie we wszystkich zarządzanych systemach. Sól wykonuje te operacje za pomocą modułów. Salt posiada specjalne moduły dla wszystkich dostępnych funkcjonalności. Zrozummy różne moduły soli, posługując się prostym przykładem w tym rozdziale.
Polecenie powłoki
Salt wykonuje polecenia powłoki zdalnie w wielu systemach przy użyciu rozszerzenia cmd.runKomenda. Plikcmd jest głównym modułem i run jest jedną z funkcji dostępnych w cmdmoduł. Plikrun Funkcja umożliwia wykonanie dowolnego polecenia powłoki w systemie zdalnym, jak pokazano w bloku kodu poniżej.
salt '*' cmd.run 'ls -l /etc'
Spowoduje to, co następuje 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
……………
……………
Pokaż użycie dysku
Sól zapewnia specjalny moduł, diskaby uzyskać pełne szczegóły dysku systemu zarządzanego. Plikdiskmodule ma usage funkcję zapytania o szczegóły.
salt '*' disk.usage
Spowoduje to, co następuje 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
Interfejsy sieciowe
Salt zapewnia oddzielny moduł, sieć i funkcję, interfejsy wewnątrz modułu do odpytywania informacji o interfejsie sieciowym o zarządzanych systemach.
salt '*' network.interfaces
Spowoduje to, co następuje 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
sys.doc Moduł wykonawczy
Funkcje soli można przesyłać do sys.docmoduł wykonawczy. Służy do pobierania szczegółowych informacji o dowolnym module bezpośrednio z wiersza poleceń. Funkcje soli są samodokumentujące. Całą dokumentację funkcji można pobrać z minionów za pomocą funkcji sys.doc (), która została zdefiniowana poniżej.
salt '*' sys.doc
Argumenty wywołania funkcji
Argumenty służą do dostarczania dodatkowych danych do wywołania funkcji. Poniżej podano prosty przykład argumentu.
salt '*' sys.doc pkg.install
Tutaj argument pkg.install to moduł do instalowania określonych pakietów.
Funkcja Pythona
Argumenty to parametry funkcji rozdzielane spacjami. Umożliwia przekazywanie kodu Pythona jako argumentów, jak podano poniżej.
salt '*' cmd.exec_code python 'import sys;print sys.version'
Spowoduje to, co następuje 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]
Podobnie możesz użyć opcjonalnych słów kluczowych i rozszerzenia YAML format.