設定管理

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

以下の機能の一部は、従来のクライアントのみが使用できます。 Saltクライアントでサポートされている機能については、以下の表を参照してください。

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

設定ファイルは一元管理またはローカルで管理できます。 一元管理された設定ファイルは、グローバル設定チャンネルで提供され、SUSE Managerサーバにサブスクライブされるクライアントに適用できます。 ローカル管理された設定ファイルは、一元管理された設定ファイルを上書きするために使用されます。 このファイルは、設定管理特権がないSUSE Managerユーザにとって特に便利ですが、管理しているクライアントを変更する必要があります。

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

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

設定ファイルは一元管理またはローカルで管理できます。 一元管理された設定ファイルはグローバル設定チャンネルによって提供されます。 ローカル管理された設定ファイルはSUSE Managerに直接作成またはアップロードされます。

使用できる設定管理機能はSaltクライアントと従来のクライアントで異なります。 次の表は、それぞれのクライアントタイプでサポートされる機能を示しています。

この表のアイコンの意味は次のとおりです。

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

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

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

Table 1. 設定管理でサポートされる機能
機能 Salt 従来

グローバル設定チャンネル

ファイルの展開

ファイルの比較

ローカル管理ファイル

(Salt機能を使用)

サンドボックスファイル

Highstateの適用

クライアントからのファイルのインポート

Jinjaテンプレート

設定マクロ

(Salt機能(grains、pillarデータなど)を使用)

1. 設定管理用に従来のクライアントを準備する

従来のクライアントでは、設定管理を使用するために追加の準備操作が必要です。 AutoYaSTまたはKickstartを使用して従来のクライアントをインストールした場合、おそらく適切なパッケージがすでに準備されています。 その他の従来のクライアントでは、そのクライアントのオペレーティングシステム用に関連するツールの子チャンネルがインストールされていることを確認します。 ソフトウェアチャンネルの詳細については、ソフトウェアチャンネルを参照してください。

必要なパッケージは次のとおりです。

  • mgr-cfg: すべてのmgr-cfg-*パッケージで必要なベースライブラリおよび関数

  • mgr-cfg-actions: SUSE Managerを使用してスケジュールされた設定アクションを実行するために必要です。

  • mgr-cfg-client: 設定管理システムのクライアントの機能へのコマンドラインインターフェースを提供します。

  • mgr-cfg-management: SUSE Manager設定を管理するためのコマンドラインインターフェースを提供します。

システム  アクティベーションキーに移動し、ブートストラップ中に使用するアクティベーションキーをクリックし、[設定ファイルの配備]オプションにチェックを付けることによってブートストラッププロセス中にこれらのパッケージをインストールできます。 アクティベーションキーの詳細については、アクティベーションキーを参照してください。

2. 設定チャンネルの作成

新しい一元的な設定チャンネルを作成するには:

プロシージャ: 一元的な設定チャンネルの作成
  1. SUSE ManagerのWeb UIで、設定  チャンネルに移動し、設定チャンネルの作成をクリックします。

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

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

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

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

設定チャンネルを使用して、SaltクライアントのSaltの状態を管理することもできます。

プロシージャ: Saltの状態チャンネルの作成
  1. SUSE ManagerのWeb UIで、設定  チャンネルに移動し、状態チャンネルの作成をクリックします。

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

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

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

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

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

3. 設定ファイル、ディレクトリ、またはシンボリックリンクの追加

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

プロシージャ: 設定ファイル、ディレクトリ、またはシンボリックリンクの追加
  1. SUSE ManagerのWeb UIで、設定  チャンネルに移動し、設定ファイルに追加する設定チャンネルの名前をクリックし、ファイルの追加  ファイルの作成サブタブに移動します。

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

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

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

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

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

  7. 設定ファイルにマクロが含まれている場合、マクロの先頭および末尾をマークする記号を入力します。

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

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

4. クライアントを設定チャンネルにサブスクライブする

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

プロシージャ: 複数のクライアントを設定チャンネルにサブスクライブする
  1. SUSE ManagerのWeb UIで、システム  システム一覧に移動し、操作するクライアントを選択します。

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

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

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

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

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

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

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

5. 設定ファイルの比較

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

