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