SaltStack - Salt Dosya Sunucusu

Salt dosya sunucusu, durum bilgisi olmayan bir ZeroMQ sunucusudur. Tuz ustasına yerleştirilmiştir. Dosyaları ustadan minyonlara dağıtmak için bir Salt dosya sunucusu kullanılır. Farklı modüller içerir. Bu bölümde salt dosya sunucusunu, yapılandırmasını, salt dosya sunucusuyla ilgili modülleri, python'da salt dosya sunucusuna nasıl erişileceğini vb. Anlayalım.

Dosya Sunucusu Arka Ucu

Dosya sunucusu arka ucu, Salt dosya sunucusunun yerel dosya sistemi, Git sürüm kontrol sistemi vb. Gibi diğer dosya sunucusuna şeffaf bir arayüz olarak davranmasına izin verir.

Bir Git dosya sunucusu arka ucu, ana dosyada aşağıdaki yapılandırma kullanılarak etkinleştirilebilir.

fileserver_backend:
   - git

Çoklu arka uç dosya sistemini etkinleştirmek için aşağıdaki yapılandırmayı kullanabiliriz.

fileserver_backend:
   - roots
   - git

Ayrıca, ilgili arka uç sunucusunun belirli bölümünü kullanarak farklı bir arka uç sunucusu için ek seçenek belirleyebiliriz.

Yerel Dosya Sistemi

Bu sistemi kullanmak için aşağıdaki kodu kullanmamız gerekiyor.

file_roots:
   base:
      - /srv/salt/prod

Git Dosya Sistemi

Bu sistemi kullanmak için aşağıdaki kodu kullanmamız gerekiyor.

gitfs_remotes:
   - https://github.com/sample/sample1.git

Dosya İsteme

Salt'ın belirli ortamlar için dosya talep etme seçeneği vardır.

salt://path/to/file?saltenv = base

Burada ortam kökler seçeneği kullanılarak tanımlanır.

Dosya Sunucusu Yapılandırması

Salt dosyaları birçok kök dizine tahsis edilebilir ve aranacak hem dosya yolu hem de ortam belirtilerek erişilebilir. Ayrı ortamlar birden çok dizin köküne yayılabilir.

Çevre

Varsayılan ortam temeldir. Bu ortam tanımlanır ve başka bir ortam belirtilmediğinde dosyaları indirmek için kullanılır.

file_roots:
   base:
      - /srv/salt/base

Aşağıdaki kodda gösterildiği gibi birden fazla ortam da kullanabilirsiniz.

file_roots:
   base:
      - /srv/salt/base
   dev:
      - /srv/salt/dev
      - /srv/salt/base

CP Modülü

CP modülü, Salt file server. salt-cp komutu, Salt dosya sunucusu tarafından sunulan dosyaları dağıtmak için de kullanılabilir.

DOSYAYI AL

cp.get_fileişlevi minion üzerinde ustadan bir dosya indirmek için kullanılabilir. Aşağıdaki kod bloğunda gösterildiği gibi tanımlanır.

salt '*' cp.get_file salt://vimrc /etc/vimrc

Yukarıdaki komut, tüm Salt minyonlarına vimrc dosyalayın ve kopyalayın /etc/vimrc.

Şablonu Etkinleştir

Get_file'da şablon seçeneğini aşağıdaki gibi etkinleştirebilirsiniz -

salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja

Sıkıştırma Uygula

Sıkıştırmayı kullanmak için şunu kullanın: gzipadlandırılmış bağımsız değişken. Geçerli değerler 1'den 9'a kadar olan tam sayılardır; burada 1 minimum sıkıştırma ve 9 maksimum değerdir.

Komut şu şekilde tanımlanır -

salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5

GET_DIR

cp.get_dirişlevi minion üzerinde tüm dizini ana bilgisayardan indirmek için kullanılabilir. Aşağıdaki kod bloğunda tanımlanmıştır.

salt '*' cp.get_dir salt://etc/mysql /etc

cp.get_dirşablon oluşturmayı ve gzip sıkıştırma argümanlarını destekler. İsterseniz siz de atayabilirsiniz.

FILECLIENT Modülü

Salt, salt dosya sunucusuna erişmeye yardımcı olan bir python modülü sağlar. salt/fileclient.py modül minyondan ustaya iletişimi kurmak için kullanılır.

Dosyaları almak için örnek kod aşağıdaki gibidir -

import salt.minion
import salt.fileclient

def get_file(path, dest, saltenv = ‘base'):
   client = salt.fileclient.get_file_client(__opts__)
   return client.get_file(path, dest, true, saltenv)

Buraya,

  • opts, modül tuz ortamında çalıştırıldığında kullanılabilir. Aksi takdirde, yapılandırma yolunu sağlamalıyız -/etc/salt/minion.

  • path salt dosya sunucusundaki kaynak dosyanın yolunu ifade eder.

  • dest dosyanın hedef yolunu gösterir.

  • saltenv çevreye atıfta bulunur

Bir sonraki bölümde, nasıl kullanılacağını anlayacağız Git dosya sunucusu olarak.