インフラストラクチャに Salt をインストールし、その一環として Salt マスター サービスと Salt ミニオン サービスをインストールする必要があります。

最小の条件として、SaltStack Config の標準インストール シナリオで使用されるノードに Salt とその依存関係がインストールされている必要があります。

SaltStack Config で管理するすべてのインフラストラクチャに、Salt を事前にインストールすることを推奨します。Salt をインストールすると、Salt の今後のバージョンに更新するときのプロセスが簡素化および効率化されます。SaltStack Config のインストールを開始する前に、Salt をインフラストラクチャにインストールし、一定期間監視して、安定して想定どおりに実行されるか確認することを検討してください。

次のガイドを参照して、Salt をインフラストラクチャに実装する際のベスト プラクティスに従っている環境であることを確認してください。

マシンに SaltStack Config の標準インストールの準備を行うには、Salt および Python をインストールまたはアップグレードする必要があります。インストールに関係するすべてのノードに Salt と Python が配置され、最新状態になっている必要があります。Salt とともにインストーラの依存関係がノードにインストールされていない場合、インストールは失敗します。

Salt マスターへの Salt のインストール

標準インストールでは、Salt マスター サービスとミニオン サービスの両方を Salt マスター ホストにインストールする必要があります。

この手順では、最新の Salt リリースを Redhat/Centos 7 PY3 にインストールします。マシンで別のオペレーティング システム、または異なるバージョンの Python が実行されている場合、スクリプトは動作しません。Salt を別のオペレーティング システムまたは異なるバージョンの Python にインストールする方法については、 Salt インストール ガイドを参照してください。
注: CentOS 7 では、デフォルトで Salt マスターへの接続がブロックされます。接続を許可するファイアウォール ルールを作成する必要があります。
  • firewall-cmd --permanent --zone=public --add-port=4505-4506/tcp
  • firewall-cmd --reload
詳細については、 Salt 用にファイアウォールを開くを参照してください。
  1. Salt プロジェクト リポジトリとキーをインストールします。
    sudo yum install https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest.el7.noarch.rpm
  2. キャッシュをクリアします。
    sudo yum clean expire-cache
  3. Salt マスター ノードに Salt マスター サービスとミニオン サービスをインストールします。
    sudo yum install salt-master
    sudo yum install salt-minion
  4. /etc/salt/minion.d ディレクトリ内に master.conf ファイルを作成します。このファイルで、自身を指すように Salt マスターの IP アドレスを設定します。
    master: localhost
  5. Salt マスター サービスとミニオン サービスを開始します。
    sudo systemctl start salt-master
    sudo systemctl enable salt-minion
    sudo systemctl start salt-minion

    必要に応じて、service salt-minion restart を使用してミニオンを再起動します。

Salt ミニオンへの Salt のインストール

前のセクションの説明どおりに Salt を Salt マスターにインストールした後、次の手順として、RaaS、Redis データベース、PostgreSQL データベースになる 3 台のノードにミニオン サービス(マスター サービスではなく)をインストールします。

次に、Salt マスターと通信するようにミニオンを構成する必要があります。ミニオン サービスのインストールの詳細については、Salt ドキュメントのMinion Configurationを参照してください。

ミニオン サービスをインストールするには、次の手順に従います。

  1. 次のコマンドを実行して ミニオン サービスのみをインストールします。
    sudo yum install salt-minion
  2. すべてのプロンプトに対して y と応答して、すべての変更を受け入れます。
  3. /etc/salt/minion.d ディレクトリ内に master.conf ファイルを作成して、各ミニオンが Salt マスターと通信するように構成します。このファイルで、Salt マスターの IP アドレスを指定します。例:
    master: 192.0.2.1
  4. ミニオン サービスを開始します。
    sudo systemctl enable salt-minion
    sudo systemctl start salt-minion

    必要に応じて、service salt-minion restart を使用してミニオンを再起動します。

  5. 残りのすべてのノードについて、前の手順を繰り返します。

マスターでのミニオン キーの受け入れ

これで、Salt マスター サービスとミニオン サービスがインストールされ、Salt マスターの IP アドレスがミニオンに設定されました。次は、Salt マスターがミニオンにコマンドを送信できるように、Salt マスターでミニオン キーを受け入れます。

最初に、次の手順に従います。

  • Salt マスター サービスが有効で、開始されていることを確認します。
  • ミニオンがすべてのノードで有効で、起動していることを確認します。

キーを受け入れるには、次の手順に従います。

  1. Salt マスターのターミナルで、Salt マスター上のすべてのキーを一覧表示します。
    salt-key -L
  2. すべてのミニオン ID が Unacceptedkeys に一覧表示されていることを確認します。

    Acceptedkeys にミニオン ID が表示されていれば、現時点でこれ以上のアクションは不要です。

  3. <your-minion-id> を実際のネットワークの ID に置き換えて次のコマンドを使用し、各ミニオン ID を受け入れます。
    salt-key -a <your-minion-ID>

    salt-key-A を実行すると、すべてのキーが受け入れられます。

  4. すべてのプロンプトに y と応答します。
  5. salt-key-L コマンドをもう 1 回実行して、すべてのミニオンが Acceptedkeys に表示されていることを確認します。

エアギャップ環境のシステムへの Salt のインストール

Salt を事前にインストールするという一般的な推奨事項に対する例外の 1 つは、エアギャップ環境のシステムに SaltStack Config をインストールする場合です。エアギャップ環境のシステム内のインフラストラクチャに Salt をインストールすることにはトレードオフが伴うため、注意が必要です。

SaltStack Config インストーラを実行すると、Salt の最新の安定したバージョンをインストールできます。ただし、SaltStack Config インストーラによってインストールされる Salt のバージョンは、Salt Crystal パッケージと呼ばれます。このパッケージは主に、インターネット経由で Salt を更新できない、エアギャップ環境のシステムで使用することを目的としています。エアギャップ環境のシステムでの使用が意図されているため、Salt Crystal パッケージ内の Salt のバージョンはインターネット経由では更新できず、手動で更新する必要があります。Salt Crystal パッケージの更新の詳細については、Upgrading Salt Crystalを参照してください。

インターネット経由で Salt を定期的に更新できないことは、エアギャップ環境のネットワークでは問題になる可能性があります。このため、Salt Crystal パッケージを使用するのではなく、Salt を事前にインストールすることを推奨します。