Saltstack-salt-through-ssh
SaltStack-SSHを介したソルト
Saltは、 salt-minion を使用して、リモートシステムでコマンドを実行します。 これは通常の動作です。 一部のシナリオでは、リモートシステムはSSHプロトコルによってのみアクセスできます。 これらのシナリオでは、SaltはSSHプロトコルのみを使用してリモートシステムに接続し、SSHレイヤーを介してコマンドを実行するオプションを提供します。
*Salt SSH* は非常に簡単に設定できます。 唯一必要な設定は、* Rosterファイル*と呼ばれる特別なファイルでリモートシステムの詳細を指定することです。 この名簿ファイルは、通常 */etc/salt/roster* にあります。 名簿ファイルには、リモートシステムとその接続方法に関するすべての情報が含まれます。 名簿ファイルが設定されると、saltコマンドの代わりに *salt-ssh* を使用してすべてのSaltコマンドが実行されます。
名簿ファイル
Roster Systemは、Salt SSH専用に設計されています。 これはプラグ可能なシステムとして設計されています。 名簿システムの唯一の目的は、リモートシステムに関する情報を収集することです。 名簿ファイルは、ターゲット*としてリモートシステム情報を含む YAMLベースの設定ファイル*です。 これらのターゲットは、定義済みの属性セットを持つ特別なデータ構造です。 名簿ファイルには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 -saltコンポーネントのターゲットシステムのストレージディレクトリ。
- 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'
Salt SSHを使用したターゲティング
Salt SSHでのリモートシステムのターゲットは、globおよびregexターゲットのみをサポートします。 Salt SSHは別のモジュールであるため、現在のところ限られたオプションのみを提供し、近い将来、より多くの機能を提供します。