前書き

SaltStackは、強力で柔軟、高性能な構成管理およびリモート実行システムです。 手動メンテナンス手順を最小限に抑えながら、一元化された場所からインフラストラクチャを管理するために使用できます。 SaltStackに関連する用語とツールの詳細については、https://www.digitalocean.com/community/tutorials/an-introduction-to-saltstack-terminology-and-concepts [このガイド]をご覧ください。

この記事では、インフラストラクチャを管理するためのSaltマスターサーバーのセットアップに焦点を当てます。 また、Saltを使用して管理するために、Salt minionデーモンを他のコンピューターにインストールする方法も示します。 これらの手順を示すために、2つのUbuntu 14.04サーバーを使用します。

前提条件

開始するには、少なくとも2つのUbuntu 14.04サーバーインスタンスが必要です。 これらには、 `+ sudo +`特権で設定された非rootユーザーが必要です。 これらのユーザーを作成および構成する方法については、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 [Ubuntu 14.04初期サーバーセットアップガイド]に従ってください。

開始する準備ができたら、 `+ sudo +`ユーザーでソルトマスターとして使用するサーバーにログインします。 最初にこのマシンを構成します。

マスターデーモンをインストールする

Ubuntu 14.04では、Salt masterデーモンをさまざまな方法でインストールできます。 以下は、各方法の長所と短所の簡単な要約です。

  • * Ubuntu SaltStack PPA *:Ubuntuネイティブパッケージ管理ツールを使用して、必要なソフトウェアをインストールおよび更新します。 これが最も簡単なインストール方法ですが、この記事の執筆時点のように、パッケージはかなり古くなっている可能性があります。

  • * Salt-Bootstrap *:このブートストラップスクリプトは、Saltをインストールおよび構成するためのより普遍的な方法を提供しようとします。 利用可能なネイティブソフトウェアツールの使用を試みることができます。つまり、上記のPPAからインストールしようとする可能性があります。 また、Saltの開発バージョンに簡単にアクセスできます。

以下では、Ubuntu PPA方式を使用してインストールする方法の概要を説明します。 また、 `+ salt-bootstrap`スクリプトを使用して、ソルトマスターの安定バージョンと開発バージョンの両方をインストールする方法についての指示も提供します。

どのオプションがあなたのニーズに最も合うかを決めるのはあなた次第です。 問題が発生した場合、開発バージョンでバグ修正が利用できる場合があります。 ただし、新しくリリースされたバグに遭遇する可能性もあります。

公式PPAから安定バージョンをインストールする

Ubuntu PPAからのインストールは、最も簡単なインストール方法です。

開始するには、マスターとして使用するサーバーにSaltStack PPAを追加する必要があります。 これを行うには、次のように入力します。

sudo add-apt-repository ppa:saltstack/salt

PPAの追加を確認すると、システムに追加されます。 内部で利用可能な新しいパッケージのインデックスを作成するには、ローカルパッケージインデックスを更新する必要があります。 その後、関連するソフトウェアをインストールできます。

sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc

上記のコマンドでは、Salt masterデーモンとminionデーモンの両方をインストールしました。 これにより、Saltを使用してマスターサーバーを制御することもできます。 また、 `+ salt-ssh `と ` salt-cloud +`をインストールしました。これにより、リソースへの接続方法と制御方法の柔軟性が高まりました。 ドキュメントパッケージも含まれています。

この時点で、Salt Masterのインストールは完了です。 https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-salt-master-and-minion-servers-on-ubuntu-14-04#initial-master-までスキップしますconfiguration [initial master configuration section]新しいサービスを起動して実行します。

Salt-Bootstrapを使用して安定バージョンをインストールする

PPAを直接使用する代わりに、 `+ salt-bootstrap `スクリプトを使用して安定バージョンをインストールします。 これは、SaltStack Webサイトからダウンロードできます。 上記の方法よりも安定したシステムをインストールするこの方法を選択する理由の1つは、 ` pip +`パッケージマネージャーから依存関係の一部を取得することです。 これにより、いくつかのSalt依存関係の最新バージョンが提供される場合があります。

