Saltstack-working-example

提供:Dev Guides
移動先:案内検索

SaltStack-作業例

この実際の例では、PHPソフトウェアとともにApache Webサーバーを構成するSalt式を作成します。 Saltはアドホックコマンドを実行するための優れた方法ですが、このようにインフラストラクチャを継続的に構成することは望ましくありません。 ソルト式のセットを作成することにより、設定を確実に再現できます。

ソルトフォーミュラは単純なYAMLテキストファイルであり、デフォルトではソルトマスターの /srv/salt/ *に存在します。 Apache WebサーバーとPHPを同時にインストールするSalt Formulaを作成することから始めましょう。

*/srv/salt/* ディレクトリの下に「websetup.sls」という名前のファイルを作成し、次のコードを追加します。

websetup.sls

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

この例では、「-pkgs:」引数に注意してください。 「-pkgs:」の下のリストの各アイテムは、一緒にインストールされるOSのパッケージマネージャーに渡されます。 インストールするパッケージのリストが大きい場合は常に、これが最も効率的なインストール方法です。

次のコマンドを使用して、この式をソルトマスターに適用します。

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

今、あなたは次の*出力*が表示されます-

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

これで、 minion2 にパッケージがインストールされました。

ハイステート

「ハイステート」とは、Saltが特定のミニオンに適用する塩の式を決定する方法です。 次のコマンドを使用して「highstate」を実行します。

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

top.sls

前述のように、ミニオンがhighstateの実行を要求すると、ミニオンはソルトマスターにtop.slsを要求し、一致する式を検索します。 デフォルトでは、このファイルは/srv/salt/top.slsにあります。 top.slsファイルに式を追加し、minion2をターゲットとして設定しましょう。

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

次に、以下に示すようにminion2をターゲットとする highstate を実行します。

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

これを適用すると、次の 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

これで、Apache WebサーバーとPHPがminion2にインストールされました。 このように、 top.slshighstate の両方を使用してミニオンをターゲットにし、最小限の作業と最大限の柔軟性で必要なソフトウェアをインストールする必要があります。