序章

SaltStackは、強力で柔軟性があり、パフォーマンスの高い構成管理およびリモート実行システムです。 手動のメンテナンス手順を最小限に抑えながら、一元化された場所からインフラストラクチャを管理するために使用できます。 SaltStackに関連するいくつかの用語とツールの詳細については、このガイドをご覧ください。

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

前提条件

開始するには、少なくとも2つのUbuntu14.04サーバーインスタンスが必要です。 これらには、root以外のユーザーがで構成されている必要があります sudo 特権。 Ubuntu 14.04初期サーバーセットアップガイドに従って、これらのユーザーを作成および構成する方法を学ぶことができます。

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

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

Saltマスターデーモンは、Ubuntu14.04にさまざまな方法でインストールできます。 以下は、各方法の長所と短所の簡単な要約です。

  • Ubuntu SaltStack PPA :Ubuntuネイティブパッケージ管理ツールを使用して、必要なソフトウェアをインストールおよび更新します。 これはインストールの最も簡単な方法ですが、この記事の執筆時点の場合と同様に、パッケージは大幅に古くなっている可能性があります。
  • Salt-Bootstrap :このブートストラップスクリプトは、Saltをインストールおよび構成するためのより普遍的な方法を提供しようとします。 利用可能なネイティブソフトウェアツールの使用を試みることができます。つまり、上記のPPAからのインストールを試みる可能性があります。 また、Saltの開発バージョンに簡単にアクセスできます。

以下では、UbuntuPPA方式を使用してインストールする方法の概要を説明します。 また、使用方法についても説明します。 salt-bootstrap Saltマスターの安定版と開発版の両方をインストールするためのスクリプト。

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

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

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

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

  1. sudo add-apt-repository ppa:saltstack/salt

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

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

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

この時点で、Saltマスターのインストールは完了です。 初期マスター構成セクションにスキップして、新しいサービスを稼働させます。

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

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

開始するには、ホームディレクトリまたは書き込み権限のある別の場所に移動します。 使用できます curl ブートストラップスクリプトをダウンロードします。 salt-bootstrap GitHubページにある手順に従い、わかりやすくするために選択した出力名を使用します。

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

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

  1. less ~/install_salt.sh

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

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

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

  1. sudo sh install_salt.sh -P -M

この時点で、Saltマスターのインストールは完了です。 初期マスター構成セクションにスキップして、新しいサービスを稼働させます。

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

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

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

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

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

  1. less ~/install_salt.sh

満足したら、スクリプトをに渡すことができます sh それを実行します。 含まれます -P 依存関係を取得するようにスクリプトに指示するフラグ pip 必要であれば。 The -M ソルトマスターをインストールすることを指定するフラグが含まれています。 コマンドをで終了します git develop SaltStack GitHubリポジトリを使用して、UbuntuPPAの代わりに最新の開発バージョンをインストールすることをスクリプトに通知します。

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

  1. sudo sh install_salt.sh -P -M git develop

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

初期マスター構成

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

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

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

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

ソルトマスター構成を変更する

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

  1. sudo nano /etc/salt/master

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

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

ノート

指定された形式を正確に複製することが重要です。 SaltはYAMLスタイルの構成ファイルを使用します。 これらは、デーモンが値を正しく解釈するために、間隔とインデントに厳密な注意を払う必要があります。

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

/ etc / salt / master
pillar_roots:
  base:
    - /srv/pillar

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

ソルトミニオン構成を変更する

また、このマシンにSalt minionデーモンをインストールして、他のインフラストラクチャポリシーに沿った状態に保つことができるようにしました。 ソルトミニオン構成を次のように開きます sudo 次の特権:

  1. sudo nano /etc/salt/minion

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

/ etc / salt / minion
master: 127.0.0.1

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

プロセスを再開します

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

  1. sudo restart salt-master
  2. sudo restart salt-minion

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

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

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

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

  1. sudo salt-key --list all

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

Output
Accepted Keys: Denied Keys: Unaccepted Keys: saltmaster Rejected Keys:

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

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

  1. sudo salt-call key.finger --local
Output
local: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

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

  1. sudo salt-key -f saltmaster
Output
Unaccepted Keys: saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

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

  1. sudo salt-key -a saltmaster

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

  1. sudo salt-key --list all
Output
Accepted Keys: saltmaster Denied Keys: Unaccepted Keys: Rejected Keys:

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

  1. sudo salt '*' test.ping

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

Output
saltmaster: True

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

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

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

繰り返しになりますが、必要なソフトウェアをインストールする方法は複数ありますが、マスターサーバーで使用されている方法と一致する必要があります。 これにより、Saltマスターとミニオンの間にバージョンの不一致がなくなります。 マスターサーバーよりも最新のソルトミニオンは、予測できない動作を示す可能性があります。

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

公式PPAからStableMasterをインストールします

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

  1. sudo add-apt-repository ppa:saltstack/salt

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

  1. sudo apt-get update
  2. sudo apt-get install salt-minion

これで、Saltminionがインストールされます。 ミニオンの設定のセクションに進んでください。

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

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

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

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

  1. sudo sh install_salt.sh -P

これで、Saltminionがインストールされます。 ミニオンの設定のセクションに進んでください。

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

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

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

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

  1. sudo sh install_salt.sh -P git develop

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

ミニオンを構成する

ミニオンがインストールされたので、Saltマスターと通信するように設定できます。

ソルトマスターの公開鍵の指紋を取得する

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

Saltマスターサーバーで、次のように入力します。

  1. sudo salt-key -F master

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

Output
Local Keys: master.pem: 12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97 master.pub: 7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92 Accepted Keys: saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

の値 master.pub 「ローカルキー」セクションの下にあるキーは、私たちが探している指紋です。 この値をコピーして、Minion構成で使用します。

ミニオン構成を変更する

新しいSaltミニオンに戻り、ミニオン構成ファイルを次のように開きます。 sudo 特権:

  1. sudo nano /etc/salt/minion

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

/ etc / salt / minion
master: ip_of_salt_master

次に、 master_finger 少し前にSaltマスターからコピーした指紋値のオプション:

/ etc / salt / minion
master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'

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

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

  1. sudo restart salt-minion

新しいミニオンは、提供されたアドレスのソルトマスターサービスに連絡する必要があります。 次に、マスターが受け入れるためのキーを送信します。 キーを安全に確認するには、新しいミニオンサーバーでキーの指紋を確認する必要があります。

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

  1. sudo salt-call key.finger --local

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

Output
local: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

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

ソルトマスターのミニオンキーを受け入れる

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

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

  1. sudo salt-key --list all

新しいミニオンに関連付けられている[未承認のキー]セクションに新しいキーが表示されます。

Output
Accepted Keys: saltmaster Denied Keys: Unaccepted Keys: saltminion Rejected Keys:

新しいキーのフィンガープリントを確認します。 以下の強調表示された部分を、「受け入れられないキー」セクションに表示されるミニオンIDで変更します。

  1. sudo salt-key -f saltminion

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

Output
Unaccepted Keys: saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

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

  1. sudo salt-key -a saltminion

これで、キーが「承認されたキー」セクションに追加されます。

  1. sudo salt-key --list all
Output
Accepted Keys: saltmaster saltminion Denied Keys: Unaccepted Keys: Rejected Keys:

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

  1. sudo salt '*' test.ping

構成した両方のミニオンデーモンから返信が返ってきます。

Output
saltminion: True saltmaster: True

結論

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