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.