Saltstack-working-example
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.sls と highstate の両方を使用してミニオンをターゲットにし、最小限の作業と最大限の柔軟性で必要なソフトウェアをインストールする必要があります。