SaltStack - Manajemen Konfigurasi

Manajemen konfigurasi adalah salah satu konsep paling signifikan di SaltStack. Ini digunakan untuk membuat template konfigurasi yang dapat digunakan kembali, yang disebutstate. Status menjelaskan semua yang diperlukan untuk menempatkan komponen sistem atau aplikasi ke dalam konfigurasi yang diketahui.

Negara Bagian Garam

Status garam adalah konfigurasi yang dapat digunakan kembali untuk bagian tertentu dari suatu sistem. Status lebih mudah dipahami dan dijelaskan menggunakan YAML sederhana.

Buat Negara Garam

Status garam mudah dibuat. Mari kita buat keadaan sederhana di bab ini. Pindah ke direktori “salt-vagrant-demo / saltstack / salt /” dan buat file bernamasamples.sls dan tambahkan baris berikut di dalamnya.

samples.sls

install_network_packages:
   pkg.installed:
      - pkgs:
         - rsync
         - lftp
         - curl

Sekarang, simpan file dan jalankan perintah berikut di master Salt.

root@saltmaster:/home/vagrant# salt 'minion1’ state.apply samples

Di sini, kami menginstal rsync, lftp dan curl melalui pkg.installed modul menggunakan status Salt di minion garam, minion1. Jika berfungsi dengan baik, Anda dapat melihat respons seperti yang ditunjukkan di bawah ini.

Ini akan menghasilkan yang berikut 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

Terapkan Salt State

Sekarang kita telah membuat status menggunakan file '.sls' dan menerapkannya dengan memanggilnya secara khusus. Salt memiliki file status default yang disebut sebagaitop.slsmengajukan. File teratas digunakan untuk menerapkan beberapa file status ke Salt minions. File teratas menjelaskan di mana negara harus diterapkan. Baik,States dan Top file bekerja sama untuk membuat inti dari kemampuan manajemen konfigurasi SaltStack.

Sekarang mari kita buat file top.sls sederhana di direktori saltstack/salt dan tambahkan yang berikut ini.

top.sls

base:
  '*':
      - common
   'minion1':
      - samples

Di sini state, biasanya applies untuk all system negara, samples berlaku untuk minion1.

Selanjutnya, jalankan master Salt dan terapkan status seperti yang ditunjukkan di bawah ini.

root@saltmaster:/home/vagrant# salt '*' state.apply

Ini akan menghasilkan yang berikut 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

Terapkan Ukuran Batch

Jika Anda memiliki banyak minion yang terhubung, Anda dapat membatasi berapa banyak sistem yang diperbarui sekaligus. Ini dilakukan dengan menggunakan–batch-size opsi, yang ditentukan di bawah ini.

root@saltmaster:/home/vagrant# salt --batch-size 5 '*' state.apply

Ini akan menghasilkan yang berikut 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

Fungsi Negara Garam

Fungsi keadaan garam digunakan untuk menginstal dan mengkonfigurasi aplikasi pada sistem jarak jauh Anda. Mari kita instal paket "Vim" menggunakan fungsi status Salt.

Buat dan Terapkan Fungsi Negara

Buat file bernama "sample.sls" di bawah direktori "salt-vagrant-demo / saltstack / salt / sample.sls" dan tambahkan baris berikut -

sample.sls

install vim:
   pkg.installed:
      - name: vim

Setelah, lingkungan Vagrant sudah aktif, jalankan master garam dan terapkan sample.sls dengan menjalankan perintah berikut.

root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample

Ini akan menghasilkan yang berikut 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

Sekarang, kami telah menambahkan paket "Vim". Mari kita sekarang menguji paket menggunakan metode pengujian Salt.

Pengujian Status Garam

Uji coba diamanatkan dengan menambahkan opsi "test = True" ke status. Informasi pengembalian akan menunjukkan status yang akan diterapkan dengan warna kuning dan hasilnya dilaporkan sebagai 'Tidak Ada'.

