設定管理

クライアントそれぞれを手動で設定するのではなく、設定ファイルおよびチャンネルを使用してクライアントの設定を管理できます。

設定パラメータは、スクリプト化され、設定ファイルに保存されます。 SUSE Multi-Linux ManagerのWeb UIを使用して設定ファイルを直接書き込むことができます。または、別の場所にあるファイルをアップロードまたはリンクできます。

設定チャンネルは、設定ファイルの編成に使用されます。 クライアントを設定チャンネルにサブスクライブして、必要に応じて設定ファイルを展開できます。

設定ファイルはバージョン管理されるため、設定を追加し、クライアントで設定をテストし、必要に応じて前のリビジョンにロールバックできます。 設定チャンネルを作成したら、さまざまな設定ファイル間の比較や同じ設定ファイルの異なるリビジョン間の比較も実行できます。

Configuration files are provided through Configuration Channels or State Channels.

次の表に、サポートされている機能を示します。各記号の意味は次のとおりです。

  • : この機能はSUSEでサポートされています

  • : この機能はSUSEではサポートされていません

  • : この機能は検討中であり、後日サポートされるかどうかは未定です。

Table 1. 設定管理でサポートされる機能
Feature Status

Config Channels

State Channels

Deploying Files

Comparing Files

Applying the Highstate

File Import from a Client

Jinja Templating

1. Create configuration channels

1.1. Configuration channel

To create a new configuration channel:

Procedure: Creating a configuration channel
  1. SUSE Multi-Linux ManagerのWeb UIで、設定  チャンネルに移動し、設定チャンネルの作成をクリックします。

  2. チャンネルの名前を入力します。

  3. チャンネルのラベルを入力します。 このフィールドには、半角の英字、数字、ハイフン(-)、および下線(_)のみを含める必要があります。

  4. 他のチャンネルから区別できるようにチャンネルの説明を入力します。

  5. 設定チャンネルの作成をクリックして新しいチャンネルを作成します。

1.2. State channel

State channels use Salt states on clients:

Procedure: Creating a Salt state channel
  1. SUSE Multi-Linux ManagerのWeb UIで、設定  チャンネルに移動し、状態チャンネルの作成をクリックします。

  2. チャンネルの名前を入力します。

  3. チャンネルのラベルを入力します。 このフィールドには、半角の英字、数字、ハイフン(-)、および下線(_)のみを含める必要があります。

  4. 他のチャンネルから区別できるようにチャンネルの説明を入力します。

  5. init.slsファイルの[SLSコンテンツ]を入力します。

  6. Click Create Config State Channel to create the new channel.

設定チャンネルを作成済みの場合、設定ファイル、ディレクトリ、またはシンボリックリンクを追加できます。

Procedure: Adding a configuration file, directory, or symbolic link
  1. SUSE Multi-Linux ManagerのWeb UIで、設定  チャンネルに移動し、設定ファイルに追加する設定チャンネルの名前をクリックし、ファイルの追加  ファイルの作成サブタブに移動します。

  2. ファイルタイプ]フィールドで、テキストファイル、ディレクトリ、またはシンボリックリンクを作成するかどうかを選択します。

  3. ファイル名/パス]フィールドで、ファイルを展開する場所への絶対パスを入力します。

  4. シンボリックリンクを作成している場合、[シンボリックリンクの目的ファイル名/パス]フィールドにターゲットのファイルおよびパスを入力します。

  5. 所有権]フィールドおよび[ファイルアクセス許可モード]にファイルの[ユーザ名]および[グループ名]を入力します。

  6. クライアントでSELinuxが有効になっている場合、[SELinux contexts](SELinuxコンテキスト)を設定して、必要なファイル属性(ユーザ、ロール、ファイルタイプなど)を有効にできます。

  7. You can use Jinja templating with grains or pillar data instead of legacy macro delimiters.

  8. ファイルの内容]テキストボックスで設定ファイルの内容を入力し、スクリプトドロップダウンボックスを使用して、適切なスクリプト言語を選択します。

  9. 設定ファイルの作成をクリックします。

3. Subscribe clients to configuration channels

個々のクライアントを設定チャンネルにサブスクライブできます。そのためには、システム  システム一覧に移動し、サブスクライブするクライアントを選択し、[設定]タブに移動します。 複数のクライアントを設定チャンネルにサブスクライブするには、システムセットマネージャ(SSM)を使用できます。

Procedure: Subscribing multiple clients to configuration channels
  1. SUSE Multi-Linux ManagerのWeb UIで、システム  システム一覧に移動し、操作するクライアントを選択します。

  2. システム  システムセットマネージャに移動し、設定  チャンネルにサブスクライブサブタブに移動し、使用できる設定チャンネルの一覧を表示します。

  3. オプション: [現在サブスクライブしているシステム]列で番号をクリックして、設定チャンネルに現在サブスクライブされているクライアントを表示します。

  4. サブスクライブ先の設定チャンネルを確認し、続行をクリックします。

  5. 上下矢印を使用して設定チャンネルをランクします。 設定の競合が設定チャンネルで発生した場合、一覧の上の方にあるチャンネルが優先されます。

  6. 選択したクライアントにチャンネルを適用する方法を決定します。 最も低い順位でサブスクライブをクリックして、現在サブスクライブしているチャンネルより低い優先度で新しいチャンネルを追加します。 最も高い順位でサブスクライブをクリックして、現在サブスクライブしているチャンネルより高い優先度で新しいチャンネルを追加します。 既存のサブスクリプションを置換をクリックして、既存のチャンネルを削除し、新しいチャンネルに置き換えます。

  7. サブスクリプションの適用をクリックします。

新しい設定チャンネルの優先度が既存のチャンネルと競合する場合、重複チャンネルが削除され、新しい優先度に応じて置き換えられます。 クライアントの設定優先度をアクションで順序変更する場合、Web UIでは続行する前に変更を確認する必要があります。

4. Compare configuration files

システムセットマネージャ(SSM)を使用して、SUSE Multi-Linux Managerサーバに保存されている設定ファイルを使用してクライアントに展開された設定ファイルを比較することもできます。

Procedure: Comparing configuration files
  1. SUSE Multi-Linux ManagerのWeb UIで、システム  システム一覧に移動して、比較する設定ファイルにサブスクライブされているクライアントを選択します。

  2. システム  システムセットマネージャに移動し、設定  ファイルの比較サブタブに移動し、使用できる設定チャンネルの一覧を表示します。

  3. オプション: [システム]列で番号をクリックして、設定ファイルに現在サブスクライブされているクライアントを表示します。

  4. 比較する設定ファイルを確認し、ファイルの比較をスケジュールをクリックします。

5. クライアントでのJinjaテンプレート

Jinjaテンプレートは、Saltクライアントで可能です。 Jinjaはピラーまたはグレインからの変数を提供します。 これらは、設定ファイルまたはSalt状態で使用できます。

詳細については、次の例のhttps://docs.saltproject.io/salt/user-guide/en/latest/topics/jinja.htmlを参照してください。

{% if grains.os_family == 'RedHat' %}
  {% set dns_cfg = '/etc/named.conf' %}
{% elif grains.os_family == 'Debian' %}
  {% set dns_cfg = '/etc/bind/named.conf' %}
{% else %}
  {% set dns_cfg = '/etc/named.conf' %}
{% endif %}
dns_conf:
  file.managed:
    - name: {{ dns_cfg }}
    - source: salt://dns/files/named.conf