開始するには、ホームディレクトリまたは書き込み権限がある他の場所に移動します。 + curl +`を使用してブートストラップスクリプトをダウンロードできます。 https://github.com/saltstack/salt-bootstrap [+ salt-bootstrap +` GitHub page]にある指示に従い、わかりやすいように選択した出力名を使用します。

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

この時点で、スクリプトを見て、承認していないことを実行していないことを確認します。

less ~/install_salt.sh

`+ salt-bootstrap +`スクリプトはSaltStackチームによって管理されていますが、実行する前に外部スクリプトの内容を常に確認する必要があります。

実行されるアクションに満足したら、スクリプトを `+ sh `に渡して実行します。 スクリプトが依存ソースとして必要に応じて ` pip `を使用できるように、 ` -P `フラグを使用します。 このフラグがないと、インストールが失敗する可能性があります。 また、Salt masterデーモンがインストールされるように、「-M +」フラグを含める必要があります。 Saltヘルパーユーティリティはすべて自動的に含まれます。

必要なコマンドは次のとおりです。

sudo sh install_salt.sh -P -M

この時点で、Salt Masterのインストールは完了です。 https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-salt-master-and-minion-servers-on-ubuntu-14-04#initial-master-までスキップしますconfiguration [initial master configuration section]新しいサービスを起動して実行します。

Salt-Bootstrapを使用して開発バージョンをインストールする

また、 `+ salt-bootstrap `スクリプトを使用して、 ` git +`を使用してSaltの開発バージョンをインストールすることもできます。 これは、より新しい機能にアクセスするのに役立ち、さらに重要なことには、ソフトウェアのPPAバージョンでは利用できないかもしれないより新しいバグ修正にアクセスするのに役立ちます。

必要なスクリプトは、上で使用したものと同じ `+ salt-bootstrap`スクリプトです。 使用するオプションのみが異なります。 これを念頭に置いて、スクリプトがまだない場合は、ホームディレクトリにダウンロードします。

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

繰り返しますが、スクリプトを見て、実行する操作に問題がないことを確認してください。

less ~/install_salt.sh

満足したら、スクリプトを `+ sh `に渡して実行できます。 ` -P `フラグを含めて、必要に応じて ` pip `で依存関係を取得するようスクリプトに指示します。 Saltマスターをインストールすることを指定するために、 ` -M `フラグが含まれています。 コマンドを「 git developer +」で終了して、スクリプトにhttps://github.com/saltstack/salt[SaltStack GitHub repo]を使用してUbuntu PPAの代わりに最新の開発バージョンをインストールすることを伝えます。

必要なコマンドは次のとおりです。

sudo sh install_salt.sh -P -M git develop

この時点で、Salt Masterのインストールは完了です。 次に、新しいサービスを起動して実行するためにマスターを構成します。

初期マスター構成

次に、Saltマスターを構成する必要があります。

ソルトディレクトリ構造を作成する

最初に、Saltマスターがさまざまなファイルを検索する構成管理ディレクトリ構造を作成します。 これらはすべてデフォルトで + / srv +`ディレクトリの下にあります。 開始するには、 `+ / srv / salt`と + / srv / pillar`が必要です。 次のように入力して、今すぐ作成します。

sudo mkdir -p /srv/{salt,pillar}

ソルトマスター構成の変更

次に、Saltマスター構成ファイルを調整します。 テキストエディタで `+ sudo +`権限でファイルを開きます。

sudo nano /etc/salt/master

最初に行うことは、 `+ file_roots `辞書を設定することです。 これは基本的に、Saltマスターが構成管理の指示を探す場所を指定します。 ` base `はデフォルトの環境を指定します。 前に作成した2つのディレクトリがこの目的に使用されます。 ` / srv / salt `は管理者が作成した指示に使用され、 ` / srv / formulas +`は外部ソースからダウンロードされた事前にパッケージ化された設定用に確保されます。

/ etc / salt / master

file_roots:
 base:
   - /srv/salt
   - /srv/formulas

Note

次に、ソルトピラー構成のルートディレクトリを設定します。 これは上記の構成と非常によく似ており、作成した3番目のディレクトリを使用します。

/ etc / salt / master

pillar_roots:
 base:
   - /srv/pillar