プロシージャ: 設定ファイルの比較
  1. SUSE ManagerのWeb UIで、システム  システム一覧に移動して、比較する設定ファイルにサブスクライブされているクライアントを選択します。

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

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

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

6. Jinja templating on clients

Jinja templating is possible on Salt clients. Jinja is only evaluated when content is processed by the Salt engine. Jinja provides variables from pillars or grains. They can be used in files managed by Salt (for example, via file.managed) or Salt states.

File configuration channels deliver static files without Jinja processing. State channel files are only applied if referenced in a Salt state.

詳細については、次の例の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
    - template: jinja

7. 従来のクライアントにおける設定ファイルのマクロ

1つのファイルを保存して同じ設定を共有できることは便利ですが、同じ設定ファイルの多数のバリエーションまたはシステム固有の詳細(ホスト名やMACアドレスなど)のみが異なる設定ファイルが必要になる場合があります。 この場合、設定ファイル内でマクロまたは変数を使用できます。 マクロまたは変数を使用すると、数百さらには数千のバリエーションを含む単一のファイルをアップロードし、配布することができます。 カスタムシステム情報用の変数に加えて、次の標準マクロがサポートされています。

rhn.system.sid
rhn.system.profile_name
rhn.system.description
rhn.system.hostname
rhn.system.ip_address
rhn.system.custom_info(key_name)
rhn.system.net_interface.ip_address(eth_device)
rhn.system.net_interface.netmask(eth_device)
rhn.system.net_interface.broadcast(eth_device)
rhn.system.net_interface.hardware_address(eth_device)
rhn.system.net_interface.driver_module(eth_device)

この機能を使用するには、[設定チャンネルの詳細]ページで設定ファイルをアップロードまたは作成します。 [設定チャンネルの詳細]ページを開き、選択したサポート対象のマクロを含めます。 変数を並べて記述するために使用するデリミタは、[マクロ開始デリミタ]フィールドと[マクロ終了デリミタ]フィールドで設定したデリミタと必ず一致させ、ファイル内の他の文字と競合しないようにしてください。 デリミタは長さを2文字とし、パーセント(%)記号を含めないことをお勧めします。

たとえば、IPアドレスとホスト名のみが異なるすべてのサーバに適用される1つのファイルがあるとします。 サーバごとに別の設定ファイルを管理する代わりに、server.confなどの単一のファイルを作成して、IPアドレスとホスト名のマクロを含めることができます。

hostname={| rhn.system.hostname |}
ip_address={| rhn.system.net_interface.ip_address(eth0) |}

SUSE Manager Web UIのスケジュールされたアクションまたはSUSE Manager設定クライアント(mgrcfg-client)のコマンドラインのいずれかを通じて、そのファイルを個々のシステムに配布する場合、変数は、SUSE Managerのシステムプロファイルに記録されているシステムのホスト名とIPアドレスに置き換えられます。 この例では、展開されるバージョンは次のようになります。

hostname=test.example.domain.com
ip_address=177.18.54.7

カスタムシステム情報を取得するには、カスタム情報マクロ(rhn.system.custom_info)にキーラベルを挿入します。 たとえば、「asset」というラベルを付けたキーを作成した場合、設定ファイルのカスタム情報マクロにそのキーラベルを追加して、そのキーラベルを含むシステムを値に代入することができます。 このマクロは次のようになります。

asset={@ rhn.system.custom_info(asset) @}

そのキーの値を含むシステムにこのファイルが展開されると、マクロが変換され、次のような文字列が生成されます。

asset=Example#456

(エラーを防ぐために必要な場合などに)デフォルト値を含めるには、カスタム情報マクロに次のようにデフォルト値を付加することができます。

asset={@ rhn.system.custom_info(asset) = 'Asset #' @}

値を含むシステムでは、このデフォルトはその値によって上書きされます。

システム管理を支援するために、SUSE Managerクライアントコンピュータ上でSUSE Manager設定マネージャ(mgrcfg-manager)を利用できます。 このツールは、システムに依存しないため、ファイルを変換または変更しません。 mgrcfg-managerコマンドは、システム設定に依存しません。 バイナリファイルを変更することはできません。