RHEL for Edge イメージの作成、インストール、および管理
RHEL 10 を使用した Edge システムの作成、デプロイ、管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 RHEL for Edge イメージの概要 リンクのコピーリンクがクリップボードにコピーされました!
RHEL for Edge イメージは、Edge サーバーで RHEL をリモートにインストールするシステムパッケージを含む rpm-ostree イメージです。
システムパッケージには以下が含まれます。
-
Base OSパッケージ - コンテナーエンジンとしての Podman
- 追加の RPM Package Manager (RPM) コンテンツ
RHEL イメージとは異なり、RHEL for Edge はイミュータブルなオペレーティングシステムです。つまり、次の特性を持つ read-only root ディレクトリーが含まれています。
- パッケージがルートディレクトリーから分離されます。
- 各バージョンのオペレーティングシステムが個別にデプロイされます。したがって、必要に応じてシステムを以前のデプロイメントにロールバックできます。
- ネットワーク経由で効率的な更新を実現します。
- 複数のオペレーティングシステムブランチとリポジトリーをサポートします。
-
ハイブリッド
rpm-ostreeパッケージシステムが含まれています。
Bare Metal、Appliance、および Edge サーバーに RHEL for Edge イメージをデプロイすることができます。
RHEL for Edge イメージを使用すると、次の利点が得られます。
- アトミックなアップグレード
- 各更新の状態を把握できます。システムを再起動するまで変更が反映されません。
- カスタムヘルスチェックとインテリジェントなロールバック
- カスタムヘルスチェックを作成できます。ヘルスチェックが失敗した場合、オペレーティングシステムが以前の安定した状態にロールバックされます。
- コンテナー中心のワークフロー
- イメージの更新がバックグラウンドで段階的に行われるため、ワークロードによるシステムの停止が最小限に抑えられます。
- 最適化された Over-the-Air 更新
- 効率的な over-the-air (OTA) 差分更新により、接続が断続的であっても、システムを最新の状態に維持できます。
1.1. RHEL RPM イメージと RHEL for Edge イメージの違い リンクのコピーリンクがクリップボードにコピーされました!
従来のパッケージベースの RPM 形式で RHEL システムイメージや、RHEL for Edge (rpm-ostree) イメージを作成できます。
従来のパッケージベースの RPM を使用して、従来のデータセンターに RHEL をデプロイすることができます。ただし、RHEL for Edge イメージを使用すると、従来のデータセンター以外のサーバーに RHEL をデプロイすることができます。このサーバーには、データが生成されるソース、つまりエッジサーバーに最も近い場所で大量のデータの処理を行うシステムが含まれます。
RHEL for Edge (rpm-ostree) イメージはパッケージマネージャーではありません。個々のファイルではなく、完全な起動可能なファイルシステムツリーのみをサポートします。これらのイメージには、これらのファイルがどのように生成されたか、それらの起源に関連するものなど、個々のファイルに関する情報は含まれていません。
rpm-ostree イメージには、追加のアプリケーションを /var ディレクトリーにインストールするための別のメカニズムであるパッケージマネージャーが必要です。これにより、rpm-ostree イメージは、/var ディレクトリーおよび /etc ディレクトリーの状態を維持しながら、オペレーティングシステムを変更しないようにします。アトミック更新により、更新のロールバックとバックグラウンドステージングが可能になります。
RHEL for Edge イメージがパッケージベースの RHEL RPM イメージとどのように異なるかを確認するには、以下の表を参照してください。
| 主な属性 | RHEL RPM イメージ | RHEL for Edge イメージ |
|
| パッケージをローカルでアセンブルして、イメージを形成できます。 | パッケージは、システムにインストールできる OSTree に組み立てられます。 |
|
|
|
|
|
| パッケージには DNF リポジトリーが含まれています。 | パッケージには OSTree リモートリポジトリーが含まれています。 |
|
| 読み書き |
読み取り専用 ( |
|
|
イメージを |
|
第2章 rpm-ostree ベースのデプロイ済みシステムから bootc ベースのシステムへの移行 リンクのコピーリンクがクリップボードにコピーされました!
RHEL 10.0 以降、RHEL Image Builder を使用して RHEL for Edge イメージをビルドできなくなりました。RHEL 10.0 以降のバージョンでは、OSbuild を使用したエッジアーティファクトの構築はサポートされなくなりました。代わりに、image mode for RHEL を使用して、エッジデプロイメントに適したオペレーティングシステムイメージを構築できます。必要に応じて、RHEL 9 で RHEL Image Builder を引き続き使用して、RHEL for Edge アーティファクトをビルドすることもできます。
image mode for RHEL を使用するには、RHEL 9 Image Builder から image mode for RHEL 10 にアップグレードし、image mode for RHEL を使用して、Edge のデプロイメントに使用できる起動可能なコンテナーイメージを構築してください。
image mode for RHEL 機能では、registry.redhat.io/rhel9/rhel-bootc にあるコンテナーイメージからオペレーティングシステムをカスタマイズできます。基本的な RHEL for Edge OSTree コミットと比較して、サイズと内容が類似した、より小さな bootc ベースイメージを最初から構築することもできます。
2.1. Image Mode for RHEL リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) のイメージモードは、コンテナーネイティブアプローチを使用して、オペレーティングシステムを bootc ベースイメージ (rhel-bootc) として構築、デプロイ、管理するデプロイメント方法です。bootc ベースイメージ (rhel-bootc) には、カーネル、ファームウェア、ブートローダーなど、起動可能なオペレーティングシステムに必要なコンポーネントが含まれています。他のコンテナーと同じように、オペレーティングシステムを構築、デプロイ、管理できます。
image mode for RHEL を使用すると、アプリケーションコンテナーと同じツールと手法を使用して、オペレーティングシステムを構築、テスト、およびデプロイできます。Image Mode for RHEL は、registry.redhat.io/rhel10/rhel-bootc bootc イメージを使用することで利用できます。RHEL bootc イメージは、従来は除外されていた起動に必要な追加コンポーネント (カーネル、initrd、ブートローダー、ファームウェアなど) が含まれている点で、既存のアプリケーションの Universal Base Images (UBI) とは異なります。
Image Mode for RHEL は、ブループリントのカスタマイズによる rpm-ostree ファイルシステムをサポートしていません。osbuild-composer を使用して bootc イメージからディスクイメージを構築できません。代わりに、bootc-image-builder を使用して、bootc イメージからディスクイメージを生成します。
2.2. ベースイメージからカスタマイズされたイメージを構築する リンクのコピーリンクがクリップボードにコピーされました!
Podman を使用してコンテナーイメージをビルドおよびテストできます。一般的な Containerfile の構造は次のとおりです。
コンテナーを使用して RHEL システムを設定する例は、rhel-bootc-examples リポジトリーを参照してください。
2.3. ブループリントのカスタマイズと Containerfile のカスタマイズの対応表 リンクのコピーリンクがクリップボードにコピーされました!
次の表には、ブループリントのカスタマイズオプションと、Containerfile で使用される同等のコマンドが含まれています。
| ブループリント | コマンド指示 |
|---|---|
| distro = "rhel-10." | FROM rhel-bootc:10 |
| [[packages]] name = "openssh-server" version = "8.*" などと指定します。 | RUN dnf install <package name> |
| [[groups]] name = "anaconda-tools" | RUN dnf group install <group_name> |
| [[containers]] source = "quay.io/rhel/rhel:latest" | RUN podman pull docker.io/library/postgres:alpine |
| [customizations.kernel] name = "kernel-debug" append = "nosmt=force" |
RUN mkdir -p /usr/lib/bootc/kargs.d RUN cat <<`EOF` >> /usr/lib/bootc/kargs.d/console.toml kargs = ["console=ttyS0,114800n8","kernel-debug"] match-architectures = ["x86_64"] |
| [customizations.rhsm.config.dnf_plugins.product_id] enabled = true [customizations.rhsm.config.dnf_plugins.subscription_manager] enabled = true [customizations.rhsm.config.subscription_manager.rhsm] manage_repos = true [customizations.rhsm.config.subscription_manager.rhsmcertd] auto_registration = true | COPY ./rhsm.conf /etc/rhsm/rhsm.conf |
| [customizations.rpm.import_keys] files = [ "/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-18-primary", "/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-19-primary" ] | RUN mkdir -p /etc/pki/rpm-gpg/ COPY <host_path>/gpg_key /etc/pki/rpm-gpg//gpg_key |
| [[customizations.sshkey]] user = "root" key = "PUBLIC SSH KEY" | # SSH keys COPY test.pub container_key.pub RUN mkdir -p .ssh && \ cat container_key.pub >> .ssh/authorized_keys && \ chmod 600 .ssh/authorized_keys && \ rm -f container_path_to_key.pub |
| [customizations.timezone] timezone = "US/Eastern" ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"] | RUN ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime |
| [customizations.locale] languages = ["en_US.UTF-8"] keyboard = "us" |
RUN cat <<`EOF` >> /etc/locale.conf LANG="en_US.UTF-8" |
| [customizations.firewall] ports = ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp", "30000-32767:tcp", "30000-32767:udp"] | RUN dnf install -y firewalld && \ dnf clean all && \ firewall-offline-cmd --new-zone=customzone && \ firewall-offline-cmd --zone=customzone --set-description="Custom firewall rules for the container" && \ firewall-offline-cmd --zone=customzone --add-service=ftp && \ firewall-offline-cmd --zone=customzone --add-service=ntp && \ firewall-offline-cmd --zone=customzone --add-service=dhcp && \ firewall-offline-cmd --zone=customzone --add-port=22/tcp && \ firewall-offline-cmd --zone=customzone --add-port=80/tcp && \ firewall-offline-cmd --zone=customzone --add-port=53/tcp && \ firewall-offline-cmd --zone=customzone --add-port=53/udp && \ firewall-offline-cmd --zone=customzone --add-port=30000-32767/tcp && \ firewall-offline-cmd --zone=customzone --add-port=30000-32767/udp && \ firewall-offline-cmd --set-default-zone=customzone |
| [[customizations.directories]] path = "/etc/<dir-name>" mode = "0755" user = "root" group = "root" ensure_parents = false | #Directory: RUN mkdir /etc/<dir> RUN chown -R admin:wheel /etc/<dir> && \ chmod -R 644 /etc/<dir> #Files: RUN touch /etc/<myfile> RUN chown :widget /etc/<myfile> && \ chmod 600 /etc/<myfile> |
| [customizations] installation_device = "/dev/sda" |
RUN mkdir -p /usr/lib/bootc/kargs.d && \ cat <<`EOF` >> /usr/lib/bootc/kargs.d/console.toml kargs = ["inst.device=/dev/sda"] |
| [customizations.ignition.embedded] config = "eyJpZ25pdG….xIn1dfX0=" |
RUN mkdir -p /usr/lib/bootc/kargs.d && \ cat <<`EOF` >> /usr/lib/bootc/kargs.d/console.toml kargs = ["ignition.config.url=http://192.168.122.1/fiot.ign","rd.neednet=1"] |
| [customizations.fdo] manufacturing_server_url = "http://192.168.122.199:8080" diun_pub_key_insecure = "true" di_mfg_string_type_mac_iface = "enp2s0" | RUN dnf install -y fdo-init fdo-client && \ systemctl enable fdo-client-linuxapp.service |
| [customizations.openscap] datastream = "/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml" profile_id = "xccdf_org.ssgproject.content_profile_cis" [customizations.openscap.json_tailoring] profile_id = "<name-of-profile-used-in-json-tailoring>-file" filepath = "/some/path/tailoring-file.json" [[customizations.files]] path = "/the/path/tailoring-file.json" data = "<json-tailoring-file-contents>" | RUN dnf install -y openscap-utils && \ autotailor --output /some/path/tailoring-file.json \ --new-profille-id xccdf_org.ssgproject.content_profile_cis |
| [customizations] fips = true |
RUN mkdir -p /usr/lib/bootc/kargs.d && \ cat <<`EOF` >> /usr/lib/bootc/kargs.d/01-fips.toml kargs = ["fips=1"] |
2.3.1. image mode for RHEL を使用して同様の RHEL for Edge イメージを作成する リンクのコピーリンクがクリップボードにコピーされました!
image mode for RHEL を使用してエッジイメージを作成するには、OSTree コミットと共通のパッケージで足りないものを手動でインストールする必要があります。これらのパッケージのほとんどは bootc イメージに含まれていますが、次のパッケージが欠けています。
-
clevis -
clevis-dracut -
clevis-luks -
greenboot -
greenboot-default-health-checks -
fdo-client -
fdo-owner-cli
不足しているパッケージをインストールし、同様の RHEL for Edge イメージを作成するには、次の手順に従います。
前提条件
- 既存の RHEL for Edge rpm-ostree ベースのデプロイ済みシステム。
手順
次の内容の Containerfile を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同様の RHEL for Edge のカスタマイズされた bootc イメージを構築します。
podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: イメージをプッシュします:
podman push quay.io/<namespace>/<image>:<tag>
$ podman push quay.io/<namespace>/<image>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
すべてのイメージをリスト表示します。
podman images
$ podman imagesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. podman build を使用してカスタマイズイメージを構築する リンクのコピーリンクがクリップボードにコピーされました!
RHEL 9.6 以降では、RHEL Image Builder を引き続き使用してエッジインストールイメージを作成できます。image mode for RHEL を使用して、コンテナーイメージを設定し、デプロイメント用のディスクイメージを作成することもできます。RHEL Image Builder を引き続き使用する場合は、RHEL for Edge イメージの作成、インストール、および管理 を参照してください。
image mode for RHEL を使用して新しいディスクイメージを作成するには、次の手順に従います。
2.4.1. image mode を使用して 9.6 RHEL for Edge イメージを作成する リンクのコピーリンクがクリップボードにコピーされました!
エッジホスト用のイメージモード RHEL を構築するには、指示を含む Containerfile を作成します。次に、bootc-image-builder を使用して、作成されたエッジホストを Anaconda ISO でインストールします。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。
手順
Containerfileを作成します。例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーの
Containerfileを使用して、<image>イメージをビルドします。podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
すべてのイメージをリスト表示します。
podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GB
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2. image mode を使用して RHEL 10 for Edge イメージを作成する リンクのコピーリンクがクリップボードにコピーされました!
RHEL 10 以降では、RHEL Image Builder がエッジアーティファクトをサポートしなくなったため、新しい RHEL for Edge イメージインストールを作成するには、bootc を使用します。
利用可能なすべての RHEL Image Builder アーティファクトがイメージモードで使用できるわけではありません。つまり、bootc-image-builder を使用して特定のイメージタイプを作成できません。
-
特に、
simplified-installerはもう存在しません。代わりに、FDO などのワークフローにはbootc-image-builderAnaconda ISO を使用します。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。
手順
Containerfileを作成します。次の例には、例として使用できるいくつかのカスタマイズが含まれており、要件に合わない場合は削除できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーの
Containerfileを使用して、<image>イメージをビルドします。podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
すべてのイメージをリスト表示します。
podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GB
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. bootc-image-builder を使用してコンテナーをベースにディスクイメージを構築する リンクのコピーリンクがクリップボードにコピーされました!
bootc-image-builder を使用して、コンテナーをベースにディスクイメージを作成できます。
2.5.1. bootc-image-builder のインストール リンクのコピーリンクがクリップボードにコピーされました!
bootc-image-builder はコンテナーとしての使用が意図されており、RHEL で RPM パッケージとして利用することはできません。アクセスするには、以下の手順に従います。
前提条件
-
container-toolsメタパッケージがインストールされている。メタパッケージには、Podman、Buildah、Skopeo などのすべてのコンテナーツールが含まれます。 -
registry.redhat.ioに対して認証されている。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
手順
ログインして、
registry.redhat.ioに対する認証を行います。sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow bootc-image-builderツールをインストールします。sudo podman pull registry.redhat.io/rhel10/bootc-image-builder
$ sudo podman pull registry.redhat.io/rhel10/bootc-image-builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ローカルシステムにプルしたすべてのイメージをリスト表示します。
sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/rhel10/bootc-image-builder latest b361f3e845ea 24 hours ago 676 MB
$ sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/rhel10/bootc-image-builder latest b361f3e845ea 24 hours ago 676 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. RHEL 9.6 ディスクイメージに bootc-image-builder を使用する リンクのコピーリンクがクリップボードにコピーされました!
bootc-image-builder を使用すると、ホストに起動可能なコンテナーをデプロイするために使用できるディスクイメージを作成できます。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。
手順
オプション: ユーザーアクセスを設定するための
config.tomlを作成します。次に例を示します。[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを手動でプルします。
sudo podman pull quay.io/quay.io/<_namespace_>/<_image_>:<_tag_>
$ sudo podman pull quay.io/quay.io/<_namespace_>/<_image_>:<_tag_>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドするイメージの
outputディレクトリーを作成します。mkdir output
$ mkdir outputCopy to Clipboard Copied! Toggle word wrap Toggle overflow bootc-image-builderを実行してイメージを作成します。設定を追加しない場合は、-v $(pwd)/config.toml:/config.toml引数を省略します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow .isoイメージは出力フォルダーにあります。
2.5.3. bootc-image-builder を使用して RHEL 10.0 ディスクイメージを作成する リンクのコピーリンクがクリップボードにコピーされました!
RHEL 10 以降、RHEL Image Builder では、Edge 用に最適化された RHEL rpm-ostree カスタマイズイメージの作成がサポートされなくなりました。RHEL 10 の一部として Edge 環境用の新しい RHEL イメージを作成するには、image mode for RHEL を使用する必要があります。
利用可能なすべての RHEL Image Builder アーティファクトがイメージモードで使用できるわけではありません。つまり、bootc-image-builder を使用して特定のイメージタイプを作成できません。simplified-installer はなくなりました。代わりに、FDO ワークフローには bootc-image-builder Anaconda ISO を使用します。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。
手順
オプション: ユーザーアクセスを設定するための
config.tomlを作成します。次に例を示します。[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを手動でプルします。
sudo podman pull quay.io/<namespace>/<image>:_<tag>_
$ sudo podman pull quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドするイメージの
outputディレクトリーを作成します。mkdir output
$ mkdir outputCopy to Clipboard Copied! Toggle word wrap Toggle overflow bootc-image-builderを実行してイメージを作成します。設定を追加しない場合は、-v $(pwd)/config.toml:/config.toml引数を省略します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow .isoイメージは出力フォルダーにあります。
2.6. 既存の rpm-ostree インストールから image mode for RHEL 9.6 への切り替え リンクのコピーリンクがクリップボードにコピーされました!
bootc switch コマンドを使用すると、既存の RHEL for Edge システムで image mode for RHEL を使用できます。
2.6.1. 既存のシステムグループとユーザー情報を Containerfile に追加する リンクのコピーリンクがクリップボードにコピーされました!
異なるホストビルド間を切り替える場合は、bootc switch コマンドを使用して、既存のデプロイ済みシステムを bootc ベースのシステムに移行できます。
一部のユーザー ID とグループ ID は rhel-bootc イメージ と RHEL for Edge 間で異なります。これは、ssh_keys などの複数のグループとユーザーに影響します。その結果、ID が誤って指定されたグループに秘密鍵が所属するため、公開鍵を使用してエッジシステムにアクセスできなくなります。
Image Mode システムは、altfiles を使用して、/user/lib/passwd のユーザーと /user/lib/group のグループを管理します。この問題を回避するには、既存の RHEL for Edge システムのグループとユーザーの情報を抽出し、Containerfile の一部として固定する必要があります。Containerfile を設定して、ローカルの lib/group ファイルをコンテナーイメージにコピーします。
秘密鍵の権限は手動で変更できます。/etc フォルダーはエッジシステムで変更可能です。ただし、bootc switch コマンドを実行した後、イメージモードベースのシステムでは ssh_keys グループが ID 999 に設定されるため、問題は解決されません。この値は RHEL bootc ベースイメージから取得され、このように ID 101 から ID 999 にドリフトされるため、エッジシステムは SSH 経由でアクセスできなくなります。この問題を解決するには、次の手順に従います。
前提条件
-
既存の RHEL for Edge
rpm-ostreeベースのシステム。 - RHEL 9 システムをサブスクライブしている。詳細は、RHEL システム登録のスタートガイド ドキュメントを参照してください。
- コンテナーレジストリーがある。レジストリーをローカルに作成することも、Quay.io サービスで無料アカウントを作成することもできます。Quay.io アカウントを作成するには、Red Hat Quay.io ページを参照してください。
- 実稼働用または開発者サブスクリプションを持つ Red Hat アカウントがある。無料の開発者サブスクリプションは、Red Hat Enterprise Linux Overview ページで入手できます。
- registry.redhat.io に対して認証済みである。詳細は、Red Hat コンテナーレジストリーの認証 の記事を参照してください。
手順
RHEL for Edge システムからユーザーとグループの情報を抽出します。
mkdir -p ./usr/lib ssh admin@192.168.100.50 'cat /lib/passwd' > ./usr/lib/passwd ssh admin@192.168.100.50 'cat /lib/group' > ./usr/lib/group
$ mkdir -p ./usr/lib $ ssh admin@192.168.100.50 'cat /lib/passwd' > ./usr/lib/passwd $ ssh admin@192.168.100.50 'cat /lib/group' > ./usr/lib/groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow Containerfile で指定して、bootc ベースのシステムで欠けている RHEL for Edge パッケージを含めます。さらに、COPY コマンドを使用して、RHEL for Edge システムから抽出された
groupとpasswdの内容を追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow bootc イメージをビルドし、レジストリーにプッシュします。
podman build -f Containerfile -t quay.io/<namespace>/<image>:<tag> . podman push quay.io/<namespace>/<image>:<tag>
$ podman build -f Containerfile -t quay.io/<namespace>/<image>:<tag> . $ podman push quay.io/<namespace>/<image>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しく作成された起動可能なコンテナーイメージに対して
bootc switchコマンドを実行します。ssh admin@192.168.100.50 sudo bootc switch quay.io/<namespace>/<image>:<tag> sudo reboot
$ ssh admin@192.168.100.50 $ sudo bootc switch quay.io/<namespace>/<image>:<tag> $ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
エッジシステムを起動可能なコンテナーイメージで再起動した後、/lib/passwd と /lib/group の内容が OSTree システムから抽出された内容と一致していることを確認します。
/lib/passwdの内容を確認します。cat /lib/passwd
$ cat /lib/passwdCopy to Clipboard Copied! Toggle word wrap Toggle overflow /lib/groupの内容を確認します。cat /lib/group
$ cat /lib/groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. RAW イメージを使用してインストールされた 9.6 RHEL for Edge を image mode に切り替える リンクのコピーリンクがクリップボードにコピーされました!
生のイメージを使用してインストールした既存の 9.6 RHEL for Edge を使用して、image mode for RHEL に切り替えます。
前提条件
- 既存の 9.6 RHEL for Edge が Raw イメージとともにインストールされている。
手順
- イメージを更新します。RHEL for Edge イメージの更新 を参照してください。
既存のイメージを RHEL Image Builder からイメージモードに切り替えます。
rhel-bootc からイメージを構築します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
現在のディレクトリーの
Containerfileを使用して <image> イメージをビルドします。podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをレジストリーにプッシュします。
podman push quay.io/<namespace>/<image>:_<tag>_
$ podman push quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス上で
bootc switchを実行します。bootc switch quay.io/<namespace>/<image>:_<tag>_
$ bootc switch quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl rebootを実行します。sudo systemctl reboot
$ sudo systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
RHEL for Edge システムに接続し、
bootc statusを使用します。bootc status
# bootc statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. simplified-installer イメージを使用してインストールされた 9.6 RHEL for Edge を image mode に切り替える リンクのコピーリンクがクリップボードにコピーされました!
simplified-installer イメージを使用してインストールした既存の 9.6 RHEL for Edge を使用します。
前提条件
-
simplified-installerイメージを使用してインストールされた既存の 9.6 RHEL for Edge。
手順
bootcがインストールされているかどうかを確認します。rpm -qa | bootc
$ rpm -qa | bootcCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを最新の
rpm-ostreeインストールに更新します。RHEL for Edge イメージの更新 を参照してください。rhel-bootcからイメージをビルドします。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
現在のディレクトリーの
Containerfileを使用して <image> イメージをビルドします。podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをレジストリーにプッシュします。
podman push quay.io/<namespace>/<image>:_<tag>_
$ podman push quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow bootc switchを実行して、デバイスをレジストリーにプッシュしたイメージに切り替えます。bootc switch quay.io/<namespace>/<image>:_<tag>_
$ bootc switch quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl reboot を実行します。
sudo systemctl reboot
$ sudo systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
RHEL for Edge システムに接続し、
bootc statusを使用します。bootc status
# bootc statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. 既存の rpm-ostree インストールから image mode for RHEL 10.0 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
次の手順に従って、image mode for RHEL 10.0 を使用できるように、RHEL 9.6 をベースにする既存の RHEL for Edge システムをアップグレードします。
2.7.1. 既存の RHEL for Edge システムを image mode for RHEL10.0 にアップグレードする リンクのコピーリンクがクリップボードにコピーされました!
image mode for RHEL を使用して、既存の RHEL for Edge 9.6 システムを RHEL 10.0 にアップグレードできます。
前提条件
- 既存の 9.6 RHEL for Edge システム。
手順
イメージを更新します。RHEL for Edge イメージの更新 を参照してください。
sudo rpm-ostree upgrade sudo systemctl reboot
$ sudo rpm-ostree upgrade $ sudo systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL 10.0 を使用する bootc イメージを構築します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーの
Containerfileを使用して <image> イメージをビルドします。podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをレジストリーにプッシュします。
podman push quay.io/<namespace>/<image>:_<tag>_
$ podman push quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス上で
bootc switchを実行します。bootc switch quay.io/<namespace>/<image>:_<tag>_
$ bootc switch quay.io/<namespace>/<image>:_<tag>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムを再起動します。
sudo systemctl reboot
$ sudo systemctl rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
RHEL for Edge システムに接続し、
bootc statusを使用します。bootc status
# bootc statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 FDO を使用した Edge デバイスの RHEL の自動プロビジョニングとオンボーディング リンクのコピーリンクがクリップボードにコピーされました!
image mode for RHEL を使用して、エッジデプロイメントに適したオペレーティングシステムイメージを構築します。FIDO Device Onboarding (FDO) プロセスは、Edge デバイスを自動的にプロビジョニングしてオンボーディングし、ネットワークに接続されている他のデバイスやシステムとデータを交換します。
Red Hat は、テクノロジープレビュー機能として FDO プロセスを提供し、安全なネットワークで実行する必要があります。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
3.1. FIDO Device Onboarding (FDO) プロセス リンクのコピーリンクがクリップボードにコピーされました!
FIDO Device Onboarding (FDO) は、以下を行うプロセスです。
- デバイスをプロビジョニングし、オンボードします。
- このデバイスの認証情報を自動的に設定します。FDO プロセスは、新しいデバイスのインストールによってトリガーされる自動オンボーディングメカニズムです。
- このデバイスがネットワーク上で安全に接続および対話できるようにします。
FIDO Device Onboarding (FDO) を使用すると、IoT アーキテクチャーに新しいデバイスを追加することで、セキュアなデバイスオンボーディングを実行できます。これには、信頼され、実行中の残りのシステムと統合する必要がある特定のデバイス設定が含まれます。FDO プロセスは、新しいデバイスのインストールによってトリガーされる自動オンボーディングメカニズムです。
FDO プロトコルは次のタスクを実行します。
- デバイスの大規模かつセキュアなオンボーディングに必要な自動化を行うとともに、信頼と所有権の連鎖を解決します。
- 製造段階でデバイスの初期化を実行し、デバイスを実際に使用するために遅延バインディングを実行します。これは、デバイスの管理システムへの実際のバインドは、デバイスの手動設定を必要とせずに、デバイスの最初の起動時に行われることを意味します。
- 自動化されたセキュアなデバイスオンボーディング、つまり、エッジロケーションに専門の担当者を必要としないゼロタッチインストールとオンボーディングをサポートします。デバイスがオンボーディングされると、管理プラットフォームはそのデバイスに接続し、パッチの適用、更新、ロールバックを実行できます。
FDO を使用すると、次の利点が得られます。
- FDO は、デバイスを管理プラットフォームに登録するための安全で簡単な方法です。キックスタート設定をイメージに埋め込む代わりに、FDO はデバイスの初回起動時にデバイス認証情報を ISO イメージに直接適用します。
- FDO は、デバイスへのレイトバインディングの問題を解決し、安全な FDO チャネルを介して機密データを共有できるようにします。
- FDO は、設定やその他のシークレットを登録してシステムに渡す前に、システムの ID と所有権を暗号で識別します。これにより、技術者以外のユーザーがシステムの電源を入れることができます。
FDO プロトコルは、次のサーバーに基づいています。
- Manufacturing サーバー
- デバイス認証情報を生成します。
- プロセスの後半でデバイスの所有権を設定するために使用される、所有権バウチャーを作成します。
- デバイスを特定の管理プラットフォームにバインドします。
- 所有者管理システム
- Manufacturing サーバーから所有権バウチャーを受け取り、関連付けられたデバイスの所有者になります。
- プロセスの後半では、デバイス認証後にデバイスと所有者オンボーディングサーバー間にセキュアなチャネルを作成します。
- セキュアなチャネルを使用して、オンボーディングの自動化に必要なファイルやスクリプトなどの情報をデバイスに送信します。
- Service-info API サーバー
- Service-info API サーバーの設定とクライアントで利用可能なモジュールとに基づいて、SSH キーとファイルのコピー、コマンドの実行、ユーザーの作成、ディスクの暗号化など、ターゲットクライアントデバイスでのオンボーディングの最後の手順を実行します。
- Rendezvous サーバー
- 所有者管理システムから所有権バウチャーを取得し、デバイスの UUID を所有者サーバー IP にマッピングします。次に、Rendezvous サーバーはデバイスの UUID をターゲットプラットフォームと照合し、このデバイスがどの所有者オンボーディングサーバーエンドポイントを使用する必要があるかをデバイスに通知します。
- 初回起動時に、Rendezvous サーバーはデバイスのコンタクトポイントになり、デバイスは所有者に送られ、デバイスと所有者が安全なチャンネルを確立できるようにします。
- デバイスクライアント
これはデバイスにインストールされています。デバイスクライアントは、以下のアクションを実行します。
- オンボーディングの自動化が実行される複数のサーバーへのクエリーを開始します。
- TCP/IP プロトコルを使用してサーバーと通信します。
デバイスの初期化 では、デバイスは Manufacturing サーバーに接続して、FDO 認証情報、オペレーティングシステムにインストールされる一連の証明書とキー、および Rendezvous サーバーエンドポイント (URL) を取得します。また、所有者の割り当てを変更する必要がある場合に備えて、個別に保持される所有権バウチャーも取得します。
- デバイスが Manufacturing サーバーに接続します。
- Manufacturing サーバーがデバイスの所有権バウチャーとデバイス認証情報を生成します。
- 所有権バウチャーが所有者オンボーディングサーバーに転送されます。
オンサイトのオンボーディング では、デバイスはデバイス認証情報から Rendezvous サーバーエンドポイント (URL) を取得し、Rendezvous サーバーエンドポイントに接続してオンボーディングプロセスを開始します。これにより、デバイスは、所有者オンボーディングサーバーと Service Info API サーバーで構成される所有者管理システムにリダイレクトされます。
- 所有者オンボーディングサーバーは、所有権バウチャーを Rendezvous サーバーに転送し、Rendezvous サーバーは、所有権バウチャーを所有者にマッピングします。
- デバイスクライアントがデバイス認証情報を読み込みます。
- デバイスクライアントがネットワークに接続します。
- ネットワークに接続した後、デバイスクライアントは Rendezvous サーバーに接続します。
- Rendezvous サーバーは、所有者のエンドポイント URL をデバイスクライアントに送信し、デバイスを登録します。
- デバイスクライアントは、Rendezvous サーバーによって共有された所有者オンボーディングサーバーに接続します。
- デバイスは、デバイスキーを使用してステートメントに署名することにより、正しいデバイスであることを証明します。
- 所有者オンボーディングサーバーは、所有者バウチャーの最後のキーを使用してステートメントに署名することで、正しいサーバーであることを証明します。
- 所有者オンボーディングサーバーは、デバイスの情報を Service Info API サーバーに転送します。
- Service Info API サーバーは、デバイスの設定を送信します。
- デバイスがオンボードされます。
3.2. FDO 自動オンボーディングテクノロジー リンクのコピーリンクがクリップボードにコピーされました!
以下は、FDO 自動オンボーディングに関連して使用されるテクノロジーです。
| テクノロジー | 定義 |
|---|---|
| UEFI | Unified Extensible Firmware Interface |
| RHEL | Red Hat® オペレーティングシステム |
|
| 背景イメージベースのアップグレード。 |
| Greenboot |
|
| image mode for RHEL | コンテナーを使用してオペレーティングシステムアーティファクトのシステムを構築する新しいデプロイ方法。 |
| コンテナー | Linux® コンテナーは、システムの他の部分から分離された 1 つ以上のプロセスのセットです。 |
| Coreos-installer | RHEL イメージのインストールを支援し、UEFI でシステムを起動します。 |
| FIDO FDO | 設定およびオンボーディングデバイスをプロビジョニングするための仕様プロトコル。 |
3.3. RHEL for Edge デバイス用の自動プロビジョニングとオンボーディング リンクのコピーリンクがクリップボードにコピーされました!
podman build を使用してイメージをビルドし、自動的にオンボードします。イメージを起動すると、ハードディスク上または仮想マシンのブートイメージとして使用できる RHEL for Edge システムがプロビジョニングされます。
RHEL for Edge デバイスを自動的にプロビジョニングしてオンボーディングする手順の概要は次のとおりです。
- RHEL システムをインストールして登録します。
Containerfile を作成します。例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーの Containerfile を使用して <image> イメージをビルドします。
podman build -t quay.io/<namespace>/<image>:<tag> .
$ podman build -t quay.io/<namespace>/<image>:<tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow この時点で、FDO サーバーインフラストラクチャーが稼働している必要があり、所有者のインフラストラクチャーの一部である
service-info APIサーバーによって処理される特定のオンボーディングの詳細が設定されます。- イメージをデバイスにインストールします。FDO クライアントはイメージ上で実行され、UEFI ディレクトリー構造によりイメージが起動可能になります。
- ネットワーク設定により、デバイスは Manufacturing サーバーに接続して、最初のデバイス認証情報の交換を実行できます。
- システムがエンドポイントに到達すると、デバイスに対してデバイスの認証情報が作成されます。
- デバイスは、デバイスの認証情報を使用して Rendezvous サーバーに到達します。この場合、Rendezvous サーバーが持つバウチャーに基づいて暗号化認証情報を確認し、Rendezvous サーバーはデバイスを所有者サーバーにリダイレクトします。
- デバイスは所有者サーバーに接続します。相互の信頼を確立し、Service-info API サーバーの設定に基づいてオンボーディングの最後の手順を行います。たとえば、デバイスに SSH キーをインストールして、ファイルを転送し、ユーザーの作成、コマンドの実行、ファイルシステムの暗号化などを行います。
3.4. キーおよび証明書の生成 リンクのコピーリンクがクリップボードにコピーされました!
FIDO Device Onboarding (FDO) インフラストラクチャーを実行するには、キーと証明書を生成する必要があります。FDO はこれらのキーと証明書を生成して、Manufacturing サーバーを設定します。サービスをインストールすると、FDO によって証明書と .yaml 設定ファイルが自動的に生成されます。再作成はオプションです。サービスをインストールして開始すると、デフォルト設定で実行されます。
Red Hat は、テクノロジープレビュー機能として fdo-admin-tool ツールを提供し、安全なネットワークで実行する必要があります。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
fdo-admin-cliRPM パッケージをインストールしました
手順
/etc/fdoディレクトリーに鍵と証明書を生成します。for i in "diun" "manufacturer" "device-ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done $ ls keys device_ca_cert.pem device_ca_key.der diun_cert.pem diun_key.der manufacturer_cert.pem manufacturer_key.der owner_cert.pem owner_key.der
$ for i in "diun" "manufacturer" "device-ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done $ ls keys device_ca_cert.pem device_ca_key.der diun_cert.pem diun_key.der manufacturer_cert.pem manufacturer_key.der owner_cert.pem owner_key.derCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/fdo/keysディレクトリーに作成された鍵と証明書を確認します。tree keys
$ tree keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の出力が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. manufacturing サーバーのインストールと実行 リンクのコピーリンクがクリップボードにコピーされました!
fdo-manufacturing-server RPM パッケージを使用すると、FDO プロトコルの Manufacturing サーバーコンポーネントを実行できます。また、所有者バウチャー、製造者キー、製造セッションに関する情報など、他のコンポーネントも保存されます。デバイスのインストール中に、Manufacturing サーバーは、GUID、rendezvous 情報、その他のメタデータを含む、特定のデバイスのデバイス認証情報を生成します。プロセスの後半で、デバイスはこの rendezvous 情報を使用して Rendezvous サーバーに接続します。
Red Hat は fdo-manufacturing-server ツールをテクノロジープレビュー機能として提供しています。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではない可能性があるため、安全なネットワーク上で実行する必要があります。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
manufacturing server の RPM パッケージをインストールするには、次の手順を実行します。
手順
fdo-admin-cliパッケージをインストールします。dnf install -y fdo-admin-cli
# dnf install -y fdo-admin-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow fdo-manufacturing-serverRPM パッケージがインストールされているかどうかを確認します。rpm -qa | grep fdo-manufacturing-server --refresh
$ rpm -qa | grep fdo-manufacturing-server --refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルが正しくインストールされたかどうかを確認します。
*ls /usr/share/doc/fdo*SSSS
$ *ls /usr/share/doc/fdo*SSSSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の出力が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 各ファイルの内容を確認します。次に例を示します。
cat /usr/share/doc/fdo/manufacturing-server.yml
$ cat /usr/share/doc/fdo/manufacturing-server.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Manufacturing サーバーを設定します。次の情報を提供する必要があります。
- Manufacturing サーバーの URL
- Rendezvous サーバーの IP アドレスまたは DNS 名
生成した鍵と証明書へのパス。
Manufacturing サーバーの設定ファイルの例は、
/usr/share/doc/fdo/manufacturing-server.ymlディレクトリーにあります。以下は、/etc/fdoディレクトリーに作成および保存されるmanufacturing server.ymlの例です。これには、作成したディレクトリー、証明書、キー、Rendezvous サーバーの IP アドレス、およびデフォルトのポートへのパスが含まれています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Manufacturing サーバーを起動します。
systemd ユニットファイルがサーバー内にあるかどうかを確認します。
systemctl list-unit-files | grep fdo | grep manufacturing fdo-manufacturing-server.service disabled disabled
# systemctl list-unit-files | grep fdo | grep manufacturing fdo-manufacturing-server.service disabled disabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow manufacturing サーバーを有効にして起動します。
systemctl enable --now fdo-manufacturing-server.service
# systemctl enable --now fdo-manufacturing-server.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイアウォールのデフォルトのポートを開きます。
firewall-cmd --add-port=8080/tcp --permanent systemctl restart firewalld
# firewall-cmd --add-port=8080/tcp --permanent # systemctl restart firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスがポート 8080 でリッスンしていることを確認します。
ss -ltn
# ss -ltnCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 簡略化されたインストーラーを使用して、RHEL for Edge をシステムにインストールします。
3.6. Rendezvous サーバーのインストール、設定、および実行 リンクのコピーリンクがクリップボードにコピーされました!
fdo-rendezvous-server RPM パッケージをインストールして、最初のデバイスの起動時に Manufacturing サーバーによって生成されたバウチャーをシステムが受信できるようにします。次に、Rendezvous サーバーはデバイスの UUID を移行先のプラットフォームまたはクラウドと照合し、デバイスが使用する必要があるオーナーサーバーエンドポイントをデバイスに通知します。
前提条件
-
manufacturer_cert.pem証明書を作成した。 -
manufacturer_cert.pem証明書を Rendezvous サーバーの/etc/fdo/keysディレクトリーにコピーした。
手順
fdo-rendezvous-serverRPM パッケージをインストールします。dnf install -y fdo-rendezvous-server
# dnf install -y fdo-rendezvous-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 製造元証明書へのパスを含む、
rendezvous-server.yml設定ファイルを作成します。/usr/share/doc/fdo/rendezvous-server.ymlに例があります。次の例は、/etc/fdo/rendezvous-server.ymlに保存される設定ファイルを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Rendezvous サーバーサービスのステータスを確認します。
systemctl list-unit-files | grep fdo | grep rende fdo-rendezvous-server.service disabled disabled
# systemctl list-unit-files | grep fdo | grep rende fdo-rendezvous-server.service disabled disabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスが停止して無効になっている場合は、有効にして起動します。
systemctl enable --now fdo-rendezvous-server.service
# systemctl enable --now fdo-rendezvous-server.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
サーバーがデフォルト設定のポート 8082 でリッスンしていることを確認します。
ss -ltn
# ss -ltnCopy to Clipboard Copied! Toggle word wrap Toggle overflow このサーバーにファイアウォールが設定されている場合は、ポートを開きます。
firewall-cmd --add-port=8082/tcp --permanent systemctl restart firewalld
# firewall-cmd --add-port=8082/tcp --permanent # systemctl restart firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 所有者サーバーのインストール、設定、および実行 リンクのコピーリンクがクリップボードにコピーされました!
fdo-owner-cli および fdo-owner-onboarding-server RPM パッケージをインストールして、最初のデバイスの起動時に Manufacturing サーバーによって生成されたバウチャーをシステムが受信できるようにします。次に、Rendezvous サーバーはデバイスの UUID を移行先のプラットフォームまたはクラウドと照合し、デバイスが使用する必要があるオーナーサーバーエンドポイントをデバイスに通知します。
前提条件
- サーバーがデプロイされるデバイスに、ディスクを暗号化する Trusted Platform Module (TPM) デバイスが搭載されている。搭載されていない場合、RHEL for Edge デバイスを起動するときにエラーが発生します。
-
鍵と証明書を含む
device_ca_cert.pem、owner_key.der、およびowner_cert.pemを作成し、それらを/etc/fdo/keysディレクトリーにコピーした。
手順
このサーバーに必要な RPM をインストールします。
dnf install -y fdo-owner-cli fdo-owner-onboarding-server
# dnf install -y fdo-owner-cli fdo-owner-onboarding-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow owner-onboarding-server.yml設定ファイルを準備し、/etc/fdo/ディレクトリーに保存します。このファイルには、コピー済みの証明書へのパスと、所有者サーバーサービスを公開する場所に関する情報を含めます。以下は、
/usr/share/doc/fdo/owner-onboarding-server.ymlで利用できる例です。URL や認証トークンなど、Service Info API への参照を見つけることができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service Info API を作成して設定します。
ユーザー作成、コピーまたは作成するファイル、実行するコマンド、暗号化するディスクなどのオンボーディング用の自動化情報を追加します。
/usr/share/doc/fdo/serviceinfo-api-server.ymlにある Service Info API 設定ファイルの例をテンプレートとして使用し、/etc/fdo/の下に設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
systemd ユニットのステータスを確認します。
systemctl list-unit-files | grep fdo fdo-owner-onboarding-server.service disabled disabled fdo-serviceinfo-api-server.service disabled disabled
# systemctl list-unit-files | grep fdo fdo-owner-onboarding-server.service disabled disabled fdo-serviceinfo-api-server.service disabled disabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスが停止して無効になっている場合は、有効にして起動します。
systemctl enable --now fdo-owner-onboarding-server.service systemctl enable --now fdo-serviceinfo-api-server.service
# systemctl enable --now fdo-owner-onboarding-server.service # systemctl enable --now fdo-serviceinfo-api-server.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記設定ファイルを変更するたびに、
systemdサービスを再起動する必要があります。
サーバーがデフォルト設定のポート 8083 でリッスンしていることを確認します。
ss -ltn
# ss -ltnCopy to Clipboard Copied! Toggle word wrap Toggle overflow このサーバーにファイアウォールが設定されている場合は、ポートを開きます。
firewall-cmd --add-port=8081/tcp --permanent firewall-cmd --add-port=8083/tcp --permanent systemctl restart firewalld
# firewall-cmd --add-port=8081/tcp --permanent # firewall-cmd --add-port=8083/tcp --permanent # systemctl restart firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8. FDO 認証を使用して RHEL for Edge デバイスを自動的にオンボーディング リンクのコピーリンクがクリップボードにコピーされました!
RHEL for Edge デバイスを自動的にオンボードし、インストールプロセスの一環としてプロビジョニングするようにデバイスを準備するには、次の手順を実行します。
前提条件
-
podman buildを使用してカスタマイズされたイメージを構築した。 - デバイスが組み立てられている。
-
fdo-manufacturing-serverRPM パッケージがインストールされている。manufacturing サーバーパッケージのインストール を参照してください。
手順
- デバイスで RHEL for Edge イメージを起動して、インストールプロセスを開始します。たとえば、CD-ROM または USB フラッシュドライブからインストールできます。
ターミナルを介して、デバイスが製造サービスに到達し、最初のデバイスクレデンシャルエクスチェンジを実行して、所有権バウチャーを作成したことを確認します。
所有権バウチャーは、
manufacturing-sever.ymlファイルのownership_voucher_store_driver:パラメーターで設定されている保管場所にあります。このディレクトリーには、正しいデバイスクレデンシャルがデバイスに追加されたことを示す、GUID 形式の名前を持つ
ownership_voucherファイルが含まれているはずです。オンボーディングサーバーは、デバイス認証情報を使用して、オンボーディングサーバーに対して認証を行います。次に、設定をデバイスに渡します。デバイスはオンボーディングサーバーから設定を受信すると、SSH 鍵を受信し、デバイスにオペレーティングシステムをインストールします。最後に、システムは自動的に再起動し、TPM に保存されている強力なキーで暗号化します。
検証
デバイスが自動的に再起動した後、FDO プロセスの一部として作成した認証情報を使用してデバイスにログインできます。
- Service Info API で作成したユーザー名とパスワードを入力して、デバイスにログインします。
3.9. FDO を使用して image mode for RHEL システムをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
FIDO Device Onboarding (FDO) を使用してこのシステムに設定を配信することにより、RHEL システムのイメージモードをデプロイできます。キックスタートファイルを使用して、ユーザーの設定、パーティションのカスタマイズ、SSH 鍵の追加など、インストールプロセスのさまざまな部分を設定します。ISO ビルドにキックスタートファイルを含めることで、ベースイメージのデプロイメントを除くインストールプロセスの任意の部分を設定できます。
bootc コンテナーベースイメージを含む ISO を使用する場合、bootc-image-builder はコンテナーイメージをインストールするコマンドである ostreecontainer を自動的にインストールします。ostreecontainer コマンド以外は、引き続きすべてを設定できます。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行してコンテナーを--privilegedモードで実行するための root のアクセス権がある。 - FDO サーバーインフラストラクチャーがデプロイされている。
手順
Containerfile を作成します。例:
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y fdo-init fdo-client RUN systemctl enable fdo-client-linuxapp.service
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y fdo-init fdo-client RUN systemctl enable fdo-client-linuxapp.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow キックスタートファイルを作成します。次のキックスタートファイルは、ユーザーの作成とパーティションの指示を含む、完全に自動のキックスタートファイル設定の例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポート <MANUFACTURING_SERVER_URL> フィールドで、Manufacturing サーバー URL を独自の Manufacturing サーバー URL に置き換えます。
-
キックスタートコンテンツを挿入するには、キックスタート設定を
.toml形式で保存します。たとえば、config.tomlです。 次のフォルダーを作成します。
mkdir $(pwd)/output"
$ mkdir $(pwd)/output"Copy to Clipboard Copied! Toggle word wrap Toggle overflow bootc-image-builderを実行し、ISO ビルドに追加するキックスタートファイル設定を含めます。bootc-image-builderによって、コンテナーイメージをインストールするostreecontainerコマンドが自動的に追加されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された
.isoイメージは output フォルダーにあります。