SaltStack-Saltファイルサーバー

SaltファイルサーバーはステートレスZeroMQサーバーです。ソルトマスターに組み込まれています。ソルトファイルサーバーは、マスターからミニオンにファイルを配布するために使用されます。さまざまなモジュールが含まれています。この章では、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 file server。ザ・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)

ここに、

  • モジュールがsalt環境で実行されている場合、optsを使用できます。それ以外の場合は、構成パスを指定する必要があります–/etc/salt/minion

  • path ソルトファイルサーバー内のソースファイルのパスを指します。

  • dest ファイルの宛先パスを参照します。

  • saltenv 環境を指します

次の章では、使い方を理解します Git ファイルサーバーとして。