SaltStack - przykład roboczy

W tym przykładzie roboczym utworzymy formułę Salt, która skonfiguruje serwer WWW Apache wraz z oprogramowaniem PHP. Sól to świetny sposób wykonywania poleceń ad-hoc, ale tak naprawdę nie chcesz ciągle konfigurować infrastruktury w ten sposób. Tworząc zestaw formuł soli, możesz niezawodnie odtworzyć dowolną konfigurację.

Formuły soli są prostymi plikami tekstowymi YAML i domyślnie znajdują się w twoim Salt Master w formacie /srv/salt/*. Zacznijmy od stworzenia Formuły soli, aby zainstalować serwer WWW Apache i PHP w tym samym czasie.

Utwórz plik o nazwie „websetup.sls” w obszarze /srv/salt/ katalog i dodaj następujący kod.

websetup.sls

websetup:
   pkg:
      - installed
      - pkgs:
         - apache2
         - php5
         - php5-mysql

W tym przykładzie zwróć uwagę na argument „- pkgs:”. Każda pozycja na liście poniżej „- pkgs:” zostanie przekazana razem do menedżera pakietów systemu operacyjnego w celu zainstalowania razem. Jeśli masz dużą listę pakietów do zainstalowania, jest to najbardziej efektywny sposób ich zainstalowania.

Zastosuj tę formułę do wzorca soli za pomocą następującego polecenia.

root@saltmaster:/home/vagrant# salt 'minion2' state.sls websetup

Teraz zobaczysz następujące informacje output -

minion2:
----------
   ID: websetup
   Function: pkg.installed
   Result: True
   Comment: 3 targeted packages were installed/updated.
   Started: 01:50:53.978396
   Duration: 86738.132 ms
   Changes:
      ----------
         apache2:
            ----------
            new:
               2.4.7-1ubuntu4.13
            old:
         apache2-api-20120211:
            ----------
            new:
               1
            old:
         apache2-bin:
            ----------
            new:
               2.4.7-1ubuntu4.13
            old:
         apache2-data:
            ----------
            new:
               2.4.7-1ubuntu4.13
            old:
         libapache2-mod-php5:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         libapr1:
            ----------
            new:
               1.5.0-1
            old:
         libaprutil1:
            ----------
            new:
               1.5.3-1
            old:
         libaprutil1-dbd-sqlite3:
            ----------
            new:
               1.5.3-1
            old:
         libaprutil1-ldap:
            ----------
            new:
               1.5.3-1
            old:
         php5:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         php5-cli:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         php5-common:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         php5-json:
            ----------
            new:
               1.3.2-2build1
            old:
         php5-mhash:
            ----------
            new:
               1
            old:
         php5-mysql:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         php5-readline:
            ----------
            new:
               5.5.9+dfsg-1ubuntu4.21
            old:
         phpapi-20121212:
            ----------
            new:
               1
            old:
         ssl-cert:
            ----------
            new:
               1.0.33
            old:
Summary for minion2
------------
Succeeded: 1 (changed = 1)
Failed:    0
------------ 
Total states run:     1
Total run time:  86.738 s

Teraz masz zainstalowane pakiety w minion2.

Highstate

„Wysoki stan” to sposób na określenie przez Sól, które formuły soli powinny być zastosowane do określonego stronnika. Wykonaj „wysoki stan” za pomocą następującego polecenia.

root@saltmaster:/home/vagrant# salt <targets> state.highstate

top.sls

Kiedy stronnik żąda wykonania highstate, jak wspomniano wcześniej, stronnik żąda top.sls od mistrza soli i szuka formuł, które pasuje. Domyślnie ten plik znajduje się w /srv/salt/top.sls. Dodajmy naszą formułę do pliku top.sls i ustawmy minion2 jako cel.

base:
   '*':
      - common
   'minion2’:
      - websetup

Teraz wykonaj highstate celowanie w minion2, jak pokazano poniżej.

root@saltmaster:/home/vagrant# salt 'minion2' state.highstate

Po zastosowaniu tego możesz zobaczyć następujące output -

minion2:
----------
   ID: common_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 01:55:17.998824
   Duration: 461.615 ms
   Changes:

Summary for minion2
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 461.615 ms

Teraz serwer WWW Apache i PHP są zainstalowane w minion2. W ten sposób musimy celować w stwory używające obutop.sls i highstate i zainstaluj wymagane oprogramowanie przy minimalnej pracy i maksymalnej elastyczności.