Menu Close

第5章 Image Builder コマンドラインを使用した RHEL for Edge イメージの作成

Image Builder を使用して、カスタマイズした RHEL for Edge イメージ (OSTree コミット) を作成します。

Image Builder にアクセスし、カスタマイズした RHEL for Edge イメージを作成するには、RHEL Web コンソールインターフェースまたはコマンドラインインターフェースを使用します。この章では、CLI を使用して RHEL for Edge イメージを作成する方法について説明します。

ネットワークベースのデプロイメントの場合、CLI を使用して RHEL for Edge イメージを作成するワークフローでは、以下の概要手順を実施します。

  1. RHEL for Edge イメージの Blueprint の作成
  2. RHEL for Edge Commit イメージの作成
  3. RHEL for Edge Commit イメージのダウンロード

ネットワークベース以外のデプロイメントの場合、CLI を使用して RHEL for Edge イメージを作成するワークフローでは、以下の概要手順を実施します。

  1. RHEL for Edge イメージの Blueprint の作成
  2. RHEL for Edge Containerイメージの作成
  3. RHEL for Edge インストーラーイメージのブループリントの作成
  4. RHEL for Edge Installer イメージを作成する
  5. RHEL for Edge イメージをダウンロードする

手順を実行するには、composer-cli パッケージを使用します。

注記

composer-cli コマンドを root 以外のユーザーとして実行するには、weldr グループの一員であるか、システムへの管理者アクセス権を持っている必要があります。

5.1. ネットワークベースのデプロイメントワークフロー

5.1.1. Image Builder コマンドラインインターフェースを使用した RHEL for Edge Commit イメージの Blueprint の作成

CLI を使用して RHEL for Edge Commit イメージの Blueprint を作成します。

前提条件

  • 既存の Blueprint がない。これを確認するには、既存の Blueprint を一覧表示します。

    $ sudo composer-cli blueprints list

手順

  1. TOML 形式で、以下の内容でプレーンテキストファイルを作成します。

    name = "blueprint-name"
    description = "blueprint-text-description"
    version = "0.0.1"
    modules = [ ]
    groups = [ ]

    詳細は以下のようになります。

    • blueprint-name は名前で、blueprint-text-description は Blueprint の説明になります。
    • 0.0.1 は、Semantic Versioning スキームに従って、バージョン番号に置き換えます。
    • モジュール は、イメージにインストールされるパッケージ名とそれに対応するバージョングロブを記述します (例: パッケージ名 = "tmux"、対応するバージョングロブのバージョン = "2.9a")。

      現在、パッケージとモジュールには違いがないことに注意してください。

    • グループ は、イメージにインストールされるパッケージグループです (例: グループパッケージ anaconda-tools)。

      このとき、モジュールおよびグループがわからない場合は、空欄のままにしておきます。

  2. 要件に沿うように、必要なパッケージを含め、Blueprint の他の詳細をカスタマイズします。

    Blueprint に含むすべてのパッケージについて、以下の行をファイルに追加します。

    [[packages]]
    name = "package-name"
    version = "package-version"

    詳細は以下のようになります。

    • package-name は、パッケージ名に置き換えます (例: httpd, gdb-doc、coreutils など)。
    • package-version は、使用するパッケージのバージョン番号に置き換えます。

      package-version は、以下の dnf バージョン仕様をサポートしています。

    • 特定のバージョンを指定する場合は、9.0 のように、バージョン番号を正確に指定してください。
    • 利用可能な最新バージョンを指定する場合は、アスタリスク * を使用します。
    • 最新のマイナーバージョンを指定する場合の形式は、9.* のようになります。
  3. Blueprint を Image Builder サーバーにプッシュ (インポート) します。

    # composer-cli blueprints push blueprint-name.toml
  4. 既存の Blueprint を一覧表示して、作成した Blueprint が正常にプッシュされて存在するかどうかを確認します。

    # composer-cli blueprints show BLUEPRINT-NAME
  5. Blueprint に記載されているコンポーネントおよびバージョンと、その依存関係が有効かどうかを確認します。

    # composer-cli blueprints depsolve blueprint-name

5.1.2. Image Builder Commit コマンドラインインターフェースを使用した RHEL for Edge イメージの作成

Image Builder Commit コマンドラインインターフェースを使用して RHEL for Edge イメージを作成するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL for Edge Commit イメージのブループリントを作成しました。

