SaltStack - Yapılandırma Yönetimi
Yapılandırma yönetimi, SaltStack'teki en önemli kavramlardan biridir. Yeniden kullanılabilir bir yapılandırma şablonu oluşturmak için kullanılır.state. Durum, bir sistem bileşenini veya bir uygulamayı bilinen bir konfigürasyona yerleştirmek için gereken her şeyi açıklar.
Tuz Durumu
Tuz durumu, bir sistemin belirli bir bölümü için yeniden kullanılabilir bir yapılandırmadır. Durumların anlaşılması ve basit bir YAML kullanılarak açıklanması daha kolaydır.
Bir Tuz Durumu Oluşturun
Tuz durumlarının oluşturulması kolaydır. Bu bölümde basit bir durum oluşturalım. "Salt-vagrant-demo / saltstack / salt /" dizinine gidin ve adlı bir dosya oluşturunsamples.sls ve aşağıdaki satırları içine ekleyin.
samples.sls
install_network_packages:
pkg.installed:
- pkgs:
- rsync
- lftp
- curl
Şimdi, dosyayı kaydedin ve Tuz ana aygıtında aşağıdaki komutu çalıştırın.
root@saltmaster:/home/vagrant# salt 'minion1’ state.apply samples
Burada kurduk rsync, lftp ve curl içinden pkg.installed tuz minionunda Tuz durumunu kullanan modül, minion1. Düzgün çalışıyorsa, yanıtı aşağıda gösterildiği gibi görebilirsiniz.
Aşağıdakileri üretecek output -
minion1:
----------
ID: install_network_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 08:08:48.612336
Duration: 545.385 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 545.385 ms
Tuz Durumunu Uygula
Artık '.sls' dosyasını kullanarak bir durum oluşturduk ve onu özel olarak çağırarak uyguladık. Salt, varsayılan bir durum dosyasına sahiptir.top.slsdosya. En üstteki dosya, birden fazla durum dosyasını Salt minyonlarına uygulamak için kullanılır. En üstteki dosya, durumların nerede uygulanması gerektiğini açıklar. İyi,States ve Top file SaltStack'in yapılandırma yönetimi kapasitesinin temelini oluşturmak için birlikte çalışın.
Şimdi dizinde basit bir top.sls dosyası oluşturalım saltstack/salt ve aşağıdakileri ekleyin.
top.sls
base:
'*':
- common
'minion1':
- samples
Burada state, genellikle applies -e all system durum, samples için geçerlidir minion1.
Ardından, Tuz master'ı çalıştırın ve durumu aşağıda gösterildiği gibi uygulayın.
root@saltmaster:/home/vagrant# salt '*' state.apply
Aşağıdakileri üretecek output -
minion1:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:33:35.642355
Duration: 588.21 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 588.210 ms
minion2:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:33:35.890331
Duration: 602.79 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 602.790 ms
Toplu İş Boyutunu Uygula
Çok sayıda bağlı minyonunuz varsa, o zaman aynı anda kaç sistemin güncelleneceğini sınırlayabilirsiniz. Kullanılarak yapılır–batch-size aşağıda tanımlanan seçenek.
root@saltmaster:/home/vagrant# salt --batch-size 5 '*' state.apply
Aşağıdakileri üretecek output -
Executing run on ['minion2', 'minion1']
jid:
20170314094638482664
minion1:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:46:41.228519
Duration: 582.24 ms
Changes:
Summary for minion1
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 582.240 ms
retcode:
0
jid:
20170314094638482664
minion2:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 09:46:41.153609
Duration: 605.235 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 605.235 ms
retcode:
0
Tuz Durumu İşlevleri
Tuz durumu işlevleri, uygulamaları uzaktaki sisteminize yüklemek ve yapılandırmak için kullanılır. Tuz durumu işlevini kullanarak bir "Vim" paketi kuralım.
Durum İşlevini Oluşturun ve Uygulayın
"Salt-vagrant-demo / saltstack / salt / sample.sls" dizini altında "sample.sls" adlı bir dosya oluşturun ve aşağıdakileri ekleyin -
sample.sls
install vim:
pkg.installed:
- name: vim
Vagrant ortamı açıldığında, salt master'ı çalıştırın ve aşağıdaki komutu çalıştırarak sample.sls'yi uygulayın.
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample
Aşağıdakileri üretecek output -
minion2:
----------
ID: install vim
Function: pkg.installed
Name: vim
Result: True
Comment: Package vim is installed
Started: 15:07:45.752764
Duration: 553.506 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 553.506 ms
Şimdi bir "Vim" paketi ekledik. Şimdi paketi Tuz testi yöntemini kullanarak test edelim.
Tuz Durumu Testi
Durumlara "test = True" seçeneği eklenerek test çalıştırması zorunludur. Dönüş bilgisi sarı renkte uygulanacak durumları gösterecek ve sonuç 'Yok' olarak bildirilecektir.
Durumu test etmek için aşağıdaki komut kullanılır -
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample test = True
Aşağıdakileri üretecek output -
minion2:
----------
ID: install vim
Function: pkg.installed
Name: vim
Result: True
Comment: Package vim is already installed
Started: 15:07:45.752764
Duration: 553.506 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 553.506 ms
SaltStack ─ Pillar Bileşeni
Sütun, Tuz durumlarını yeniden kullanılabilir hale getirmek için önemli bir bileşendir. Hedefler kullanılarak atanan minyonlar için güvenli verileri tanımlamak için kullanılır. Salt pillar verileri, bağlantı noktaları, dosya yolları, yapılandırma parametreleri ve parolalar gibi değerleri depolar.
Pillar yapılandırma Dosyası
İçin konfigürasyon pillar_roots ana yapılandırma dosyasında aşağıda gösterilmiştir -
pillar_roots:
base:
- /srv/pillar
Burada dosya "/ srv / pillar" dizinindedir.
/Srv/pillar/top.sls konumunda bulunan üst dosyanın aşağıdaki yapıya sahip olduğunu düşünün:
base:
'*':
- default
Şimdi, /srv/pillar/default.sls konumunda bulunan default.sls dosyasına gidin ve aşağıdaki kodu ekleyin.
# Default pillar values
apache
git
Dosyayı kaydettikten sonra, tüm değişiklikleri güncellemek için sütunu yenileyin.
Sütunu Yenilemek
Aşağıdaki komutu kullanarak sütunu yenileyebilirsiniz.
root@saltmaster:/home/vagrant# salt '*' saltutil.refresh_pillar
Yukarıdaki komut, tüm minyonlarda Tuz sütunu verilerini yenilemek için kullanılır.
Sütun Verilerini Listele
Sütun verilerini listelemek için aşağıda verilen komutu kullanabilirsiniz.
root@saltmaster:/home/vagrant# salt '*' pillar.ls
Aşağıdakileri üretecek output -
minion2:
- apache
- git
minion1:
- apache
- git
Sütun Öğeleri
Sütun kurulduktan sonra, veriler sütun modülü aracılığıyla minyon üzerinde görüntülenebilir. İşlev aracılığıyla erişilebilirpillar.itemsaşağıda tanımlanan.
root@saltmaster:/home/vagrant# salt '*' pillar.items
Aşağıdakileri üretecek output -
minion2:
----------
apache:
httpd
git:
git
minion1:
----------
apache:
httpd
git:
git
SaltStack - Bileşeni Dahil Et
'Dahil Et' bileşeni, aynı yapılandırma görevini birden çok yerde tanımlamak için kullanılır. Yapması kolaydır. Durum dosyanızın üst kısmına aşağıdaki biçimi kullanarak bir ekleme ekleyin -
include:
- state file 1
- state file 2
Buraya, state file 1 ve state file 2dahil etmek istediğiniz SLS dosyalarının adlarıdır. Eklemeye gerek yok.slsuzantı. Dahil Edilen Tuz durumları, mevcut dosyanın en üstüne eklenir.
Alt Dizindeki Durum Dosyası
Bir nokta (.) Kullanarak alt dizin durum dosyasını dahil edebilirsiniz. Bir dizin ayırıcı görevi görür.
include:
- dir.sls1
Tahıl Arayüzü
Taneler, temeldeki sistem hakkında bilgi elde etmek için kullanılan bir arayüzdür. İşletim sistemi, etki alanı adı, IP adresi, çekirdek, işletim sistemi türü, bellek ve diğer birçok sistem özelliği için tahıllar toplanır.
Tahıl Hedefleme
Aşağıdaki kod bloğunda tanımlanan minyonları hedeflerken tahıl verileri kullanılabilir.
root@saltmaster:/home/vagrant# salt -G 'os:Ubuntu' test.ping
Aşağıdakileri üretecek output -
minion1:
True
minion2:
True
Tahıl Listeleme
Tahıllar aşağıda tanımlanan 'grains.ls' modülü kullanılarak listelenebilir.
root@saltmaster:/home/vagrant# salt '*' grains.ls
Öğeleri Listele
Pillar gibi, Tahıl verileri de "grains.items" kullanılarak listelenebilir.
root@saltmaster:/home/vagrant# salt '*' grains.items