SaltStack - Zarządzanie konfiguracją
Zarządzanie konfiguracją jest jedną z najważniejszych koncepcji w SaltStack. Służy do tworzenia szablonu konfiguracji wielokrotnego użytku o nazwiestate. Stan opisuje wszystko, co jest wymagane do umieszczenia komponentu systemu lub aplikacji w znanej konfiguracji.
Stan soli
Stan soli to konfiguracja wielokrotnego użytku dla określonej części systemu. Stany są łatwiejsze do zrozumienia i opisania za pomocą prostego YAML.
Utwórz stan soli
Stany solne są łatwe do wytworzenia. Stwórzmy w tym rozdziale prosty stan. Przejdź do katalogu „salt-vagrant-demo / saltstack / salt /” i utwórz plik o nazwiesamples.sls i dodaj w nim następujące wiersze.
samples.sls
install_network_packages:
pkg.installed:
- pkgs:
- rsync
- lftp
- curl
Teraz zapisz plik i uruchom następujące polecenie w wzorcu soli.
root@saltmaster:/home/vagrant# salt 'minion1’ state.apply samples
Tutaj zainstalowaliśmy rsync, lftp i curl przez pkg.installed moduł wykorzystujący stan Salt w solnym stronniku, minion1. Jeśli działa poprawnie, możesz zobaczyć odpowiedź, jak pokazano poniżej.
Spowoduje to, co następuje 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
Zastosuj stan soli
Teraz, gdy stworzyliśmy stan przy użyciu pliku „.sls” i zastosowaliśmy go, wywołując go. Salt ma domyślny plik stanu o nazwietop.slsplik. Górny plik służy do stosowania wielu plików stanu do sługusów soli. Najwyższy plik opisuje, gdzie należy zastosować stany. Dobrze,States i Top file współpracować, aby stworzyć rdzeń możliwości zarządzania konfiguracją SaltStack.
Utwórzmy teraz w katalogu prosty plik top.sls saltstack/salt i dodaj następujące elementy.
top.sls
base:
'*':
- common
'minion1':
- samples
Tutaj state, powszechnie applies do all system stan, samples dotyczy minion1.
Następnie uruchom wzorzec soli i zastosuj stan, jak pokazano poniżej.
root@saltmaster:/home/vagrant# salt '*' state.apply
Spowoduje to, co następuje 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
Zastosuj rozmiar partii
Jeśli masz dużą liczbę połączonych stronników, możesz ograniczyć liczbę aktualizowanych systemów naraz. Odbywa się to za pomocą–batch-size opcja, która jest zdefiniowana poniżej.
root@saltmaster:/home/vagrant# salt --batch-size 5 '*' state.apply
Spowoduje to, co następuje 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
Funkcje stanu soli
Funkcje stanu soli służą do instalowania i konfigurowania aplikacji w systemie zdalnym. Zainstalujmy pakiet „Vim” używając funkcji stanu Salt.
Utwórz i zastosuj funkcję stanu
Utwórz plik o nazwie „sample.sls” w katalogu „salt-vagrant-demo / saltstack / salt / sample.sls” i dodaj:
sample.sls
install vim:
pkg.installed:
- name: vim
Gdy środowisko Vagrant jest już gotowe, uruchom solankę i zastosuj plik sample.sls, uruchamiając następujące polecenie.
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample
Spowoduje to, co następuje 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
Teraz dodaliśmy pakiet „Vim”. Przetestujmy teraz opakowanie metodą testowania soli.
Badanie stanu soli
Uruchomienie testowe jest wymagane przez dodanie opcji „test = True” do stanów. Informacje zwrotne będą zawierać stany, które zostaną zastosowane, na żółto, a wynik zostanie zgłoszony jako „Brak”.
Następujące polecenie służy do testowania stanu -
root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample test = True
Spowoduje to, co następuje 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 Component
Filar jest niezbędnym składnikiem umożliwiającym wielokrotne użycie soli. Służy do definiowania bezpiecznych danych dla sługusów przypisanych za pomocą celów. Dane filaru soli przechowują wartości, takie jak porty, ścieżki plików, parametry konfiguracyjne i hasła.
Plik konfiguracyjny filaru
Konfiguracja dla pillar_roots w głównym pliku konfiguracyjnym pokazano poniżej -
pillar_roots:
base:
- /srv/pillar
Tutaj plik znajduje się w katalogu „/ srv / pillar”.
Rozważmy, że najwyższy plik znajdujący się w /srv/pillar/top.sls ma następującą strukturę -
base:
'*':
- default
Teraz przejdź do pliku default.sls znajdującego się w /srv/pillar/default.sls i dodaj następujący kod.
# Default pillar values
apache
git
Po zapisaniu pliku odśwież filar, aby zaktualizować wszystkie zmiany.
Odświeżenie filaru
Możesz odświeżyć filar, używając następującego polecenia.
root@saltmaster:/home/vagrant# salt '*' saltutil.refresh_pillar
Powyższe polecenie służy do odświeżania danych kolumny solnej wszystkich stworów.
Lista danych filarów
Aby wyświetlić dane filarów, możesz użyć polecenia podanego poniżej.
root@saltmaster:/home/vagrant# salt '*' pillar.ls
Spowoduje to, co następuje output -
minion2:
- apache
- git
minion1:
- apache
- git
Elementy filarów
Po ustawieniu kolumny dane można wyświetlić na stworze za pośrednictwem modułu kolumny. Można uzyskać do niego dostęp za pomocą funkcjipillar.items, który jest zdefiniowany poniżej.
root@saltmaster:/home/vagrant# salt '*' pillar.items
Spowoduje to, co następuje output -
minion2:
----------
apache:
httpd
git:
git
minion1:
----------
apache:
httpd
git:
git
SaltStack - Uwzględnij komponent
Komponent „Uwzględnij” służy do definiowania tego samego zadania konfiguracyjnego w wielu miejscach. Jest łatwy do wykonania. U góry pliku stanu dodaj dołączenie, używając następującego formatu -
include:
- state file 1
- state file 2
Tutaj, state file 1 i state file 2to nazwy plików SLS, które chcesz dołączyć. Nie ma potrzeby dołączania.slsrozbudowa. Stany dołączonej soli są wstawiane na początku bieżącego pliku.
Plik stanu w podkatalogu
Możesz dołączyć plik stanu podkatalogów za pomocą kropki (.). Działa jako separator katalogów.
include:
- dir.sls1
Interfejs ziaren
Ziarna to interfejs używany do uzyskiwania informacji o systemie bazowym. Zbierane są dane dotyczące systemu operacyjnego, nazwy domeny, adresu IP, jądra, typu systemu operacyjnego, pamięci i wielu innych właściwości systemu.
Kierowanie na ziarna
Dane ziarna mogą być używane podczas kierowania na miniony, które są zdefiniowane w poniższym bloku kodu.
root@saltmaster:/home/vagrant# salt -G 'os:Ubuntu' test.ping
Spowoduje to, co następuje output -
minion1:
True
minion2:
True
Lista zbóż
Ziarna można wyświetlić za pomocą modułu „grains.ls”, który został zdefiniowany poniżej.
root@saltmaster:/home/vagrant# salt '*' grains.ls
Lista przedmiotów
Podobnie jak Pillar, dane o ziarnach można również wyszczególnić za pomocą „grains.items”.
root@saltmaster:/home/vagrant# salt '*' grains.items