SaltStack - Uzaktan Yürütme
Salt'ın temel kavramlarından biri uzaktan yürütmedir. Salt, birkaç saniye içinde binlerce sistemde komutlar yürütebilir. Salt, bu işlevi gerçekleştirmek için kendi komutunu kullanır. Şimdi, bölümdeki uzaktan çalıştırma için farklı Salt komutlarını anlayalım.
Tuz Komutu
Tuz komutu, Tuz ustasının bir veya daha fazla Salt minions. Temel sözdizimi aşağıdaki gibidir,
salt '<target>' <module.function> [arguments]
Yukarıdaki komut sözdizimi aşağıdaki üç ana bileşenden oluşur.
target - Komut ile hangi sistemlerin uygulanacağını belirler.
module.function- Bu bir emirdir. Komutlar bir modül ve işlevden oluşur.
arguments - İşlevi çağırmak için gereken ek veriler.
Her bir bileşeni ayrıntılı olarak anlayalım.
Hedef Bileşen nedir?
Hedef, işlevi çalıştırmak için minyonları (yönetilen sistem) filtrelemenize izin veren bir bileşendir. Hedef bileşeni kullanan basit bir komut aşağıda tanımlanmıştır.
salt '*' test.ping
Aşağıdakileri üretecek output -
minion2:
True
minion1:
True
İşte hedef ‘*’yönetilen tüm sistemleri temsil eder. 'testburada bir modül ve pingbir işlevdir. Bu, uzak sistemdeki ping hizmetini test etmek için kullanılır. Sonraki bölümlerde farklı modüller ve işlevleri hakkında bilgi edineceğiz.
ID kullanan hedefler (minion)
Belirli bir minyona komutunu kullanarak komut gönderebilirsiniz. idhedefte. Kullanmak yerine'*', kullanarak değiştirebilirsiniz minion id. Aşağıda tanımlanmıştır.
salt 'minion1’ test.ping
Aşağıdakileri üretecek output -
minion1:
True
Normal İfade kullanan hedefler
Hedefler, belirli bir düzenli ifadeye göre filtrelenebilir. Aşağıda tanımlanmıştır.
salt -E 'minion[0-9]' test.ping
Aşağıdakileri üretecek output -
minion2:
True
minion1:
True
Listeyi kullanan hedefler
Hedefler, bir listede açıkça belirtilebilir. Aşağıdaki kod bloğunda tanımlanmıştır.
salt -L 'minion1,minion2' test.ping
Aşağıdakileri üretecek output -
minion2:
True
minion1:
True
Koşula Göre Hedefler
Hedefler, aşağıdaki kod bloğunda gösterildiği gibi tek bir komutta birleştirilebilir.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
Aşağıdakileri üretecek output -
minion1:
True
minion2:
True
Modül ve Fonksiyonlar (modül fonksiyonu)
Salt, kabuk komutlarını çalıştırabilir; yönetilen tüm sistemlerinde aynı anda paketleri güncellemek ve dosyaları vb. dağıtmak. Salt bu işlemleri modüller kullanarak yapar. Salt, mevcut tüm işlevler için özel modüllere sahiptir. Bu bölümdeki bazı basit örnekleri kullanarak farklı Tuz modüllerini anlayalım.
Kabuk Komutu
Salt, çoklu sistemlerde kabuk komutlarını uzaktan çalıştırır. cmd.runkomut. cmd ana modül ve run mevcut işlevlerden biridir. cmdmodül. run işlevi, aşağıdaki kod bloğunda gösterildiği gibi uzak sistemde herhangi bir kabuk komutunun yürütülmesini sağlar.
salt '*' cmd.run 'ls -l /etc'
Aşağıdakileri üretecek 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
……………
……………
Disk Kullanımını Göster
Tuz özel bir modül sağlar, diskyönetilen sistemin tüm disk ayrıntılarını almak için. diskmodule var usage ayrıntıları sorgulama işlevi.
salt '*' disk.usage
Aşağıdakileri üretecek 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
Ağ arayüzleri
Salt, yönetilen sistemler hakkında ağ arabirim bilgilerini sorgulamak için modül içinde ayrı bir modül, ağ ve işlev, arabirimler sağlar.
salt '*' network.interfaces
Aşağıdakileri üretecek 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 Yürütme Modülü
Tuz fonksiyonları şuraya gönderilebilir: sys.docyürütme modülü. Bu, herhangi bir modülle ilgili ayrıntıları doğrudan komut satırından almak için kullanılır. Tuz fonksiyonları kendi kendini belgeliyor. Tüm işlev belgeleri, aşağıda tanımlanan sys.doc () işlevi aracılığıyla minyonlardan alınabilir.
salt '*' sys.doc
Bir İşlev Çağrısı için Bağımsız Değişkenler
Bağımsız değişkenler, işlev çağrısı için ek veri sağlamak için kullanılır. Aşağıda basit bir argüman örneği verilmiştir.
salt '*' sys.doc pkg.install
İşte argüman pkg.install belirli paketleri kurmak için bir modüldür.
Python Fonksiyonu
Bağımsız değişkenler, işlevin boşlukla sınırlandırılmış parametreleridir. Python kodunun aşağıda verildiği gibi argümanlar olarak aktarılmasına izin verir.
salt '*' cmd.exec_code python 'import sys;print sys.version'
Aşağıdakileri üretecek 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]
Benzer şekilde, isteğe bağlı anahtar kelimeleri ve YAML biçimi de.