1.5. デバイスの管理
テクノロジープレビュー: Red Hat Edge Manager は、デバイスの登録から廃止までのデバイスのライフサイクルを管理します。デバイスのライフサイクルには、Red Hat Edge Manager でのデバイスの整理、モニタリング、更新など、デバイス管理も含まれます。
デバイスを個別に、またはフリートで管理できます。Red Hat Edge Manager を使用すると、多くのデバイスを個別に管理する代わりに、デバイスのフリート全体を 1 つのオブジェクトとして管理できます。
望ましい設定を指定する必要があるのは 1 度だけです。その後、Red Hat Edge Manager は、フリート内のすべてのデバイスに設定を適用します。
個々のデバイス管理を理解することは、フリートでデバイスを管理するための基盤です。以下のシナリオでは、デバイスを個別に管理することを推奨します。
- いくつかのデバイスで設定が大幅に異なる場合。
- 外部の自動化を使用してデバイスを更新する場合。
必要なアクセス権: クラスター管理者
次のドキュメントは、個々のデバイスの管理に重点を置いています。
フリートでのデバイス管理の詳細は、デバイスフリートの管理 を参照してください。
1.5.1. デバイスを登録する リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: Red Hat Edge Manager を使用してデバイスを管理するには、デバイスを Red Hat Edge Manager サービスに登録する必要があります。
デバイスで初めて Red Hat Edge Manager エージェントが実行されると、エージェントは暗号キーペアを生成して登録プロセスを準備します。デバイスの暗号キーペアは、公開鍵と秘密鍵で構成されます。秘密鍵はデバイスから外部に出ることがないため、デバイスの複製やなりすましを防ぐことができます。キーペアは、登録中に Red Hat Edge Manager サービスに登録され、デバイスの廃止時に削除されます。
デバイスがまだ登録されていない場合、エージェントはサービス検出を実行して Red Hat Edge Manager サービスインスタンスを検索します。次に、デバイスは、サービスへの安全で mTLS で保護されるネットワーク接続を確立します。デバイスは、イメージのビルド時またはデバイスのプロビジョニング時に取得したデバイスの X.509 登録証明書を使用します。デバイスは、以下を含む登録要求をサービスに送信します。
- デバイスのハードウェアとオペレーティングシステムの説明
- 初期管理証明書を取得するためのデバイスの暗号化アイデンティティーを含む X.509 証明書署名要求
そのデバイスは信頼済みとはみなされず、認可されたユーザーが要求を許可または拒否するまで、デバイス lobby で隔離された状態のままになります。
詳細は、次のセクションを参照してください。
1.5.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Edge Manager CLI をインストールした。Red Hat Edge Manager CLI のインストール を参照してください。
- Red Hat Edge Manager サービスにログインしている。
1.5.1.2. CLI を使用したデバイスの登録 リンクのコピーリンクがクリップボードにコピーされました!
デバイスを Red Hat Edge Manager サービスに登録してから管理する必要があります。以下の手順を実行します。
次のコマンドを実行して、現在承認を待機しているすべてのデバイスをリスト表示します。
flightctl get enrollmentrequests --field-selector="status.approval.approved != true"
flightctl get enrollmentrequests --field-selector="status.approval.approved != true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME APPROVAL APPROVER APPROVED LABELS <device_name> Pending <none> <none>
NAME APPROVAL APPROVER APPROVED LABELS <device_name> Pending <none> <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: 一意のデバイス名はエージェントにより生成され、変更できません。エージェントは、デバイス名として公開鍵の Base32 エンコードハッシュを選択します。
登録要求の名前を指定して、登録要求を承認します。オプションで、
--labelまたは-lフラグを使用してラベルをデバイスに追加できます。以下の例を参照してください。flightctl approve -l region=eu-west-1 -l site=factory-berlin enrollmentrequest/54shovu028bvj6stkovjcvovjgo0r48618khdd5huhdjfn6raskg
flightctl approve -l region=eu-west-1 -l site=factory-berlin enrollmentrequest/54shovu028bvj6stkovjcvovjgo0r48618khdd5huhdjfn6raskgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME APPROVAL APPROVER APPROVED LABELS <device_name> Approved user region=eu-west-1,site=factory-berlin
NAME APPROVAL APPROVER APPROVED LABELS <device_name> Approved user region=eu-west-1,site=factory-berlinCopy to Clipboard Copied! Toggle word wrap Toggle overflow
登録要求を承認した後、サービスは管理証明書を発行し、デバイスをインベントリーに登録します。これでデバイスを管理する準備が整いました。
1.5.2. デバイスの表示 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: インベントリー内のデバイスに関する詳細情報を取得するには、Red Hat Edge Manager CLI を使用できます。
1.5.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Edge Manager CLI をインストールした。Red Hat Edge Manager CLI のインストール を参照してください。
- Red Hat Edge Manager サービスにログインしている。
- 少なくとも 1 つのデバイスを登録する必要があります。
1.5.2.2. デバイスインベントリーとデバイスの詳細の表示 リンクのコピーリンクがクリップボードにコピーされました!
デバイスインベントリー内のデバイスを表示します。以下の手順を実行します。
次のコマンドを実行して、デバイスインベントリー内のデバイスを表示します。
flightctl get devices
flightctl get devicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN <device_name> <none> <none> Online Up-to-date <none> 3 seconds ago
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN <device_name> <none> <none> Online Up-to-date <none> 3 seconds agoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、このデバイスの詳細を YAML 形式で表示します。
flightctl get device/<device_name> -o yaml
flightctl get device/<device_name> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.3. ラベルとラベルセレクター リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: 個々のデバイス、フリート、その他のリソースを含むリソースにラベルを割り当てることで整理できます。たとえば、ラベルを使用してロケーション、ハードウェアタイプ、目的を記録できます。Red Hat Edge Manager ラベルは、Kubernetes ラベルとラベルセレクターと同じ構文、原則、および Operator に従います。
デバイスのインベントリーを表示するとき、またはデバイスに操作を適用するときに、ラベルの付いたデバイスを選択できます。
ラベルは、キーを使用してデバイスをグループ化する key=value 形式に従います。たとえば、ラベルが site=<location> の命名規則に従う場合、サイトごとにデバイスをグループ化できます。
キーのみを含むラベルを使用することもできます。
ラベルが有効であるためには、次のルールに従う必要があります。
- キーと値はそれぞれ 63 文字以下である必要があります。
-
キーと値は、英数字 (
a-z、A-Z、0-9) で構成可能です。 -
キーと値には、ダッシュ (
-)、アンダースコア (_)、ドット (.) を含めることができますが、これらを先頭または末尾に配置することはできません。 - 値は省略できます。
次の方法でラベルをリソースに適用できます。
- イメージのビルド時にデフォルトのラベルセットを定義し、デプロイ時にすべてのデバイスに自動適用されるようにします。
- 登録時に初期ラベルを割り当てます。
- 登録後、ラベルを割り当てます。
リソースにラベルが付けられる場合、ラベルセレクターを作成することでリソースのサブセットを選択できます。ラベルセレクターは、同じラベルのセットを持つリソースを選択するためのラベルのコンマ区切りリストです。
以下の例を参照してください。
| ラベルセレクターの例 | 選択されるデバイス |
|---|---|
|
|
|
|
|
|
|
|
|
詳細は、Labels and Selectors を参照してください。
1.5.4. ラベルの使用 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: ラベルを使用してデバイスを整理できます。
1.5.4.1. CLI を使用したデバイスとそのラベルの表示 リンクのコピーリンクがクリップボードにコピーされました!
デバイスとそれに関連するラベルを表示します。ラベルを使用すると、デバイスとデバイス群を整理できます。
以下の手順を実行します。
-o wideオプションを使用して、インベントリー内のデバイスを表示します。flightctl get devices -o wide
flightctl get devices -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 seconds ago region=eu-west-1,site=factory-berlin <device2_name> <none> <none> Online Up-to-date <none> 1 minute ago region=eu-west-1,site=factory-madrid
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 seconds ago region=eu-west-1,site=factory-berlin <device2_name> <none> <none> Online Up-to-date <none> 1 minute ago region=eu-west-1,site=factory-madridCopy to Clipboard Copied! Toggle word wrap Toggle overflow -l <key=value>オプションを使用して、特定のラベルまたはラベルセットでインベントリー内のデバイスを表示します。flightctl get devices -l site=factory-berlin -o wide
flightctl get devices -l site=factory-berlin -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 seconds ago region=eu-west-1,site=factory-berlin
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 seconds ago region=eu-west-1,site=factory-berlinCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4.2. CLI を使用したラベルの更新 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用してデバイスでラベルを更新します。以下の手順を実行します。
次のコマンドを実行して、デバイスの現在の定義をファイルにエクスポートします。
flightctl get device/<device1_name> -o yaml > my_device.yaml
flightctl get device/<device1_name> -o yaml > my_device.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 任意のエディターを使用して
my_device.yamlファイルを編集します。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存し、次のコマンドを実行して更新されたデバイス定義を適用します。
flightctl apply -f my_device.yaml
flightctl apply -f my_device.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、変更が適用されていることを確認します。
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 minutes ago some_key=some_value,some_other_key=some_other_value <device2_name> <none> <none> Online Up-to-date <none> 4 minutes ago region=eu-west-1,site=factory-madrid
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN LABELS <device1_name> <none> <none> Online Up-to-date <none> 3 minutes ago some_key=some_value,some_other_key=some_other_value <device2_name> <none> <none> Online Up-to-date <none> 4 minutes ago region=eu-west-1,site=factory-madridCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.5. フィールドセレクター リンクのコピーリンクがクリップボードにコピーされました!
フィールドセレクターは、特定のリソースフィールドの値に基づいて、個々のデバイス、フリート、およびその他のリソースを含む Red Hat Edge Manager リソースのリストをフィルタリングします。
フィールドセレクターは、Kubernetes のフィールドセレクターおよびラベルセレクターと同じ構文、原則、Operator に従いますが、より高度な検索ユースケース用に追加の Operator も利用できます。
1.5.5.1. サポートされるフィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager リソースには、選択可能なメタデータフィールドのセットが表示されます。
各リソースは以下のメタデータフィールドをサポートします。
-
metadata.name -
metadata.owner -
metadata.creationTimestamp
注記: ラベルをクエリーするには、ラベルセレクターを使用して詳細で柔軟なラベルのフィルターを行います。
詳細は、ラベルとラベルセレクター を参照してください。
1.5.5.2. 追加のサポートされるフィールドのリスト リンクのコピーリンクがクリップボードにコピーされました!
メタデータフィールドに加えて、各リソースには選択可能な固有のフィールドセットがあり、リソース固有の属性に基づいて、フィルタリングと選択にさらなる柔軟性を提供します。
以下の表は、各リソースの種類でフィルタリングがサポートされるフィールドのリストです。
| 種類 | フィールド |
| 証明書署名要求 |
|
| デバイス |
|
| 登録要求 |
|
| フリート |
|
| リポジトリー |
|
| Resource Sync |
|
1.5.5.3. フィールド検出 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager リソースによっては、追加のサポートされるフィールドを公開する場合があります。flightctl コマンドに --field-selector オプションを使用することで、サポートされているフィールドを確認できます。サポートされていないフィールドを使用しようとすると、エラーメッセージに利用可能なサポート対象フィールドがリスト表示されます。
以下の例を参照してください。
flightctl get device --field-selector='text'
flightctl get device --field-selector='text'
Error: listing devices: 400, message: unknown or unsupported selector: unable to resolve selector name "text". Supported selectors are: [metadata.alias metadata.creationTimestamp metadata.name metadata.nameoralias metadata.owner status.applicationsSummary.status status.lastSeen status.summary.status status.updated.status]
Error: listing devices: 400, message: unknown or unsupported selector: unable to resolve selector name "text". Supported selectors are: [metadata.alias metadata.creationTimestamp metadata.name metadata.nameoralias metadata.owner status.applicationsSummary.status status.lastSeen status.summary.status status.updated.status]
フィールド text は、フィルタリングのための有効なフィールドではありません。エラーメッセージは、Device リソースの --field-selector で使用できるサポート対象のフィールドのリストを提供します。
サポートされているフィールドのいずれかを使用することができます。
flightctl get devices --field-selector 'metadata.alias contains cluster'
flightctl get devices --field-selector 'metadata.alias contains cluster'
metadata.alias フィールドは、包含 Operator contains を使用して、値 cluster があるかどうかがチェックされます。
1.5.5.3.1. 例 リンクのコピーリンクがクリップボードにコピーされました!
名前による特定デバイスの除外
次のコマンドは、名前で特定のデバイスを除外します。
flightctl get devices --field-selector 'metadata.name!=<device_name>'
flightctl get devices --field-selector 'metadata.name!=<device_name>'
所有者、ラベル、および作成タイムスタンプでフィルタリングします。
次のコマンドは、Fleet/pos-fleet が所有し、us リージョンにあり、2024 年に作成されたデバイスを取得します。
flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, metadata.creationTimestamp >= 2024-01-01T00:00:00Z, metadata.creationTimestamp < 2025-01-01T00:00:00Z' -l 'region=us'
flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, metadata.creationTimestamp >= 2024-01-01T00:00:00Z, metadata.creationTimestamp < 2025-01-01T00:00:00Z' -l 'region=us'
所有者、ラベル、およびデバイスのステータスでフィルタリングします。
次のコマンドは、Fleet/pos-fleet が所有し、us リージョンにあり、status.updated.status が Unknown または OutOfDate のいずれかであるデバイスを取得します。
flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, status.updated.status in (Unknown, OutOfDate)' -l 'region=us'
flightctl get devices --field-selector 'metadata.owner=Fleet/pos-fleet, status.updated.status in (Unknown, OutOfDate)' -l 'region=us'
1.5.5.4. サポートされている演算子 リンクのコピーリンクがクリップボードにコピーされました!
| 演算子 | 記号 | 説明 |
| Exists |
|
フィールドが存在するかチェックします。たとえば、 |
| DoesNotExist |
| フィールドが存在しないか確認します。 |
| Equals |
| フィールドが値と等しいか確認します。 |
| DoubleEquals |
| 別の形式の等価性チェック。 |
| NotEquals |
| フィールドが値と等しくないか確認します。 |
| GreaterThan |
| フィールドが値よりも大きいか確認します。 |
| GreaterThanOrEquals |
| フィールドが値以上であるか確認します。 |
| LessThan |
| フィールドが値未満か確認します。 |
| LessThanOrEquals |
| フィールドが値以下であるか確認します。 |
| In |
| フィールドが値のリスト内にあるか確認します。 |
| NotIn |
| フィールドが値のリストにないか確認します。 |
| Contains |
| フィールドに値があるか確認します。 |
| NotContains |
| フィールドに値が含まれていないか確認します。 |
1.5.5.5. フィールドタイプ別の Operator の使用量 リンクのコピーリンクがクリップボードにコピーされました!
各フィールドタイプは、一部の特定の演算子をサポートしています。
| フィールドタイプ | サポートされている演算子 | 値 |
| 文字列 |
| テキスト文字列 |
| タイムスタンプ |
| RFC 3339 形式 |
| 数値 |
| 番号形式 |
| ブール値 |
|
ブール値の形式 ( |
| 配列 |
| 配列要素 |
1.5.6. オペレーティングシステムの更新 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: デバイス仕様でターゲットオペレーティングシステムイメージの名前またはバージョンを更新することで、デバイスのオペレーティングシステムを更新できます。
Red Hat Edge Manager エージェントがサービスと通信すると、エージェントは要求された更新を検出します。その後、エージェントはバックグラウンドで、新しいオペレーティングシステムのバージョンのダウンロードと検証を自動的に開始します。
Red Hat Edge Manager エージェントは、更新ポリシーに従って実際のシステム更新をスケジュールします。スケジュールされた更新時に、エージェントは現在実行中のオペレーティングシステムを中断することなく、新しいバージョンをインストールします。
最後に、デバイスは新規バージョンで再起動します。
Red Hat Edge Manager は現在、以下のイメージタイプとイメージ参照形式をサポートしています。
| イメージタイプ | イメージ参照 |
| bootc |
コンテナーレジストリーへの OCI イメージ参照。例: |
プロセス中に、エージェントはステータスの更新をサービスに送信します。デバイスのステータスを表示することで、更新プロセスを監視できます。詳細は、デバイスの表示 を参照してください。
1.5.6.1. CLI でのオペレーティングシステムの更新 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用してデバイスを更新します。以下の手順を実行します。
次のコマンドを実行して、デバイスの現在のリソースマニフェストを取得します。
flightctl get device/<device_name> -o yaml > my_device.yaml
flightctl get device/<device_name> -o yaml > my_device.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Deviceリソースを編集して、新しいオペレーティングシステム名とバージョンターゲットを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、更新された
Deviceリソースを適用します。flightctl apply -f <device_name>.yaml
flightctl apply -f <device_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.7. エッジデバイスのオペレーティングシステム設定 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: 最大限の一貫性と再現性を実現するために、オペレーティングシステムレベルのホスト設定をイメージに含めることができます。
設定を更新するには、新しいオペレーティングシステムイメージを作成し、新しいイメージでデバイスを更新します。
ただし、以下の場合には、新しいイメージでデバイスを更新することは実用的ではありません。
- イメージ内に設定がない場合。
- 設定がデバイスに固有のものである必要がある場合。
- この設定は、オペレーティングシステムイメージを更新して再起動せずに、ランタイム時に更新できる必要があります。
このような場合には、デバイスのファイルシステムに存在する設定ファイルのセットを宣言できます。Red Hat Edge Manager エージェントは、すべてのファイルがファイルシステムで正常に更新されるか、更新前の状態にロールバックするかを確認しながら、設定ファイルに更新を適用します。ユーザーがデバイスのオペレーティングシステムと設定セットの両方を同時に更新すると、Red Hat Edge Manager エージェントは最初にオペレーティングシステムを更新し、その後、指定された設定ファイルのセットを適用します。
Red Hat Edge Manager エージェントが順番に適用する設定セットのリストを指定することもできます。競合が発生した場合は、最後に適用された設定セットは有効です。
重要: Red Hat Edge Manager エージェントがディスクの設定を更新した後、実行中のアプリケーションは、設定を有効にするために、新しい設定をメモリーにリロードする必要があります。更新に再起動が必要な場合、systemd は新しい設定と正しい順序でアプリケーションを自動的に再起動します。更新に再起動が含まれない場合、多くのアプリケーションは設定ファイルへの変更を検出し、ファイルを自動的にリロードできます。アプリケーションが変更検出をサポートしていない場合は、特定の条件が満たされている場合に、デバイスのライフサイクルフックを使用してスクリプトまたはコマンドを実行できます。
1.5.7.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
- 外部システムをクエリーしなくても、デバイスマニフェストでデバイス設定ファイルをインラインで指定できます。
以下のセクションでは、設定プロバイダーの詳細を説明します。
1.5.7.1.1. Git リポジトリーからの設定 リンクのコピーリンクがクリップボードにコピーされました!
デバイス設定を GitHub や GitLab などの Git リポジトリーに保存できます。その後、Git Config Provider を追加して、Red Hat Edge Manager がリポジトリーからデバイスのファイルシステムに設定を同期できるようにします。
Git Config Provider は次のパラメーターを受け取ります。
| パラメーター | 説明 |
|
|
Red Hat Edge Manager で定義された |
|
| チェックアウトするリポジトリーのブランチ、タグ、またはコミット。 |
|
|
ファイルおよびサブディレクトリーがデバイスのファイルシステムに同期されるリポジトリー内のディレクトリーへの絶対パス。 |
|
|
オプション: リポジトリーの内容を書き込むためのデバイスのファイルシステム内のディレクトリーへの絶対パス。デフォルトでは、値はファイルシステムの root ( |
Repository リソースは、Red Hat Edge Manager が使用する必要のある Git リポジトリー、プロトコル、およびアクセス認証情報を定義します。リポジトリーは一度だけセットアップする必要があります。セットアップ後、リポジトリーを使用して、個々のデバイスまたはデバイスフリートを設定できます。
1.5.7.1.2. Kubernetes クラスターからのシークレット リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager は、Red Hat Edge Manager が Kubernetes シークレット用に実行されている Kubernetes クラスターのみをクエリーできます。そのシークレットの内容は、デバイスのファイルシステムのパスに書き込むことができます。
Kubernetes Secret Provider は以下のパラメーターを取ります。
| パラメーター | 説明 |
|
| シークレットの名前。 |
|
| シークレットの namespace。 |
|
| シークレットの内容を書き込むためのデバイスのファイルシステム内のディレクトリー。 |
注記: Red Hat Edge Manager には、定義された namespace のシークレットにアクセスする権限が必要です。たとえば、ClusterRole と ClusterRoleBinding を作成すると、flightctl-worker サービスアカウントがその namespace のシークレットを取得し、リスト表示できます。
1.5.7.1.3. HTTP サーバーからの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager は、設定のために HTTP サーバーにクエリーを実行できます。HTTP サーバーは、デバイスに対して静的または動的に生成された設定を提供できます。
HTTP Config Provider は次のパラメーターを受け取ります。
| パラメーター | 説明 |
|
|
Red Hat Edge Manager で定義された |
|
|
|
|
| HTTP サーバーの応答を書き込むためのデバイスのファイルシステム内のファイルへの絶対パス。 |
Repository リソースは、Red Hat Edge Manager が接続するための HTTP サーバーを指定し、使用するプロトコルとアクセスの認証情報を指定します。レポジトリーは、一度セットアップする必要があります。その後、レポジトリーを使用して複数のデバイスまたはデバイスフリートを設定できます。
1.5.7.1.4. デバイス仕様のインライン設定 リンクのコピーリンクがクリップボードにコピーされました!
設定はデバイス仕様にインラインで指定できます。インラインデバイス仕様を使用する場合、Red Hat Edge Manager は設定を取得するために外部システムに接続する必要はありません。
Inline 設定プロバイダーは、ファイル仕様のリストを取ります。各ファイル仕様は以下のパラメーターを取ります。
| パラメーター | 説明 |
|
| コンテンツを書き込むためのデバイスのファイルシステム内のファイルへの絶対パス。指定したパスにファイルがすでに存在する場合、ファイルは上書きされます。 |
|
| ファイルの UTF-8 または base64 でエンコードされたコンテンツ。 |
|
|
コンテンツのエンコード方法を定義します。 |
|
|
オプション: ファイルの権限モード。先頭にゼロで 8 進数 (例: |
|
|
オプション: ファイルの所有者。名前または数値 ID として指定します。デフォルト値は |
|
| オプション: ファイルのグループ。名前または数値 ID として指定します。 |
1.5.7.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- デバイスのライフサイクルフックおよび Red Hat Edge Manager エージェントで使用されるデフォルトのルールの詳細は、デバイスのライフサイクルフック を参照してください。
- Red Hat Edge Manager 権限を付与する方法は、Red Hat Edge Manager の認可 を参照してください。
1.5.8. MicroShift クラスターを自動登録するためのフリートの設定 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: MicroShift を含むオペレーティングシステムイメージを実行しているデバイスフリートがある場合は、MicroShift クラスターを Red Hat Advanced Cluster Management に自動登録するようにフリートを設定できます。
1.5.8.1. デバイステンプレートの設定 リンクのコピーリンクがクリップボードにコピーされました!
フリート内での自動登録を有効にするには、デバイステンプレートに設定を追加します。以下の手順を実行します。
crd.yamlファイルのfilePath、repository、およびsuffixを含むacm-crdリソース設定をFleetリソースに追加します。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のように、
filePath、repository、suffixを使用してacm-importリソース設定を追加します。- name: acm-import httpRef: filePath: /var/local/acm-import/import.yaml repository: acm-registration suffix: /agent-registration/manifests/{{.metadata.name}}- name: acm-import httpRef: filePath: /var/local/acm-import/import.yaml repository: acm-registration suffix: /agent-registration/manifests/{{.metadata.name}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: MicroShift クラスターが Red Hat Advanced Cluster Management イメージをプルしなかった場合は、テンプレートに次の追加部分に示すように、
pull-secretリソースを追加します。- name: pull-secret inline: - path: "/etc/crio/openshift-pull-secret" content: "{\"auths\":{...}}"- name: pull-secret inline: - path: "/etc/crio/openshift-pull-secret" content: "{\"auths\":{...}}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow crd.yamlファイルとimport.yamlファイルでkubectl apply -fを実行するには、次の条件付きif要件を含むapply-acm-manifestsリソースを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
コンソールで、デバイスに
fleet:acmというラベルを付け、Approve をクリックすると、fleet-acmフリートが自動的に選択されます。ラベルを使用してデバイスを管理する方法は、デバイスフリートの管理 を参照してください。
1.5.9. CLI の Git リポジトリーからのデバイス設定の管理 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: Git リポジトリーでデバイス設定を作成して適用します。
以下の手順を実行します。
site-settingsという名前のRepositoryリソースの次の定義が含まれるsite-settings-repo.yamlなどのファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Repositoryリソースを作成します。flightctl apply -f site-settings-repo.yaml
flightctl apply -f site-settings-repo.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、リソースが正しく作成され、Red Hat Edge Manager がアクセスできることを確認します。
flightctl get repository/site-settings
flightctl get repository/site-settingsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME TYPE REPOSITORY URL ACCESSIBLE site-settings git https://github.com/<your_org>/<your_repo>.git True
NAME TYPE REPOSITORY URL ACCESSIBLE site-settings git https://github.com/<your_org>/<your_repo>.git TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス仕様を更新して、
example-site設定をデバイスに適用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.10. デバイスのライフサイクルフック リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: Red Hat Edge Manager エージェントは、デバイスライフサイクルフックを使用して、デバイスライフサイクルの特定のポイントでユーザー定義のコマンドを実行できます。たとえば、アプリケーションデータのバックアップを作成するオペレーティングシステムイメージにシェルスクリプトを追加できます。次に、エージェントがオペレーティングシステムの更新を開始する前に、スクリプトが実行され、正常に完了するように指定できます。
別の例として、特定のアプリケーションやシステムサービスは、ファイルがディスク上で変更されても、設定ファイルを自動的にリロードしません。エージェントが更新プロセスを完了した後に呼び出される別のフックとしてコマンドを指定することで、設定ファイルを手動でリロードできます。
次のデバイスのライフサイクルフックがサポートされています。
| ライフサイクルフック | 説明 |
|
| エージェントが更新の準備を完了した後、ただし、オペレーティングシステムを変更する前に、フックが呼び出されます。このフックのアクションが失敗を返した場合、エージェントは更新をキャンセルします。 |
|
| フックは、エージェントがディスクに更新を書き込んだ後に呼び出されます。このフックのアクションが失敗を返した場合、エージェントは更新をキャンセルしてロールバックします。 |
|
| フックは、システムが再起動する前に呼び出されます。エージェントは、アクションの完了またはタイムアウトまで再起動をブロックします。このフックの何らかのアクションが失敗を返した場合、エージェントは更新をキャンセルしてロールバックします。 |
|
| フックは、エージェントが再起動後に最初に起動すると呼び出されます。このフックの何らかのアクションが失敗を返した場合、エージェントは失敗を報告しますが、起動を継続します。 |
1.5.10.1. ルールファイル リンクのコピーリンクがクリップボードにコピーされました!
デバイスのファイルシステムの以下のいずれかのロケーションに、ルールファイルを追加することで、デバイスのライフサイクルフックを定義できます。
-
/usr/lib/flightctl/hooks.d/<lifecycle_hook_name>/ドロップインディレクトリーのルールは読み取り専用です。/usrディレクトリーにルールを追加するには、イメージのビルド中にオペレーティングシステムイメージにルールを追加する必要があります。 -
/etc/flightctl/hooks.d/<lifecycle_hook_name>/ドロップインディレクトリーのルールは読み書きが可能です。いくつかの方法を使用して、実行時にルールを更新できます。
ファイルを作成して配置するときは、以下を考慮する必要があります。
- ルールの名前はすべて小文字である必要があります。
- 両方の場所でルールを定義すると、ルールが結合されます。
- 複数のルールファイルをライフサイクルフックディレクトリーに追加すると、ファイルはファイル名の辞書的な順序で処理されます。
-
両方のロケーションで同じファイル名を持つファイルを定義する場合、
/etcフォルダー内のファイルは、/usrフォルダー内の同じ名前のファイルよりも優先されます。
ルールファイルは YAML 形式で記述され、1 つ以上のアクションのリストが含まれます。アクションは、外部コマンドを実行する指示である場合があります。
フックに多くのアクションを指定すると、アクションは順番に実行され、次のアクションを開始する前に 1 つのアクションを終了します。
アクションが失敗を返した場合、以下のアクションはスキップされます。
run アクションは以下のパラメーターを取ります。
| パラメーター | 説明 |
|
|
実行するコマンドへの絶対パス。その後にフラグまたは引数が続きます (例: |
|
| オプション: コマンドの環境変数として設定するキーと値のペアのリスト。 |
|
| オプション: コマンドが実行されるディレクトリー。 |
|
|
オプション: アクションが完了するまで許可される最大時間。期間は、単一の正の整数として指定し、その後に時間単位を指定します。 |
|
| オプション: アクションを実行するために true でなければならない条件のリスト。指定されていない場合、アクションは無条件に実行されます。 |
デフォルトでは、アクションはフックがトリガーされるたびに実行されます。ただし、afterUpdating フックの場合、If パラメーターを使用して、アクションを実行するために true でなければならない条件を追加できます。条件が満たされない場合、アクションはスキップされます。
たとえば、更新中に特定のファイルまたはディレクトリーが変更された場合にのみアクションを実行するには、次のパラメーターを受け取るパス条件を定義できます。
| パラメーター | 説明 |
|
|
アクションを実行する条件として、更新中に変更される必要があるファイルまたはディレクトリーへの絶対パス。スラッシュ ( |
|
|
|
afterUpdating フックでアクションのパス条件を指定する場合、コマンドの引数に含めることができ、変更されたファイルの絶対パスに置き換えられる次の変数があります。
| 変数 | 説明 |
|
| パス条件で指定されたファイルまたはディレクトリーへの絶対パス。 |
|
| 更新時に変更され、パス条件でカバーされるファイルの絶対パスのスペース区切りリスト。 |
|
| 更新時に作成され、パス条件でカバーされるファイルの絶対パスのスペース区切りリスト。 |
|
| 更新時に更新され、パス条件でカバーされるファイルの絶対パスのスペース区切りリスト。 |
|
| 更新時に削除され、パス条件でカバーされるファイルの絶対パスのスペース区切りリスト。 |
Red Hat Edge Manager エージェントには、/usr/lib/flightctl/hooks.d/afterupdating/00-default.yaml で定義された組み込みのルールセットが含まれています。特定のファイルが変更された場合、次のコマンドが実行されます。
| File | コマンド | 説明 |
|
|
|
|
|
|
|
|
|
|
|
|
1.5.10.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ネットワークの設定および管理 を参照してください。
1.5.11. デバイスリソースのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー: デバイスリソースのリソースモニターを設定し、リソースの使用率が定義されたしきい値を超えたときにアラートを作成できます。エージェントが Red Hat Edge Manager サービスにアラートを出すと、サービスは重大度レベルに応じてデバイスのステータスを degraded または error に設定します。
リソースモニターは以下のパラメーターを取ります。
| パラメーター | 説明 |
|
|
監視するリソース。現在、 |
|
|
モニターが使用量をサンプリングする間隔で、正の整数の後に時間単位 ( |
|
| アラートルールのリスト。 |
|
|
|
アラートルールは以下のパラメーターを取ります。
| パラメーター | 説明 |
|
|
アラートルールの重大度は、 |
|
|
サンプリング時にリソース使用量が測定され、平均化される期間で、正の整数の後に時間単位 ( |
|
| アラートをトリガーする使用量のしきい値 (パーセンテージの値)。値は、% 記号なしの 0 から 100 までです。 |
|
|
人間が判読できるアラートの説明。デバッグに役立つアラートの詳細を追加します。デフォルトでは、アラートの説明は |
1.5.11.1. CLI を使用したデバイスリソースのモニタリング リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用してデバイスのリソースを監視し、パフォーマンスを追跡して問題のトラブルシューティングを行うツールとコマンドを提供します。
以下の手順を実行します。