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