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> <<EOF 1 name = "<microshift_blueprint>" 2 description = "" version = "0.0.1" modules = [] groups = [] [[packages]] name = "microshift" version = "*" [customizations.services] enabled = ["microshift"] EOF
注記コマンドのワイルドカード
*
は、最新の MicroShift RPM を使用します。特定のバージョンが必要な場合は、ワイルドカードを必要なバージョンに置き換えます。たとえば、MicroShift 4.15.0 RPM をダウンロードするには、4.15.0
を挿入します。オプション:
/usr/share/microshift/blueprint
ディレクトリーにインストールされている、プラットフォームアーキテクチャーに固有のブループリントを使用します。ブループリントセクションの説明は、次のサンプルスニペットを参照してください。生成された Image Builder ブループリントのサンプルスニペット
name = "microshift_blueprint" description = "MicroShift 4.15.1 on x86_64 platform" version = "0.0.1" modules = [] groups = [] [[packages]] 1 name = "microshift" version = "4.15.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 microshift 1
- 1
- <microshift_blueprint> をブループリントの名前に置き換えます。
出力例
blueprint: microshift_blueprint v0.0.1 microshift-greenboot-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.noarch microshift-networking-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.x86_64 microshift-release-info-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.noarch microshift-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.x86_64 microshift-selinux-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.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 '{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