SaltStack - Esecuzione remota
Uno dei concetti fondamentali di Salt è l'esecuzione remota. Salt può eseguire comandi su migliaia di sistemi in pochi secondi. Salt utilizza il proprio comando per eseguire questa funzionalità. Vediamo ora di comprendere i diversi comandi Salt per l'esecuzione remota nel capitolo.
Comando di sale
Il comando Salt consente a Salt master di comunicare con uno o più Salt minions. La sintassi di base è la seguente,
salt '<target>' <module.function> [arguments]
La sintassi del comando precedente è costituita dai seguenti tre componenti principali.
target - Determina quali sistemi vengono applicati dal comando.
module.function- È un comando. I comandi sono costituiti da un modulo e da una funzione.
arguments - Dati aggiuntivi necessari per chiamare la funzione.
Cerchiamo di capire in dettaglio ciascuno dei componenti.
Qual è il componente target?
Target è un componente che ti consente di filtrare i minion (sistema gestito) per eseguire la funzione. Di seguito viene definito un semplice comando che utilizza il componente di destinazione.
salt '*' test.ping
Produrrà quanto segue output -
minion2:
True
minion1:
True
Ecco l'obiettivo ‘*’rappresenta tutti i sistemi gestiti. Il 'test'ecco un modulo e pingè una funzione. Viene utilizzato per testare il servizio ping nel sistema remoto. Apprenderemo i diversi moduli e le sue funzioni nei capitoli successivi.
Obiettivi che utilizzano ID (minion)
Puoi inviare un comando a un servitore specifico usando il suo idnel bersaglio. Invece di usare'*', puoi sostituirlo usando minion id. È definito di seguito.
salt 'minion1’ test.ping
Produrrà quanto segue output -
minion1:
True
Obiettivi che utilizzano l'espressione regolare
I target possono essere filtrati da un'espressione regolare specifica. È definito di seguito.
salt -E 'minion[0-9]' test.ping
Produrrà quanto segue output -
minion2:
True
minion1:
True
Obiettivi utilizzando List
I target possono essere specificati esplicitamente in un elenco. È definito nel seguente blocco di codice.
salt -L 'minion1,minion2' test.ping
Produrrà quanto segue output -
minion2:
True
minion1:
True
Obiettivi per condizione
I target possono essere combinati in un comando come mostrato nel blocco di codice seguente.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
Produrrà quanto segue output -
minion1:
True
minion2:
True
Modulo e funzioni (module.function)
Salt può eseguire comandi della shell; aggiornare i pacchetti e distribuire file, ecc. in tutti i suoi sistemi gestiti contemporaneamente. Salt esegue queste operazioni utilizzando i moduli. Salt ha moduli speciali per tutte le funzionalità disponibili. Cerchiamo di capire i diversi moduli Salt utilizzando alcuni semplici esempi in questo capitolo.
Comando Shell
Salt esegue i comandi della shell in remoto su più sistemi utilizzando l'estensione cmd.runcomando. Ilcmd è il modulo principale e run è una delle funzioni disponibili in cmdmodulo. Ilrun funzione consente di eseguire qualsiasi comando della shell nel sistema remoto come mostrato nel blocco di codice seguente.
salt '*' cmd.run 'ls -l /etc'
Produrrà quanto segue 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
……………
……………
Mostra utilizzo disco
Salt fornisce un modulo speciale, diskper ottenere i dettagli completi del disco del sistema gestito. Ildiskmodule ha un usage funzione per interrogare i dettagli.
salt '*' disk.usage
Produrrà quanto segue 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
Interfacce di rete
Salt fornisce un modulo, una rete e una funzione separati, interfacce all'interno del modulo per interrogare le informazioni dell'interfaccia di rete sui sistemi gestiti.
salt '*' network.interfaces
Produrrà quanto segue 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
Modulo di esecuzione sys.doc
Le funzioni del sale possono essere inviate a sys.docmodulo di esecuzione. Viene utilizzato per ottenere i dettagli su qualsiasi modulo direttamente dalla riga di comando. Le funzioni Salt sono auto-documentanti. Tutta la documentazione della funzione può essere recuperata dai minion tramite la funzione sys.doc (), definita di seguito.
salt '*' sys.doc
Argomenti per una chiamata di funzione
Gli argomenti vengono utilizzati per fornire dati aggiuntivi per la chiamata di funzione. Di seguito viene fornito un semplice esempio di argomento.
salt '*' sys.doc pkg.install
Qui, l'argomento pkg.install è un modulo per installare pacchetti specifici.
Funzione Python
Gli argomenti sono parametri delimitati da spazi della funzione. Permette di passare il codice python come argomenti come indicato di seguito.
salt '*' cmd.exec_code python 'import sys;print sys.version'
Produrrà quanto segue 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]
Allo stesso modo, puoi utilizzare parole chiave facoltative e il file YAML formato pure.