6.4. エッジデバイスのオペレーティングシステム設定


オペレーティングシステムレベルのホスト設定をイメージに追加すると、一貫性と再現性を最大化できます。設定を更新するには、新しいオペレーティングシステムイメージを作成し、新しいイメージを使用してデバイスを更新します。

ただし、次の場合には、新しいイメージでデバイスを更新することが現実的ではない可能性があります。

  • イメージ内に設定がない場合。
  • 設定がデバイスに固有のものである必要がある場合。
  • オペレーティングシステムイメージを更新して再起動することなく、実行時に設定を更新できる必要がある場合。

このような場合は、デバイスのファイルシステムに存在する設定ファイルのセットを宣言できます。Red Hat Edge Manager エージェントは、設定ファイルに更新を適用します。その際に、必ずファイルシステム内のすべてのファイルが正常に更新されるか、さもなければ更新前の状態にロールバックされます。ユーザーがデバイスのオペレーティングシステムと設定セットの両方を同時に更新する場合、Red Hat Edge Manager エージェントは最初にオペレーティングシステムを更新します。その後、指定された設定ファイルのセットを適用します。

Red Hat Edge Manager エージェントが順番に適用する設定セットのリストを指定することもできます。競合が発生した場合、最後に適用された設定セットが有効になります。

重要

Red Hat Edge Manager エージェントがディスク上の設定を更新した後、実行中のアプリケーションは、設定を有効にするために新しい設定をメモリーにリロードする必要があります。更新に再起動が必要な場合、systemd により、新しい設定を使用して正しい順序でアプリケーションが自動的に再起動されます。更新に再起動が不要な場合、多くのアプリケーションは設定ファイルの変更を検出し、ファイルを自動的にリロードできます。アプリケーションが変更の検出をサポートしていない場合は、デバイスのライフサイクルフックを使用すると、特定の条件が満たされた場合にスクリプトまたはコマンドを実行できます。

6.4.1. 設定プロバイダー

Red Hat Edge Manager では、設定プロバイダーと呼ばれる多くのソースから設定を提供できます。Red Hat Edge Manager は現在、次の設定プロバイダーをサポートしています。

Git Config Provider
Git リポジトリーからデバイス設定ファイルを取得します。
Kubernetes Secret Provider
Kubernetes クラスターからシークレットを取得し、そのコンテンツをデバイスのファイルシステムに書き込みます。
HTTP Config Provider
HTTP (S) エンドポイントからデバイス設定ファイルを取得します。
Inline Config Provider
外部システムをクエリーしなくても、デバイスマニフェストでデバイス設定ファイルをインラインで指定できます。

以下のセクションでは、設定プロバイダーの詳細を説明します。

6.4.1.1. Git リポジトリーからの設定

デバイス設定を GitHub や GitLab などの Git リポジトリーに保存できます。その後、Git Config Provider を追加して、Red Hat Edge Manager がリポジトリーからデバイスのファイルシステムに設定を同期できるようにします。

Git Config Provider は次のパラメーターを受け取ります。

Expand

パラメーター

説明

Repository

Red Hat Edge Manager で定義された Repository リソースの名前。

TargetRevision

チェックアウトするリポジトリーのブランチ、タグ、またはコミット。

Path

ファイルおよびサブディレクトリーがデバイスのファイルシステムに同期されるリポジトリー内のディレクトリーへの絶対パス。MountPath パラメーターを指定しない限り、Path のディレクトリーはデバイスのルートディレクトリー (/) に対応します。

MountPath

オプション: リポジトリーの内容を書き込むためのデバイスのファイルシステム内のディレクトリーへの絶対パス。デフォルトでは、値はファイルシステムのルート (/) です。

Repository リソースでは、Red Hat Edge Manager が使用する必要がある Git リポジトリー、プロトコル、およびアクセス認証情報を定義します。リポジトリーを設定する必要があるのは 1 回だけです。設定後、リポジトリーを使用して個々のデバイスまたはデバイス群を設定できます。

6.4.1.2. Kubernetes クラスターからのシークレット

Red Hat Edge Manager は、Red Hat Edge Manager が稼働している Kubernetes クラスターに対してのみ、Kubernetes シークレットを照会できます。そのシークレットの内容を、デバイスファイルシステム上のパスに書き込むことができます。

Kubernetes Secret Provider は次のパラメーターを受け取ります。

Expand

パラメーター

説明

Name

シークレットの名前。

NameSpace