Perintah berikut digunakan untuk menguji status -

root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample test = True

Ini akan menghasilkan yang berikut 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 ─ Komponen Pilar

Pilar adalah komponen penting untuk membuat status Salt dapat digunakan kembali. Ini digunakan untuk menentukan data aman untuk antek yang ditugaskan menggunakan target. Data pilar garam menyimpan nilai seperti port, jalur file, parameter konfigurasi, dan kata sandi.

File konfigurasi pilar

Konfigurasi untuk pillar_roots di file konfigurasi utama ditunjukkan di bawah ini -

pillar_roots:
   base:
      - /srv/pillar

Di sini, file tersebut ada di direktori “/ srv / pillar”.

Pertimbangkan, file teratas yang terletak di /srv/pillar/top.sls memiliki struktur berikut -

base:
   '*':
      - default

Sekarang, pindah ke file default.sls yang terletak di /srv/pillar/default.sls dan tambahkan kode berikut.

# Default pillar values
apache
git

Setelah menyimpan file, segarkan pilar untuk memperbarui semua perubahan.

Menyegarkan Pilar

Anda dapat menyegarkan pilar menggunakan perintah berikut.

root@saltmaster:/home/vagrant# salt '*' saltutil.refresh_pillar

Perintah di atas digunakan untuk menyegarkan data pilar Salt di semua minion.

Buat Daftar Data Pilar

Untuk membuat daftar data pilar, Anda dapat menggunakan perintah yang diberikan di bawah ini.

root@saltmaster:/home/vagrant# salt '*' pillar.ls

Ini akan menghasilkan yang berikut output -

minion2:
   - apache
   - git
minion1:
   - apache
   - git

Item Pilar

Setelah pilar diatur, data dapat dilihat pada minion melalui modul pilar. Itu dapat diakses melalui fungsipillar.items, yang dijelaskan di bawah.

root@saltmaster:/home/vagrant# salt '*' pillar.items

Ini akan menghasilkan yang berikut output -

minion2:
   ----------
   apache:
      httpd
   git:
      git
minion1:
   ----------
   apache:
      httpd
   git:
      git

SaltStack - Sertakan Komponen

Komponen 'Include' digunakan untuk menentukan tugas konfigurasi yang sama di banyak tempat. Mudah dilakukan. Di bagian atas file negara Anda, tambahkan penyertaan menggunakan format berikut -

include:
   - state file 1 
   - state file 2

Sini, state file 1 dan state file 2adalah nama file SLS yang ingin Anda sertakan. Tidak perlu menyertakan file.slsperpanjangan. Status Garam yang Disertakan disisipkan di bagian atas file saat ini.

Status File di Subdirectory

Anda dapat menyertakan file status subdirektori menggunakan titik (.). Bertindak sebagai pemisah direktori.

include:
   - dir.sls1

Antarmuka Biji-bijian

Biji-bijian adalah antarmuka yang digunakan untuk memperoleh informasi tentang sistem yang mendasarinya. Butir dikumpulkan untuk sistem operasi, nama domain, alamat IP, kernel, jenis OS, memori, dan banyak properti sistem lainnya.

Penargetan Biji-bijian

Data butir dapat digunakan saat menargetkan antek, yang ditentukan di blok kode berikut.

root@saltmaster:/home/vagrant# salt -G 'os:Ubuntu' test.ping

Ini akan menghasilkan yang berikut output -

minion1:
   True
minion2:
   True

Daftar Biji-bijian

Biji-bijian dapat didaftarkan dengan menggunakan modul 'grains.ls', yang dijelaskan di bawah ini.

root@saltmaster:/home/vagrant# salt '*' grains.ls

Daftar item

Seperti Pillar, data Grains juga dapat didaftarkan dengan menggunakan 'grains.items'.

root@saltmaster:/home/vagrant# salt '*' grains.items