検索

5.5. オフラインデプロイ用の rpm-ostree イメージのビルドと使用

download PDF

Image Builder を使用して、MicroShift コンテナーイメージが埋め込まれた rpm-ostree システムイメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントにイメージ参照を追加する必要があります。必要に応じて、ユースケースに合わせてコミットと ISO を作成できます。

後述する手順の前提条件に加えて、次の前提条件を満たす必要があります。

5.5.1. オフラインデプロイの追加の前提条件

  • オフラインで使用するための RHEL for Edge イメージブループリントを作成および更新している。次の手順では、コンテナーイメージを使用して作成したブループリントの例を使用します。「オフラインデプロイ用の MicroShift コンテナーの埋め込み」手順で作成した更新済みのブループリントを使用する必要があります。
  • /etc/osbuild-worker/osbuild-worker.toml 設定ファイルをオフラインで使用するために更新している。
重要

次の手順の minimum-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> を、ブループリントに使用する名前に置き換えます。

手順

  1. 次の例を使用して、独自のブループリントファイルを作成します。

    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

    1
    <microshift_blueprint.toml> は TOML ファイルの名前です。
    2
    <microshift_blueprint> はブループリントの名前です。
    注記

    コマンドのワイルドカード * は、最新の MicroShift RPM を使用します。特定のバージョンが必要な場合は、ワイルドカードを必要なバージョンに置き換えます。たとえば、MicroShift 4.15.0 RPM をダウンロードするには、4.15.0 を挿入します。

  2. オプション: /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

    1
    microshift-release-info RPM と互換性のある同じバージョンを使用する、オプション以外のすべての MicroShift RPM パッケージの参照。
    2
    システム起動時に MicroShift を自動的に有効にし、デフォルトのネットワーク設定を適用するための参照。
    3
    オフラインデプロイメントに必要なオプション以外のすべての MicroShift コンテナーイメージの参照。
  3. 次のコマンドを実行して、Image Builder にブループリントを追加します。

    $ sudo composer-cli blueprints push <microshift_blueprint.toml> 1
    1
    <microshift_blueprint.toml> をTOML ファイルの名前に置き換えます。

検証

  1. 次のコマンドを実行して、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

  2. オプション: 次のコマンドを実行して、インストールするすべてのコンポーネントをリストした 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 ツールがインストールされている。

手順

  1. 以下のコマンドを実行して ostree コンテナーイメージビルドを開始します。

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/9/$(uname -m)/edge" minimal-microshift edge-container | awk '{print $2}')

    このコマンドは、監視対象のビルドの ID (ID) も返します。

  2. 次のコマンドを実行して、ビルドのステータスを定期的に確認できます。

    $ 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   minimal-microshift   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   minimal-microshift   0.0.1     edge-container

    注記

    起動および停止方法を理解している場合は、watch コマンドを使用してビルドを監視できます。

  3. ID を使用してコンテナーイメージをダウンロードし、次のコマンドを実行して、使用可能なイメージを取得します。

    $ sudo composer-cli compose image ${BUILDID}
  4. 次のコマンドを実行して、ダウンロードしたコンテナーイメージの所有権を現在のユーザーに変更します。

    $ sudo chown $(whoami). ${BUILDID}-container.tar
  5. 次のコマンドを実行して、現在のユーザーの読み取り権限をイメージに追加します。

    $ sudo chmod a+r ${BUILDID}-container.tar
  6. 以下の手順を実行して、ostree コンテナーイメージが ISO ビルドで使用されるようにポート 8085 でサーバーをブートストラップします。

    1. 次のコマンドを実行して、IMAGEID 変数の結果を取得します。

      $ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
    2. IMAGEID 変数の結果をもとに、以下のコマンドを実行して podman コマンドを実行します。

      $ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}

      このコマンドは、監視用に IMAGEID 変数に保存されているコンテナーの ID も返します。

  7. 次のコマンドを実行して、インストーラーブループリントファイルを生成します。

    cat > microshift-installer.toml <<EOF
    name = "microshift-installer"
    
    description = ""
    version = "0.0.0"
    modules = []
    groups = []
    packages = []
    EOF
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.