シークレットの namespace。

MountPath

シークレットの内容を書き込むためのデバイスのファイルシステム内のディレクトリー。

注記

Red Hat Edge Manager には、定義された namespace 内のシークレットにアクセスするための権限が必要です。たとえば、ClusterRoleClusterRoleBinding を作成すると、flightctl-worker サービスアカウントがその namespace 内のシークレットを取得してリスト表示できるようになります。

6.4.1.3. HTTP サーバーからの設定

Red Hat Edge Manager は、設定のために HTTP サーバーにクエリーを実行できます。HTTP サーバーは、デバイスに対して静的または動的に生成された設定を提供できます。

HTTP Config Provider は次のパラメーターを受け取ります。

Expand

パラメーター

説明

Repository

Red Hat Edge Manager で定義された Repository リソースの名前。

Suffix

Repository リソースで定義されたベース URL に追加する接尾辞。接尾辞には、パスとクエリーパラメーターを含めることができます (例: /path/to/endpoint?query=param)。

FilePath

HTTP サーバーの応答を書き込むためのデバイスのファイルシステム内のファイルへの絶対パス。

Repository リソースでは、Red Hat Edge Manager が接続する HTTP サーバーと、使用するプロトコルおよびアクセス認証情報を指定します。リポジトリーのニーズを一度設定すれば、リポジトリーを使用して多数のデバイスやデバイス群を設定できます。

6.4.1.4. デバイス仕様のインライン設定

設定はデバイス仕様にインラインで指定できます。インラインデバイス仕様を使用すると、Red Hat Edge Manager が設定を取得するために外部システムに接続する必要がなくなります。

Inline Config Provider はファイル仕様のリストを受け取ります。各ファイル仕様は次のパラメーターを受け取ります。

Expand

パラメーター

説明

Path

コンテンツを書き込むためのデバイスのファイルシステム内のファイルへの絶対パス。指定したパスにファイルがすでに存在する場合、ファイルは上書きされます。

Content

ファイルの UTF-8 または base64 でエンコードされたコンテンツ。

ContentEncoding

コンテンツのエンコード方法を定義します。plain または base64 のいずれかである必要があります。デフォルト値は plain に設定されています。

モード

オプション: ファイルの権限モード。先頭にゼロを付けた 8 進数 (例: 0644) を指定することも、先頭にゼロを付けない 10 進数 (例: 420) として指定することもできます。setuidsetgid、および sticky ビットがサポートされています。指定しない場合、ファイルの権限モードはデフォルトで 0644 になります。

User

オプション: ファイルの所有者。名前または数値 ID として指定します。デフォルト値は root に設定されています。

Group

オプション: ファイルのグループ。名前または数値 ID として指定します。

6.4.2. CLI の Git リポジトリーからのデバイス設定の管理

Git リポジトリーでデバイス設定を作成し、適用します。

以下の手順を実行します。

手順

  1. site-settings という名前の Repository リソース用のファイル (site-settings-repo.yaml など) を作成し、次の定義を含めます。

    apiVersion: flightctl.io/v1alpha1
    kind: Repository
    metadata:
      name: site-settings
    spec:
      type: git
      url: https://github.com/<your_org>/<your_repo>.git
  2. 次のコマンドを実行して Repository リソースを作成します。

    flightctl apply -f site-settings-repo.yaml
  3. 次のコマンドを実行して、リソースが正しく作成されたこと、および Red Hat Edge Manager からアクセスできることを確認します。

    flightctl get repository/site-settings

    以下の出力例を参照してください。

    NAME           TYPE  REPOSITORY URL                                 ACCESSIBLE
    site-settings  git   https://github.com/<your_org>/<your_repo>.git  True
  4. デバイス仕様を更新して、example-site の設定をデバイスに適用します。

    apiVersion: flightctl.io/v1alpha1
    kind: Device
    metadata:
      name: <device_name>
    spec:
    [...]
      config: 
    1
    
      - name: example-site
        configType: GitConfigProviderSpec
        gitRef:
          repository: site-settings
          targetRevision: production
          path: /etc/example-site 
    2
    
    [...]
    1
    この例の設定では、site-settings リポジトリーの production ブランチの example-site ディレクトリーからすべてのファイルを取得し、ルートディレクトリー (/) にファイルを配置します。
    2
    ディレクトリー構造を作成して、ターゲットパスが書き込み可能であることを確認します。bootc システムではルートディレクトリー (/) は書き込み可能ではありません。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る