この時点でマスター用に設定する必要があるのはこれだけです。 完了したら、ファイルを保存して閉じます。

Salt Minion構成の変更

また、このマシンにソルトミニオンデーモンをインストールしたため、他のインフラストラクチャポリシーと一致させることができます。 次に、 `+ sudo +`権限でソルトミニオンの設定を開きます。

sudo nano /etc/salt/minion

必要な変更は、このミニオンが接続するマスターを指定することだけです。 この場合、ミニオンは同じマシンで実行されているマスタープロセスに接続する必要があります。 ミニオンが正しく接続するために、ローカルループバックアドレス「127.0.0.1」に等しい「+ master +」キーを設定します。

/ etc / salt / minion

master:

完了したら、ファイルを保存して閉じます。

プロセスを再起動する

次に、新しい構成を使用するために、Salt masterデーモンとminionデーモンの両方を再起動する必要があります。

sudo restart salt-master
sudo restart salt-minion

両方のデーモンは、ここで説明した構成変更を考慮して再起動します。

ミニオンキーを受け入れる

再起動後、Salt minionデーモンは自動的に認証情報を使用してSaltマスターに接続しました。 管理者は、通信を許可するためにミニオンのキーを確認して受け入れる必要があります。

Saltマスターが知っているすべてのキーをリストすることから始めます。

sudo salt-key --list all

このようなものが表示されるはずです。 以下の「++」は、システムのソルトミニオンIDと一致する必要があります。 これは通常、サーバーのホスト名です。

OutputAccepted Keys:
Denied Keys:
Unaccepted Keys:

Rejected Keys:

ご覧のとおり、ソルトミニオンはそのキーをマスターに送信しましたが、まだ受け入れられていません。 セキュリティのため、キーを受け入れる前に、2つのコマンドを実行します。

この出力を確認する必要があります(これにより、Saltミニオンが生成したキーのフィンガープリントがわかります)。

sudo salt-call key.finger --local
Outputlocal:

ここで見つかった指紋(Saltマスターが受け入れるように求められているキーの指紋)と一致します。 ここでミニオンIDを置き換えます:

sudo salt-key -f
OutputUnaccepted Keys:
saltmaster:

これらの値が同じであることを確認したら、次のように入力してキーを受け入れます。

sudo salt-key -a

キーを受け入れると、キーが「受け入れられたキー」セクションに移動したことがわかります。

sudo salt-key --list all
OutputAccepted Keys:

Denied Keys:
Unaccepted Keys:
Rejected Keys:

これで、次のように入力して、ソルトマスタープロセスとミニオンプロセスが正しく通信していることをテストできます。

sudo salt '*' test.ping

ヘルスチェックが成功したことを示すメッセージが返されます。

Output:
   True

これで、Saltマスターサーバーが構成されました。 追加のソルトミニオンサーバーのセットアップ方法のデモンストレーションに進むことができます。

別のミニオンをインストールする

これで、Saltマスターサーバーがスムーズに稼働するようになったので、新しいサーバーをミニオンとしてSaltの制御下に置く方法を示すことができます。

繰り返しますが、必要なソフトウェアをインストールする方法は複数ありますが、マスターサーバーに使用する方法と一致させる必要があります。 これにより、ソルトマスターとミニオンのバージョンが一致しないようになります。 マスターサーバーよりも最新のソルトミニオンは、予期しない動作をする場合があります。

準備ができたら、 `+ sudo +`ユーザーで2番目のサーバーにログインします。

公式PPAからステーブルマスターをインストールする

SaltStack PPAからSaltマスターサーバーをインストールした場合、Ubuntuミニオンサーバーに同じPPAを追加できます。

sudo add-apt-repository ppa:saltstack/salt

今回は、 `+ salt-minion +`実行可能ファイルをインストールするだけです。 PPAを追加した後、ローカルパッケージインデックスを更新し、次のように入力してソフトウェアをインストールします。

sudo apt-get update
sudo apt-get install salt-minion

Salt-Bootstrapを使用して安定バージョンをインストールする

`+ salt-bootstrap +`を使用して安定バージョンをインストールした場合、同じスクリプトをミニオンマシンにダウンロードできます。

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

