Salt Bundle
1. Salt Bundleの概要
Salt Bundleは、Salt Minion、Python 3、必須のPythonモジュール、およびライブラリが含まれている1つのバイナリパッケージです。
Salt BundleはPython 3に付属していて、Saltを実行するためのすべての要件です。したがって、Salt Bundleは、システムソフトウェアとしてクライアントにインストールされているPythonバージョンを使用しません。Salt Bundleは、指定のSaltバージョンの要件を満たさないクライアントにインストールできます。
SUSE Manager Salt Master以外のSalt Masterに接続されているSalt Minionを実行するシステムでSalt Bundleを使用することもできます。
2. Salt Bundleを使用してクライアントをMinionとして登録する
Salt Bundleを使用した登録方法は推奨の登録方法です。このセクションでは、現在の実装の利点と制約について説明します。Salt Bundleは、Salt、Python 3、およびSaltが依存しているPythonモジュールで構成されているvenv-salt-minion
として提供されます。Web UIを使用したブートストラップもSalt Bundleを使用しているため、Web UIを使用したブートストラップはPythonに依存しません。Salt Bundleを使用すると、クライアントがPythonインタープリターまたはモジュールを提供する必要がなくなります。
新しいクライアントをブートストラップする場合、Salt Bundleを使用した登録がデフォルトの方法です。 既存のクライアントをSalt Bundleの方式に切り替えることができます。 切り替える場合、salt-minion
パッケージおよびその依存関係はインストールされたままになります。
2.1. Salt Minionを使用したSalt Bundleの使用
Salt Bundleは、SUSE Managerサーバ以外のSalt Masterによって管理されているSalt Minionと同時に使用できます。Salt Bundleが、SUSE ManagerサーバがSalt Bundleの設定ファイルを管理するクライアントにインストールされる場合、salt-minion
の設定ファイルは管理されません。詳細については、Salt Bundleの設定を参照してください。
|
2.2. Salt MinionからSalt Bundleへの切り替え
salt-minion
からvenv-salt-minion
に切り替えるためにSalt状態util.mgr_switch_to_venv_minion
を使用できます。移行プロセスのトラブルを回避するために、venv-salt-minion
への切り替えは2ステップで実行することをお勧めします。
util.mgr_switch_to_venv_minion
を使用して状態をvenv-salt-minion
に切り替える-
まず、pillarを指定せずに
util.mgr_switch_to_venv_minion
を適用します。venv-salt-minion
に切り替わり、設定ファイルなどがコピーされます。 元のsalt-minion
の設定およびそのパッケージはクリーンアップされません。salt <minion_id> state.apply util.mgr_switch_to_venv_minion
util.mgr_switch_to_venv_minion
を適用し、mgr_purge_non_venv_salt
をTrue
に設定してsalt-minion
を削除し、mgr_purge_non_venv_salt_files
をTrue
に設定してsalt-minion
に関するすべてのファイルを削除します。 この2番目の手順によって、最初の手順が処理されたことが保証され、古い設定ファイルおよび古くなったsalt-minion
パッケージが削除されます。salt <minion_id> state.apply util.mgr_switch_to_venv_minion pillar='{"mgr_purge_non_venv_salt_files": True, "mgr_purge_non_venv_salt": True}'
切り替えの最初の手順をスキップして2番目の手順を実行すると、クライアント側でコマンドを実行するために使用される |
他方、Salt Bundleのインストールを回避して代わりにsalt-minion
の使用を続けることも可能です。 この場合、次のいずれかのオプションを指定します。
-
--no-bundle
オプションを指定してmgr-bootstrap
を実行します。 -
生成されたブートストラップスクリプトで
AVOID_VENV_SALT_MINION
を1
に設定します。 -
ブートストラップ状態の場合、
mgr_avoid_venv_salt_minion
pillarをTrue
に設定します。
3. Salt BundleによるSSH Push
Salt Bundleは、クライアントに対してSSH Pushアクションを実行するときにも使用されます。
シェルスクリプトは、Saltコマンドを実行する前にvenv-salt-minion
をインストールせずにSalt Bundleをターゲットシステムに配備します。Salt BundleにはSaltのコードベース全体が含まれているため、salt-thin
は配備されません。SSH Push (Web UIを使用するブートストラップを含む)は、バンドル内でPython 3インタープリターを使用します。ターゲットシステムには他のPythonインタープリターがインストールされている必要はありません。
Bundleを使用して配備されたPython 3は、クライアントでSSH Pushセッションを処理するために使用されるため、SSH Push (Web UIを使用したブートストラップを含む)は、システムにインストールされているPythonに依存しません。
salt-thin
の使用はフォールバック方法として有効にできますが、クライアントにPython 3をインストールする必要があります。この方法は、推奨もサポートもされておらず、開発目的でのみ存在しています。/etc/rhn/rhn.conf
設定ファイルでweb.ssh_use_salt_thin
をtrue
に設定します。
|
4. pipを使用したPythonパッケージによるSalt Bundleの拡張
Salt Bundleにはpip
が含まれており、バンドルされているSalt Minionの機能を追加のPythonパッケージで拡張できます。
デフォルトで、salt <minion_id> pip.install <package-name>
は、<package_name>
で指定されたPythonパッケージを/var/lib/venv-salt-minion/local
にインストールします。
必要に応じて、 [Service] Environment=VENV_PIP_TARGET=/new/path/local/venv-salt-minion/pip |
|