Saltstack-salt-file-server

提供:Dev Guides
移動先:案内検索

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 をファイルサーバーとして使用する方法を理解します。