5.5. オフラインデプロイ用の rpm-ostree イメージのビルドと使用
Image Builder を使用して、MicroShift コンテナーイメージが埋め込まれた rpm-ostree システムイメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントにイメージ参照を追加する必要があります。必要に応じて、ユースケースに合わせてコミットと ISO を作成できます。
後述する手順の前提条件に加えて、次の前提条件を満たす必要があります。
5.5.1. オフラインデプロイの追加の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- オフラインで使用するための RHEL for Edge イメージブループリントを作成および更新している。次の手順では、コンテナーイメージを使用して作成したブループリントの例を使用します。「オフラインデプロイ用の MicroShift コンテナーの埋め込み」手順で作成した更新済みのブループリントを使用する必要があります。
-
/etc/osbuild-worker/osbuild-worker.toml設定ファイルをオフラインで使用するために更新している。
次の手順の minimal-microshift.toml は、オフラインで使用するために更新した TOML の名前 <my_blueprint_name> に置き換えます。
5.5.2. ブループリントへの MicroShift サービスの追加する リンクのコピーリンクがクリップボードにコピーされました!
MicroShift RPM パッケージを Image Builder ブループリントに追加すると、MicroShift が埋め込まれた RHEL for Edge イメージをビルドできるようになります。
- 手順 1 から開始して独自の最小限のブループリントファイルを作成すると、MicroShift のインストールが高速化されます。
手順 2 から開始して、すべての RPM パッケージとコンテナーイメージを含む、生成されたインストール用のブループリントを使用します。これはインストールプロセスに時間がかかりますが、コンテナー参照がローカルでアクセスされるため、起動は速くなります。
重要- 次の手順の <microshift_blueprint.toml> を、使用している TOML ファイルの名前に置き換えます。
- 次の手順の <microshift_blueprint> を、ブループリントに使用する名前に置き換えます。
手順
次の例を使用して、独自のブループリントファイルを作成します。
Custom Image Builder ブループリントの例
cat > <microshift_blueprint.toml> <<EOF1 name = "<microshift_blueprint>"2 description = "" version = "0.0.1" modules = [] groups = [] [[packages]] name = "microshift" version = "*" [customizations.services] enabled = ["microshift"] EOF注記コマンドのワイルドカード
*は、最新の MicroShift RPM を使用します。特定のバージョンが必要な場合は、ワイルドカードを必要なバージョンに置き換えます。たとえば、MicroShift 4.16.0 RPM をダウンロードするには、4.16.0を挿入します。オプション:
/usr/share/microshift/blueprintディレクトリーにインストールされている、プラットフォームアーキテクチャーに固有のブループリントを使用します。ブループリントセクションの説明は、次のサンプルスニペットを参照してください。生成された Image Builder ブループリントのサンプルスニペット
name = "microshift_blueprint" description = "MicroShift 4.16.1 on x86_64 platform" version = "0.0.1" modules = [] groups = [] [[packages]]1 name = "microshift" version = "4.16.1" ... ... [customizations.services]2 enabled = ["microshift"] [customizations.firewall] ports = ["22:tcp", "80:tcp", "443:tcp", "5353:udp", "6443:tcp", "30000-32767:tcp", "30000-32767:udp"] ... ... [[containers]]3 source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f41e79c17e8b41f1b0a5a32c3e2dd7cd15b8274554d3f1ba12b2598a347475f4" [[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dbc65f1fba7d92b36cf7514cd130fe83a9bd211005ddb23a8dc479e0eea645fd" ... … EOF次のコマンドを実行して、Image Builder にブループリントを追加します。
$ sudo composer-cli blueprints push <microshift_blueprint.toml>1 - 1
- <microshift_blueprint.toml> を TOML ファイルの名前に置き換えます。
検証
次のコマンドを実行して、MicroShift パッケージのみをリストした Image Builder 設定を確認します。
$ sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift1 - 1
- <microshift_blueprint> をブループリントの名前に置き換えます。
出力例
blueprint: microshift_blueprint v0.0.1 microshift-greenboot-4.16.1-202305250827.p0.g4105d3b.assembly.4.16.1.el9.noarch microshift-networking-4.16.1-202305250827.p0.g4105d3b.assembly.4.16.1.el9.x86_64 microshift-release-info-4.16.1-202305250827.p0.g4105d3b.assembly.4.16.1.el9.noarch microshift-4.16.1-202305250827.p0.g4105d3b.assembly.4.16.1.el9.x86_64 microshift-selinux-4.16.1-202305250827.p0.g4105d3b.assembly.4.16.1.el9.noarchオプション: 次のコマンドを実行して、インストールするすべてのコンポーネントをリストした Image Builder 設定を確認します。
$ sudo composer-cli blueprints depsolve <microshift_blueprint>1 - 1
- <microshift_blueprint> をブループリントの名前に置き換えます。
5.5.3. RHEL for Edge イメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
ISO を作成するには、以下の手順を使用します。RHEL for Edge Installer イメージは、実行中のコンテナーからコミットをプルし、埋め込みの rpm-ostree コミットを使用するように設定されたキックスタートファイルを持つ、インストール可能なブート ISO を作成します。
前提条件
- ビルドホストが Image Builder のシステム要件を満たしている。
-
Image Builder と
composer-cliツールをインストールしてセットアップしている。 - ビルドホストへの root ユーザーアクセス権がある。
-
podmanツールがインストールされている。
手順
以下のコマンドを実行して
ostreeコンテナーイメージビルドを開始します。$ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}')1 - 1
- <microshift_blueprint> をブループリントの名前に置き換えます。
このコマンドは、監視対象のビルドの ID (ID) も返します。
次のコマンドを実行して、ビルドのステータスを定期的に確認できます。
$ sudo composer-cli compose status実行中のビルドの出力例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-container完了したビルドの出力例
ID Status Time Blueprint Version Type Size cc3377ec-4643-4483-b0e7-6b0ad0ae6332 FINISHED Wed Jun 7 12:32:37 2023 microshift_blueprint 0.0.1 edge-container注記起動および停止方法を理解している場合は、
watchコマンドを使用してビルドを監視できます。ID を使用してコンテナーイメージをダウンロードし、次のコマンドを実行して、使用可能なイメージを取得します。
$ sudo composer-cli compose image ${BUILDID}次のコマンドを実行して、ダウンロードしたコンテナーイメージの所有権を現在のユーザーに変更します。
$ sudo chown $(whoami). ${BUILDID}-container.tar次のコマンドを実行して、現在のユーザーの読み取り権限をイメージに追加します。
$ sudo chmod a+r ${BUILDID}-container.tar以下の手順を実行して、
ostreeコンテナーイメージが ISO ビルドで使用されるようにポート 8085 でサーバーをブートストラップします。次のコマンドを実行して、
IMAGEID変数の結果を取得します。$ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')IMAGEID変数の結果をもとに、以下のコマンドを実行して podman コマンドを実行します。$ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}このコマンドは、監視用に
IMAGEID変数に保存されているコンテナーの ID も返します。
次のコマンドを実行して、インストーラーブループリントファイルを生成します。
cat > microshift-installer.toml <<EOF name = "microshift-installer" description = "" version = "0.0.0" modules = [] groups = [] packages = [] EOF