Saltマスターで行ったのとほぼ同じ方法でスクリプトを呼び出します。 唯一の違いは、マスターツールとデーモンをインストールする必要がないため、「+-M +」フラグを省略したことです。

sudo sh install_salt.sh -P

Salt-Bootstrapを使用して開発バージョンをインストールする

`+ salt-bootstrap +`を使用して現在の開発バージョンをSaltマスターにインストールした場合、同じスクリプトを使用してコンパニオンミニオンプロセスをインストールできます。 次のように入力して、ミニオンにダウンロードします。

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

ミニオンをインストールするために必要なコマンドは、マスターで使用したコマンドとほぼ同じです。 唯一の違いは、Salt masterツールとデーモンが不要であることを示すために、「+-M +」フラグを省略していることです。

sudo sh install_salt.sh -P git develop

完了したら、先に進み、ミニオンインスタンスを構成します。

Minionを構成する

ミニオンがインストールされたので、先に進み、ソルトマスターと通信するように構成します。

ソルトマスターの公開キーフィンガープリントを取得する

始める前に、ソルトマスターのキーフィンガープリントを取得する必要があります。 これをミニオン構成に追加して、セキュリティを強化できます。

Saltマスターサーバーで、次を入力します。

sudo salt-key -F master

出力は次のようになります。

OutputLocal Keys:
master.pem:  12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97
master.pub:
Accepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

「Local Keys」セクションの下にある「+ master.pub +」キーの値は、探している指紋です。 この値をコピーして、Minion構成で使用します。

Minion構成の変更

新しいSaltミニオンに戻り、 `+ sudo +`権限でミニオン設定ファイルを開きます。

sudo nano /etc/salt/minion

Saltマスターを見つけることができる場所を指定する必要があります。 これは、解決可能なDNSドメイン名またはIPアドレスのいずれかです。

/ etc / salt / minion

master:

次に、 `+ master_finger +`オプションを少し前にSaltマスターからコピーした指紋値に設定します:

/ etc / salt / minion

master_finger: ''

完了したら、ファイルを保存して閉じます。

次に、Salt minionデーモンを再起動して、新しい構成の変更を実装します。

sudo restart salt-minion

新しいミニオンは、指定された住所のソルトマスターサービスに連絡する必要があります。 次に、マスターが受け入れるためにキーを送信します。 キーを安全に検証するには、新しいミニオンサーバーでキーフィンガープリントを確認する必要があります。

これを行うには、次を入力します。

sudo salt-call key.finger --local

次のような出力が表示されます。

Outputlocal:

マスターサーバーが受信したキーフィンガープリントがこの値と一致することを確認する必要があります。

ソルトマスターでミニオンキーを受け入れます

Saltマスターサーバーに戻り、キーを受け入れる必要があります。

最初に、受け入れられていないキーがマスターで待機していることを確認します。

sudo salt-key --list all

新しいミニオンに関連付けられている「許可されていないキー」セクションに新しいキーが表示されます。

OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:

Rejected Keys:

新しいキーの指紋を確認します。 「未承認のキー」セクションに表示されるミニオンIDを使用して、以下の強調表示された部分を変更します。

sudo salt-key -f

出力は次のようになります。

OutputUnaccepted Keys:
saltminion:

これが `+ salt-call +`コマンドを発行したときにミニオンから受け取った値と一致する場合、次のように入力してキーを安全に受け入れることができます。

sudo salt-key -a

これで、キーが[Accepted Keys]セクションに追加されます。

sudo salt-key --list all
OutputAccepted Keys:
saltmaster

Denied Keys:
Unaccepted Keys:
Rejected Keys:

次のように入力して、新しいミニオンにコマンドを送信できることをテストします。

sudo salt '*' test.ping

設定した両方のミニオンデーモンから返事を受け取るはずです。

Outputsaltminion:
   True
saltmaster:
   True

結論

これで、インフラストラクチャを制御するように塩のマスターサーバーを構成する必要があります。 また、新しいミニオンサーバーをセットアップするプロセスも説明しました。 追加のソルトミニオンについても同じ手順を実行できます。 これらは、Salt管理の新しいインフラストラクチャをセットアップするために必要な基本的なスキルです。