手順

  1. RHEL for Edge Commit イメージを作成します。

    # composer-cli compose start blueprint-name image-type

    詳細は以下のようになります。

    • blueprint-name は RHEL for Edge の Blueprint 名です。
    • image-typenetwork-based deploymentedge-commit です。

      composer プロセスがキューに追加されたことを確認する画面が表示されます。また、作成されたイメージの UUID (Universally Unique Identifier) 番号も表示されます。UUID 番号を使用してビルドを追跡します。また、更なるタスクのために UUID 番号を手元に保管しておきます。

  2. イメージの作成状態を確認します。

    # composer-cli compose status

    出力には、以下の形式で状態が表示されます。

    <UUID> RUNNING date blueprint-name blueprint-version image-type
    注記

    イメージの作成プロセスは、完了するまでに最大 20 分かかります。

    イメージ作成プロセスを中断するには、以下を実行します。

    # composer-cli compose cancel <UUID>

    既存イメージを削除するには、以下を実行します。

    # composer-cli compose delete <UUID>

    イメージの準備ができたら、イメージをダウンロードして ネットワークデプロイメント で使用できます。

5.1.3. Image Builder コマンドラインインターフェースを使用した、親コミットによるRHEL for Edge イメージアップデートの作成

既存のブループリントで変更を行った場合(例えば、新しいパッケージを追加し、既存のRHEL for Edgeイメージをこの新しいパッケージで更新したい場合)、親コミットIDを使用して、更新されたRHEL for Edge Commit(.tar)イメージを生成することができます。

Image Builder コマンドラインインターフェースを使用して、親コミットでRHEL for Edge イメージを作成するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL for Edgeイメージの既存のブループリントを更新している。
  • 既存の RHEL for Edge イメージ(OSTree コミット)がある。Extracting RHEL for Edge image commitを参照してください。

手順

  1. RHEL for Edgeのイメージを作成します。

    # composer-cli compose start-ostree --ref rhel/9/x86_64/edge --parent parent-OSTree-commit-id blueprint-name image-type

    詳細は以下のようになります。

    • --ref は、ostree リポジトリーの構築に使用した値と同じです。
    • --parentは OSTree の親コミットです。
    • blueprint-name は RHEL for Edge の Blueprint 名です。
    • image-typenetwork-based deploymentedge-commit です。

      注記

      --parent引数は、RHEL for Edge Commit (.tar)イメージタイプにのみ使用できます。引数--url--parentを一緒に使うとエラーになります。

      composer プロセスがキューに追加されたことを確認する画面が表示されます。また、作成されたイメージの UUID (Universally Unique Identifier) 番号も表示されます。UUID 番号を使用してビルドを追跡します。また、更なるタスクのために UUID 番号を手元に保管しておきます。

  2. イメージの作成状態を確認します。

    # composer-cli compose status

    出力には、以下の形式で状態が表示されます。

    <UUID> RUNNING date blueprint-name blueprint-version image-type
    注記

    イメージ作成プロセスの完了まで数分かかります。

    (オプション)イメージ作成プロセスを中断するには、以下を実行します。

    # composer-cli compose cancel <UUID>

    (オプション)既存のイメージを削除するには、以下を実行します。

    # composer-cli compose delete <UUID>

イメージの作成が完了した後、既存のostreeデプロイメントをアップグレードするには、以下が必要です。

  • リポジトリを設定します。Deploying a RHEL for Edge imageを参照してください。
  • このリポジトリをリモート、つまり、ostreeコンテンツをホストするhttpまたはhttpsのエンドポイントとして追加します。
  • 新しい OSTree コミットを既存の稼働中のインスタンスにプルします。Deploying RHEL for Edge image updates manuallyを参照してください。

5.1.4. Image Builder コマンドラインインターフェースを使用した RHEL for Edge イメージのダウンロード

Image Builder コマンドラインインターフェースを使用して RHEL for Edge イメージをダウンロードするには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL for Edge イメージを作成済みである。

手順

  1. RHEL for Edge イメージの状態を確認します。

    # composer-cli compose status

    出力には、以下が表示される必要があります。

    $ <UUID> FINISHED date blueprint-name blueprint-version image-type
  2. イメージをダウンロードしてください。

    # composer-cli compose image <UUID>

    Image Builder は、イメージを tar ファイルとしてカレントディレクトリにダウンロードします。

    UUID 番号とイメージサイズは並んで表示されます。

    $ <UUID>-commit.tar: size MB

イメージには、コミットと、リポジトリーのコンテンツに関する情報のメタデータを含む json ファイルが含まれています。