6.2. デバイスの表示
インベントリー内のデバイスに関する詳細情報を取得するには、Red Hat Edge Manager CLI を使用できます。
6.2.1. Web UI でのデバイスインベントリーとデバイス詳細の表示 リンクのコピーリンクがクリップボードにコピーされました!
登録されたデバイスの詳細 (ステータスや健全性など) は、Red Hat Edge Manager Web UI で確認できます。
前提条件
- Red Hat Edge Manager CLI をインストールした。Red Hat Edge Manager CLI のインストール を参照してください。
- 少なくとも 1 つのデバイスを登録する必要があります。
手順
-
ナビゲーションパネルから、
を選択します。外部 Edge Manager インスタンスが開きます。 - ナビゲーションパネルから Devices を選択すると、デバイスのインベントリー、詳細、および廃止されたデバイスを表示できます。
6.2.2. CLI でのデバイスインベントリーとデバイス詳細の表示 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行します。
手順
次のコマンドを実行して、デバイスインベントリー内のデバイスを表示します。
flightctl get devices以下の出力例を参照してください。
NAME ALIAS OWNER SYSTEM UPDATED APPLICATIONS LAST SEEN <device_name> <none> <none> Online Up-to-date <none> 3 seconds ago次のコマンドを実行して、このデバイスの詳細を YAML 形式で表示します。
flightctl get device/<device_name> -o yaml以下の出力例を参照してください。
apiVersion: flightctl.io/v1alpha1 kind: Device metadata: name: <device_name> labels:1 region: eu-west-1 site: factory-berlin spec: os: image: quay.io/flightctl/rhel:9.52 config: - name: my-os-configuration3 configType: GitConfigProviderSpec gitRef: path: /configuration repository: my-configuration-repo targetRevision: production status: os: image: quay.io/flightctl/rhel:9.54 config: renderedVersion: "1"5 applications: data: {}6 summary: status: Unknown7 resources:8 cpu: Healthy disk: Healthy memory: Healthy systemInfo:9 architecture: amd64 bootID: 037750f7-f293-4c5b-b06e-481eef4e883f operatingSystem: linux summary: info: "" status: Online10 updated: status: UpToDate11 lastSeen: "2024-08-28T11:45:34.812851905Z"12 [...]
6.2.3. ラベルとラベルセレクター リンクのコピーリンクがクリップボードにコピーされました!
リソースにラベルを割り当てて、場所、ハードウェアの種類、目的などを記録することで、リソースを整理できます。Red Hat Edge Manager のラベルは、Kubernetes のラベルおよびラベルセレクターと同じ構文、原則、演算子に準拠したものです。デバイスのインベントリーを表示するとき、またはデバイスに操作を適用するときに、ラベルの付いたデバイスを選択できます。
ラベルは key=value 形式で記述します。キーはデバイスのグループ化に使用できます。たとえば、ラベルが site=<location> という命名規則に従っている場合は、デバイスをサイトごとにグループ化できます。キーのみを含むラベルを使用することもできます。
ラベルが有効であるためには、次のルールに従う必要があります。
- キーと値はそれぞれ 63 文字以下である必要があります。
-
キーと値は英数字 (
a-z、A-Z、0-9) で構成できます。 -
キーと値には、ダッシュ (
-)、アンダースコア (_)、ドット (.) も含めることができます。ただし、これらの文字を最初または最後の文字として使用することはできません。 - 値は省略できます。
ラベルは次の方法でデバイスに適用できます。
- イメージのビルド時にデフォルトのラベルセットを定義し、デプロイ時にすべてのデバイスに自動適用されるようにします。
- 登録時に初期ラベルを割り当てます。
- 登録後、ラベルを割り当てます。
リソースにラベルを割り当てたら、ラベルセレクターを作成して、一部のデバイスを選択できます。ラベルセレクターは、ラベルのコンマ区切りリストであり、同じラベルセットを持つデバイスを選択するためのものです。
以下の例を参照してください。
| ラベルセレクターの例 | 選択されるデバイス |
|---|---|
|
|
ラベルのキーが |
|
|
ラベルのキーが |
|
|
ラベルのキーが |
ラベルとセレクターの詳細は、Kubernetes ドキュメントの Labels and Selectors を参照してください。
6.2.3.1. Web UI でのデバイスとそのラベルの表示 リンクのコピーリンクがクリップボードにコピーされました!
Web UI でデバイスとそれに関連付けられたラベルを表示します。ラベルを使用すると、デバイスとデバイス群を整理できます。
以下の手順を実行します。
-
ナビゲーションパネルから、
を選択します。外部 Edge Manager インスタンスが開きます。 - ナビゲーションパネルから Devices を選択します。
- 管理するデバイスを選択します。Details タブの Labels で、関連付けられたラベルを確認できます。
6.2.3.2. CLI でのデバイスとそのラベルの表示 リンクのコピーリンクがクリップボードにコピーされました!
デバイスとそれに関連するラベルを表示します。ラベルを使用すると、デバイスとデバイス群を整理できます。
以下の手順を実行します。
手順
-o wideオプションを使用して、インベントリー内のデバイスとそのラベルを表示します。flightctl get devices -o wide以下の出力例を参照してください。
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-l <key=value>オプションを使用して、インベントリー内の特定のラベルまたはラベルセットを持つデバイスを表示します。flightctl get devices -l site=factory-berlin -o wide以下の出力例を参照してください。
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
6.2.3.3. CLI でのラベルの更新 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用してデバイスのラベルを更新します。
以下の手順を実行します。
手順
次のコマンドを実行して、デバイスの現在の定義をファイルにエクスポートします。
flightctl get device/<device1_name> -o yaml > my_device.yaml任意のエディターを使用して、
my_device.yamlファイルを編集します。以下の例を参照してください。apiVersion: flightctl.io/v1alpha1 kind: Device metadata: labels: some_key: some_value some_other_key: some_other_value name: <device1_name> spec: [...]ファイルを保存し、更新したデバイス定義を次のコマンドを実行して適用します。
flightctl apply -f my_device.yaml次のコマンド例を実行して変更を確認します。
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
6.2.4. フィールドセレクター リンクのコピーリンクがクリップボードにコピーされました!
フィールドセレクターは、特定のリソースフィールドの値に基づいて、Red Hat Edge Manager リソースのリストをフィルタリングします。Kubernetes のフィールドおよびラベルセレクターと同じ構文、原則、演算子に準拠したものですが、より高度な検索用に追加の演算子を利用できます。
6.2.4.1. サポートされているフィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager リソースには、選択可能な一連のメタデータフィールドがあります。
各リソースは次のメタデータフィールドをサポートしています。
-
metadata.name -
metadata.owner -
metadata.creationTimestamp
ラベルを照会する際には、詳細で柔軟なラベルフィルタリングのために、ラベルセレクターを使用してください。
詳細は、ラベルとラベルセレクター を参照してください。
6.2.4.2. 追加のサポートされるフィールドのリスト リンクのコピーリンクがクリップボードにコピーされました!
メタデータフィールドに加えて、各リソースには選択可能な固有のフィールドセットがあり、リソース固有の属性に基づいて、フィルタリングと選択にさらなる柔軟性を提供します。
以下の表は、各リソースの種類でフィルタリングがサポートされるフィールドのリストです。
| 種類 | Fields |
|---|---|
| 証明書署名要求 |
|
| デバイス |
|
| 登録要求 |
|
| フリート |
|
| リポジトリー |
|
| リソース同期 |
|
6.2.4.3. フィールドの検出 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Edge Manager の一部のリソースは、サポートされているフィールドを追加で公開する場合があります。サポートされているフィールドは、flightctl を --field-selector オプション付きで使用すると確認できます。サポートされていないフィールドを使用しようとすると、エラーメッセージに利用可能なサポート対象フィールドがリスト表示されます。
以下の例を参照してください。
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]
フィールド text はフィルタリングで有効なフィールドではありません。このエラーメッセージでは、Device リソースの --field-selector で使用できるサポートされているフィールドのリストが示されています。
サポートされているフィールドのいずれかを使用することができます。
flightctl get devices --field-selector 'metadata.alias contains cluster'
metadata.alias フィールドは、包含演算子 contains を使用して確認され、値 cluster があるかどうかが確認されます。
例
例 1: 特定のデバイスを名前で除外する
次のコマンドは、名前で特定のデバイスを除外します。
flightctl get devices --field-selector 'metadata.name!=c3tkb18x9fw32fzx5l556n0p0dracwbl4uiojxu19g2'
例 2: 所有者、ラベル、作成タイムスタンプでフィルタリングする
このコマンドは、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'
例 3: 所有者、ラベル、デバイスステータスでフィルタリングする
このコマンドは、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'
6.2.4.4. サポートされている演算子 リンクのコピーリンクがクリップボードにコピーされました!
| 演算子 | 記号 | 説明 |
|---|---|---|
| Exists |
| フィールドが存在するかどうかを確認します。 |
| DoesNotExist |
| フィールドが存在しないかどうかを確認します。 |
| Equals |
| フィールドが値と等しいかどうかを確認します。 |
| DoubleEquals |
| 別の形式の等価性チェック。 |
| NotEquals |
| フィールドが値と等しくないかどうかを確認します。 |
| GreaterThan |
| フィールドが値より大きいかどうかを確認します。 |
| GreaterThanOrEquals |
| フィールドが値以上かどうかを確認します。 |
| LessThan |
| フィールドが値より小さいかどうかを確認します。 |
| LessThanOrEquals |
| フィールドが値以下かどうかを確認します。 |
| In |
| フィールドが値のリスト内にあるかどうかを確認します。 |
| NotIn |
| フィールドが値のリストに含まれていないかどうかを確認します |
| Contains |
| フィールドに値があるかどうかを確認します。 |
| NotContains |
| フィールドに値が含まれていないかどうかを確認します。 |
6.2.4.4.1. フィールドタイプ別の演算子の使用 リンクのコピーリンクがクリップボードにコピーされました!
各フィールドタイプは、一部の特定の演算子をサポートしています。
| フィールドタイプ | サポートされている演算子 | 値 |
|---|---|---|
| 文字列 |
| テキスト文字列 |
| タイムスタンプ |
| RFC 3339 形式 |
| 数値 |
| 数値形式 |
| ブール値 |
注記
リストに含めることができるのは
|
ブール形式 ( |
| 配列 |
注記
| 配列要素 |