Saltstack-salt-file-server
SaltStack-ソルトファイルサーバー
Saltファイルサーバーは、ステートレスZeroMQサーバーです。 Saltマスターに組み込まれています。 Saltファイルサーバーは、マスターからミニオンにファイルを配布するために使用されます。 さまざまなモジュールが含まれています。 この章では、saltファイルサーバー、その構成、saltファイルサーバーに関連するモジュール、pythonでsaltファイルサーバーにアクセスする方法などを理解しましょう。
ファイルサーバーバックエンド
ファイルサーバーバックエンドにより、Saltファイルサーバーは、ローカルファイルシステム、Gitバージョン管理システムなどの他のファイルサーバーへの透過的なインターフェイスとして機能できます。
Gitファイルサーバーバックエンドを有効にするには、マスターファイルで次の構成を使用します。
fileserver_backend:
- git
複数のバックエンドファイルシステムを有効にするには、次の構成を使用できます。
fileserver_backend:
- roots
- git
対応するバックエンドサーバーの特定のセクションを使用して、別のバックエンドサーバーに追加オプションを指定することもできます。
ローカルファイルシステム
このシステムを使用するには、次のコードを使用する必要があります。
file_roots:
base:
-/srv/salt/prod
Gitファイルシステム
このシステムを使用するには、次のコードを使用する必要があります。
gitfs_remotes:
- https://github.com/sample/sample1.git
ファイルをリクエストする
Saltには、特定の環境のファイルを要求するオプションがあります。
salt://path/to/file?saltenv = base
ここでは、環境はrootsオプションを使用して定義されます。
ファイルサーバーの構成
ソルトファイルは多くのルートディレクトリ内で割り当てられ、ファイルパスと検索する環境の両方を指定することでアクセスできます。 個々の環境は、複数のディレクトリルートにまたがることができます。
環境
デフォルトの環境はベースです。 この環境は定義されており、他の環境が指定されていない場合にファイルをダウンロードするために使用されます。
file_roots:
base:
-/srv/salt/base
次のコードに示すように、複数の環境を使用することもできます。
file_roots:
base:
-/srv/salt/base
dev:
-/srv/salt/dev
-/srv/salt/base
CPモジュール
CPモジュールは、* Saltファイルサーバー*を操作するためのメインモジュールです。 salt-cp コマンドを使用して、Saltファイルサーバーによって提示されたファイルを配布することもできます。
GET_FILE
*cp.get_file* 関数をミニオンで使用して、マスターからファイルをダウンロードできます。 次のコードブロックに示すように定義されます。
salt '*' cp.get_file salt://vimrc/etc/vimrc
上記のコマンドは、すべてのソルトミニオンに vimrc ファイルをダウンロードして /etc/vimrc にコピーするよう指示します。
テンプレートを有効にする
次のようにget_fileでテンプレートオプションを有効にすることができます-
salt '*' cp.get_file "salt://vimrc"/etc/vimrc template = jinja
圧縮を適用
圧縮を使用するには、 gzip という名前の引数を使用します。 有効な値は1〜9の整数です。1は最小圧縮、9は最大値です。
コマンドは次のように定義されています-
salt '*' cp.get_file salt://vimrc/etc/vimrc gzip = 5
GET_DIR
*cp.get_dir* 関数をミニオンで使用して、マスターからディレクトリ全体をダウンロードできます。 次のコードブロックで定義されています。
salt '*' cp.get_dir salt://etc/mysql/etc
*cp.get_dir* は、テンプレートレンダリングとgzip圧縮引数をサポートします。 必要に応じて、割り当てることもできます。
FILECLIENTモジュール
Saltは、saltファイルサーバーへのアクセスに役立つPythonモジュールを提供します。 salt/fileclient.py モジュールは、ミニオンからマスターへの通信をセットアップするために使用されます。
ファイルを取得するためのサンプルコードは次のとおりです-
import salt.minion
import salt.fileclient
def get_file(path, dest, saltenv = ‘base'):
client = salt.fileclient.get_file_client(__opts__)
return client.get_file(path, dest, true, saltenv)
ここに、
- optsは、モジュールがソルト環境で実行されるときに使用可能です。 そうでない場合は、構成パス( /etc/salt/minion )を提供する必要があります。
- path は、saltファイルサーバーのソースファイルのパスを指します。
- dest はファイルの宛先パスを示します。
- saltenv は環境を指します
次の章では、 Git をファイルサーバーとして使用する方法を理解します。