SaltStack-SSHを介したSalt

Saltは、を使用してリモートシステムでコマンドを実行します salt-minion。これは正常な動作です。一部のシナリオでは、SSHプロトコルによってのみリモートシステムにアクセスできます。これらのシナリオでは、Saltは、SSHプロトコルのみを使用してリモートシステムに接続し、SSHレイヤーを介してコマンドを実行するオプションを提供します。

Salt SSH設定は非常に簡単です。必要な構成は、リモートシステムの詳細をと呼ばれる特別なファイルで指定することだけです。Roster file。この名簿ファイルは通常、/etc/salt/roster。名簿ファイルには、リモートシステムとそれに接続する方法に関するすべての情報が含まれています。名簿ファイルが設定されると、すべてのSaltコマンドはsalt-ssh saltコマンドの代わりに。

名簿ファイル

名簿システムは、SaltSSH専用に設計されています。これは、プラグ可能なシステムとして設計されています。名簿システムの唯一の目的は、リモートシステムに関する情報を収集することです。名簿ファイルはYAML based configuration file リモートシステム情報を次のように含む targets。これらのターゲットは、事前定義された属性のセットを持つ特別なデータ構造です。名簿ファイルには1つ以上のターゲットが含まれ、各ターゲットはSalt ID

名簿ファイルの基本構造は次のとおりです。

<Salt ID>:
   host: <host name>
   user: <user name>
   passwd: <password of the user>

名簿ファイルでサポートされている他のすべての属性はオプションです。それらは次のとおりです-

  • port −SSHポート番号。

  • sudo −sudoを介してコマンドを実行するかどうか。

  • sudo_user −sudoユーザー名。

  • tty −sudoが有効になっている場合はtrue。

  • priv −秘密鍵。

  • timeout −SSH接続のタイムアウト。

  • minion_opts −ミニオンオプトの辞書。

  • thin_dir −ソルトコンポーネント用のターゲットシステムのストレージディレクトリ。

  • cmd_umask −salt-callコマンドを強制するumask。

サンプル名簿ファイルは次のとおりです-

web:
   host: 192.168.2.1
   user: webuser
   passwd: secret
   sudo: True   
db:
   host: 192.168.2.2

SSHキーをデプロイする

Salt SSHは、SSHログイン用のデフォルトの公開鍵と秘密鍵のペアを生成します。デフォルトのパスは/etc/salt/pki/master/ssh/salt-ssh.rsaになります。このキーは、を使用してリモートシステムに展開できます。ssh-copy-id 以下に示すコマンド。

ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub [email protected]

コマンドの実行

saltコマンドの実行は、を変更するのと同じくらい簡単です。 salt cli にコマンド salt-ssh 以下に示すように。

salt-ssh '*' test.ping

生のシェルコマンド

Salt SSHには、saltモジュールと機能をバイパスしてリモートシステムでrawコマンドを実行するオプション(-r)が用意されています。

salt-ssh '*' -r 'ls'

SaltSSHによるターゲティング

Salt SSHでリモートシステムをターゲットにすると、globターゲットと正規表現ターゲットのみがサポートされます。Salt SSHは独立したモジュールであるため、現時点では限られたオプションしか提供しておらず、近い将来、より多くの機能を提供する予定です。