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