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を使用することもできます。
SUSE Manager 4.2では、Salt Bundleが新しいクライアントのデフォルトの連絡方法になりました。 |
2. Salt Bundleを使用してクライアントをMinionとして登録する
このセクションでは、現在の実装の利点と制限について説明します。 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
の設定ファイルは管理されません。
SUSE Managerサーバ以外のSalt Masterによって管理されているSalt Minionを使用してクライアントをブートストラップするには、ブートストラップスクリプトの生成時に |
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
の使用を続けることも可能です。 この場合、次のいずれかのオプションを指定します。
-
生成されたブートストラップスクリプトで
AVOID_VENV_SALT_MINION
を1
に設定します。 -
ブートストラップ状態の場合、
mgr_avoid_venv_salt_minion
pillarをTrue
に設定します。
3. Salt BundleによるSalt SSH
Salt Bundleは、クライアントに対してSalt SSHアクションを実行するときにも使用されます。
シェルスクリプトは、Saltコマンドを実行する前にvenv-salt-minion
をインストールせずにSalt Bundleをターゲットシステムに配備します。Salt BundleにはSaltのコードベース全体が含まれているため、salt-thin
は配備されません。Salt SSH (Web UIを使用するブートストラップを含む)は、バンドル内でPython 3インタープリターを使用します。ターゲットシステムには他のPythonインタープリターがインストールされている必要はありません。
Bundleを使用して配備されたPython 3は、クライアントでSalt SSHセッションを処理するために使用されるため、Salt SSH (Web UIを使用したブートストラップを含む)は、システムにインストールされているPythonに依存しません。
SUSE Manager 4.2はSalt SSH (Web UIでのブートストラップを含む)にSalt Bundleをデフォルトで使用していません。 Salt SSHをサポートするSalt Bundleを有効にし、いわゆるSalt thinを無効にするには、 web.ssh_salt_pre_flight_script = /usr/share/susemanager/salt-ssh/preflight.sh web.ssh_use_salt_thin = false
ssh_run_pre_flight: true そして、 |
ブートストラップリポジトリーは、Web UIを使用してクライアントをブートストラップする前に作成済みである必要があります。Salt SSHは、検出したターゲットオペレーティングシステムに基づいてブートストラップリポジトリーから取得されたSalt Bundleを使用しています。 詳細については、ブートストラップリポジトリー作成の準備を参照してください また、Salt Bundleは、 |
Salt SSHは、 |
|
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 |
|