web-dev-qa-db-ja.com

SaltStack:マスターに状態を適用することは可能ですか?その場合、どのようにですか?

私はSaltStackの初心者ですが、マシンでいくつかの状態を設定し、それらをミニオンで実行することができました。

私が今持っているのは、salt-masterを使用したDebianマシンのセットアップと、salt-minionとしての別のDebianセットアップです。

ソルトマスターを開発機としても使っているので、どういうわけかマスター自体にも状態を適用できるか知りたいです。もしそうなら、どのように?

マスターに状態を適用するために実行できるコマンドはありますか? (これまで私はそれを見つけることができませんでした)

同じマシンにsalt-minionをインストールして、これを実行し、同じマシンをミニオンとして登録する必要がありますか?

ありがとう!

19
austrum

ソルトマスターを開発機としても使っているので、どういうわけかマスター自体にも状態を適用できるか知りたいです。もしそうなら、どのように?

次の手順に従ってこれを行うことができます。

  1. 開発マシンにsalt-minionをインストールします
  2. / etc/salt/minionを編集してマスターを指すようにします(vi/etc/salt/minionを変更し、次を変更します:master:salt-> master:127.0.0.1)
    • (オプション)/ etc/salt/minion_idを自分にとって意味のあるものに編集します
  3. ソルトミニオンを起動します
  4. ソルトキーを使用して、ミニオンのキーを受け入れます
  5. ソルトマスターを使用して、他のソルトミニオンであるかのようにミニオンを制御します

マスターに状態を適用するために実行できるコマンドはありますか?

ソルトマスターは実際には状態ファイルを実行しませんが、ソルトミニオンは実行します。上記の手順を実行した場合は、次のコマンドを使用して、salt-masterをターゲットにしてhighstateを実行できます。

salt 'the_value_of_/etc/salt/minion_id' state.highstate

同じマシンにsalt-minionをインストールして、これを実行し、同じマシンをミニオンとして登録する必要がありますか?

うん。私はあなたが何をする必要があるかについての考えを持っていると思います、そしてただ正しい方向へのプッシュが必要です。

21
Jason Zhu

ミニオンとマスターの両方を単一ノードにインストールする

私はそのようなノードをマスターミニオンと呼びます。手順は提供されていません-質問に基づいてすでに知っています。

代わりにいくつかの概念情報:

  • 要するに、マスターは決して状態を適用しません。代わりに、ミニオン(この場合はローカルのマスターミニオン)をトリガーします。
  • Salt MinionとMasterは、独立したランタイムと構成を備えた2つの別個のサービスです。
  • インスタンスは一般的なソフトウェアを使用しますが、ランタイムはネットワークを介して通信します(場所に依存しません)。
  • リモートミニオンに状態を適用できる場合、同じメカニズムがローカルミニオンにも使用されます。

追加情報

状態を適用するには、次の2つの方法があります。

  • マスター側 salt コマンドから "プッシュ"状態を複数のリモートミニオンに送信します。

    rpm -qf $(which salt)
    salt-master-2015.5.3-4.fc22.noarch
    
  • ミニオン側 salt-call コマンドから "プル"単一のローカルミニオンの状態。

    rpm -qf $(which salt-call)
    salt-minion-2015.5.3-4.fc22.noarch
    

複数のミニオンが関与するまで、同じ効果を得るにはsalt-callを使用することをお勧めします。

salt-call state.highstate

ミニオン側のsalt-callは、特にテスト、分離、トラブルシューティングに利点を提供します。

  • これにより、ネットワークの問題(ある場合)がより明確になります。
  • 単一のローカルミニオンにのみ状態を安全に適用します(複数を指定する方法はありません)。
  • ローカル端末に直接デバッグ出力を表示します。

    salt-call -l debug test.ping
    

最後のポイント、salt-call--localマスターレスセットアップでも使用できます 使用ネットワークなし

6
uvsmtid

今では2015年の終わりが近づいています。ソルトマスターのセルフコントロールの可能性をさらに確認しましょう。

  1. 同じ箱にソルトマスターと一緒にミニオンを脇に置きます

これは上記の2つの答えとして広く議論されています。

  1. Salt-ssh + salt-runstate.orchestrateを使用します

セットアップ手順:

ステップ1:salt-sshをインストールする

ステップ2:名簿ファイルを変更します(例:CentOS6の/ etc/salt/roster)。デフォルトのインストールでは、すでにいくつかの例が示されています。あなたはおそらくソルトマスターにSSHで接続しているので、もちろんユーザー名/パスワード/秘密鍵の設定はあなたにとって問題ではないはずです。たとえば、salt master vagrant boxを制御するには、このサンプルで次のことを行う必要があります。

localhost:
  Host: 127.0.0.1
  user: vagrant
  passwd: vagrant
  Sudo: True

さて、 公式チュートリアル から少しひねりを加えて盗みます:

# /srv/salt/orch/cleanfoo.sls
cmd.run:
  salt.function:
    - tgt: 'localhost'
    - ssh: 'true'
    - arg:
      - touch /tmp/test.txt

そしてそれを実行します:

salt-run state.orchestrate orch.cleanfoo

Test.txtファイルが存在する場合は、salt mastervagrantボックスの/ tmpディレクトリを確認してください。

このアプローチは、州でも機能するはずです。いずれにせよ、何かをインストールする必要があります。一般に、ソルトマスターのセルフコントロールを呼び出す(一部の作業をプロビジョニングする)ことは、実際にミニオンを呼び出して他の状態を処理する前の1つのステップであるため、2番目の方法を好みます。

3
Ming Hsieh