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.