Menu Close

RHEL for Edge イメージの作成、インストール、および管理

Red Hat Enterprise Linux 9

Red Hat Enterprise Linux 9 での RHEL for Edge イメージの作成、インストール、および管理

概要

本ガイドは、Image Builder を使用してカスタマイズした RHEL (rpm-ostree) イメージを作成し、Edge サーバーでイメージをリモートでインストールおよび管理するユーザーを対象としています。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社の CTO、Chris Wright のメッセージ を参照してください。

Red Hat ドキュメントへのフィードバックの提供

ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。

  • 特定の部分についての簡単なコメントをお寄せいただく場合は、以下をご確認ください。

    1. ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
    2. マウスカーソルで、コメントを追加する部分を強調表示します。
    3. そのテキストの下に表示される Add Feedback ポップアップをクリックします。
    4. 表示される手順に従ってください。
  • Bugzilla を介してフィードバックを送信するには、新しいチケットを作成します。

    1. Bugzilla の Web サイトに移動します。
    2. Component で Documentation を選択します。
    3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
    4. Submit Bug をクリックします。

第1章 RHEL for Edge イメージの概要

RHEL for Edge イメージは、Edge サーバーで RHEL をリモートにインストールするシステムパッケージを含む rpm-ostree イメージです。

システムパッケージには以下が含まれます。

  • ベース OS パッケージ
  • コンテナーエンジンとしての podman
  • 追加の RPM コンテンツ

イメージをカスタマイズして、要件に従って OS コンテンツを設定できます。また、それらをオンプレミス、クラウド、またはコンテナー環境にデプロイできます。

Bare Metal、Appliance、および Edge サーバーに RHEL for Edge イメージをデプロイすることができます。

RHEL for Edge イメージを使用すると、以下を実行できます。

主な特長

1.1. RHEL for Edge 対応アーキテクチャー

現在、AMD と Intel 64 ビットシステムに RHEL for Edge イメージをデプロイすることができます。

注記

現在、RHEL for Edge は ARM システムをサポートしていません。

1.2. RHEL for Edge イメージの作成とデプロイ方法

RHEL for Edge イメージを作成およびデプロイする全体的なプロセスは、デプロイメント環境が ネットワークベースである か、そうでない かにより異なります。

RHEL for Edge イメージの作成およびデプロイには、以下の 2 つのフェーズがあります。

  1. Image Builder を使用した RHEL rpm-ostree イメージの作成composer-cli ツールのコマンドラインインターフェース経由で Image Builder にアクセスするか、または RHEL 8 Web コンソールのグラフィカルユーザーインターフェースを使用することができます。
  2. RHEL インストーラーを使用したイメージのデプロイ

RHEL for Edge イメージの作成中、以下のイメージタイプのいずれかを選択できます。

表1.1 RHEL for Edge イメージタイプ

イメージタイプ説明ネットワークベースのデプロイメントに適しています。ネットワーク以外のデプロイメントに適しています。

RHEL for Edge Commit (.tar)

完全なオペレーティングシステムが含まれている場合でも、コミットイメージは直接起動できません。Commit image タイプを起動するには、これをデプロイする必要があります。

はい

RHEL for Edge コンテナー (.tar)

コンテナーは OSTree コミットを作成し、Web サーバーを使用して OCI コンテナーに組み込みます。コンテナーが起動すると、Web サーバーはコミットを OSTree リポジトリーとして機能します。

はい

RHEL for Edge Installer (.iso)

インストーラーのイメージタイプは実行中のコンテナーからコミットをプルし、埋め込み OSTree コミットを使用するように設定されたキックスタートファイルを使用してインストール可能なブート ISO を作成します。

はい

RHEL for Edge Raw image (.raw.xz)

圧縮された raw イメージは、既存のデプロイ済みの OSTree コミットのあるパーティションレイアウトを含むファイルで構成されます。ハードドライブで RHEL Raw イメージをフラッシュしたり、仮想マシンでブートしたりできます。

はい

はい

RHEL for Edge Simplified Installer (.iso)

簡略化されたインストーラーイメージタイプは実行中のコンテナーからコミットをプルし、埋め込み OSTree コミットを使用するよう設定されたキックスタートファイルを使用してインストール可能なブート ISO を作成します。

はい

はい

イメージタイプはその内容によって異なるため、各種デプロイメント環境に適しています。

1.3. ネットワークベース以外のデプロイメント

Image Builder を使用して、要件に沿った柔軟な RHEL rpm-ostree イメージを作成し、Anaconda を使用してお使いの環境にデプロイします。

composer-cli ツールのコマンドラインインターフェース経由で Image Builder にアクセスするか、または RHEL 8 Web コンソールのグラフィカルユーザーインターフェースを使用することができます。

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

  1. RHEL システムをインストールおよび登録する
  2. Image Builder をインストールする
  3. Image Builder を使用して RHEL for Edge Containerイメージのカスタム Blueprint を作成する
  4. RHEL for Edge の Blueprint を Image Builder にインポートする
  5. OSTree リポジトリーとしてコミットをデプロイする準備が整った Web サーバーで、OCI コンテナーに組み込む RHEL for Edge イメージを作成する
  6. RHEL for Edge Containerイメージファイルをダウンロードする
  7. RHEL for Edge Containerコミットでリポジトリーを提供するコンテナーをデプロイする
  8. Image Builder を使用して、RHEL for Edge インストーラーイメージのブループリントを作成します
  9. RHEL for Edge Containerメージを組み込んだ実行中のコンテナからコミットをプルするように設定されたRHEL for Edge Installerイメージを作成する
  10. RHEL for Edge Installerイメージをダウンロードする
  11. インストールを実行する
  12. イメージを作成する

以下の図は、RHEL for Edge イメージのネットワークを使用しないデプロイメントワークフローを表しています。

図1.1 非ネットワーク環境でのRHEL for Edgeのデプロイ

RHEL for Edge のネットワークを使用しないデプロイメントワークフロー

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

Image Builder を使用して、要件に沿った柔軟な RHEL rpm-ostree イメージを作成し、Anaconda を使用してお使いの環境にデプロイします。Image Builder は、デプロイメント設定の詳細を自動的に識別し、.tar ファイルの edge-commit としてイメージの出力を生成します。

composer-cli ツールのコマンドラインインターフェース経由で Image Builder にアクセスするか、または RHEL 8 Web コンソールのグラフィカルユーザーインターフェースを使用することができます。

RHEL for Edge イメージは、以下の高レベルの手順を実行することで、作成およびデプロイすることができます。

  1. RHEL システムをインストールおよび登録する
  2. Image Builder をインストールする
  3. Image Builder を使用した RHEL for Edge イメージの Blueprint の作成
  4. RHEL for Edge の Blueprint を Image Builder にインポートする
  5. RHEL for Edge イメージの作成
  6. RHEL for Edge イメージファイルのダウンロード
  7. Web サーバーを設定する
  8. RHEL boot.iso イメージをダウンロードする
  9. Web サーバーを使用した Edge デバイスへの RHEL for Edge イメージのインストール

以下の図は、RHEL for Edge ネットワークイメージのデプロイメントワークフローを表しています。

図1.2 ネットワークベースの環境でのRHEL for Edgeのデプロイ

RHEL for Edge のネットワークベースのデプロイメントワークフロー

1.5. RHEL RPM イメージと RHEL for Edge イメージの違い

従来のパッケージベースの RPM 形式で RHEL システムイメージや、Edge (rpm-ostree) イメージ用の RHEL システムイメージを作成できます。

従来のパッケージベースの RPM を使用して、従来のデータセンターに RHEL をデプロイすることができます。ただし、RHEL for Edge イメージを使用すると、従来のデータセンター以外のサーバーに RHEL をデプロイすることができます。これらのサーバーには、大量のデータの処理が、データが生成されるソース (Edge サーバー) に最も近いところで行われるシステムが含まれます。

RHEL for Edge イメージがパッケージベースの RHEL RPM イメージとどのように異なるかを確認するには、以下の表を参照してください。

表1.2 RHEL RPM イメージと RHEL for Edge イメージの違い

キーの属性

RHEL RPM イメージ

RHEL for Edge イメージ

OS アセンブリー

パッケージをローカルでアセンブルして、イメージを形成できます。

パッケージは、システムにインストールできる ostree でアセンブルされます。

OS の更新

dnf update を使用して、有効なリポジトリーから利用可能な更新を適用することができます。

/etc/ostree/remotes.d/ の ostree リモートで新しいコミットが利用可能な場合は、rpm-ostree upgrade を使用して更新をステージできます。更新はシステムの再起動時に有効になります。

リポジトリー

パッケージには DNF リポジトリーが含まれています。

パッケージに Ostree リモートリポジトリーが含まれる

ユーザーアクセスパーミッション

読み書き

読み取り専用 (/usr)

データの永続性

tmpfs 以外のマウントポイントにイメージをマウントできます。

/etc および /var は読み書き可能で、永続的なデータを含みます。

第2章 Image Builder の設定

Image Builder を使用して、カスタマイズした RHEL for Edge イメージを作成します。RHEL システムに Image Builder をインストールすると、Image Builder は RHEL Web コンソールでアプリケーションとして利用できます。composer-cli ツールのコマンドラインインターフェースで Image Builder にアクセスすることもできます。

注記

Image Builder を仮想マシンにインストールすることが推奨されます。

Image Builder をインストールする環境で、最初にシステム要件を満たしてから、インストールするようにしてください。

2.1. Image Builder のシステム要件

Image Builder が実行する環境 (仮想マシンなど) は、次の表に記載されている要件を満たす必要があります。

表2.1 Image Builder のシステム要件

パラメーター

最低要求値

システムのタイプ

専用の仮想マシン

プロセッサー

2 コア

メモリー

4 GiB

ディスク容量

20 GiB

アクセス権限

管理者レベル (root)

ネットワーク

インターネットへの接続

注記

ホスト内に Image Builder をインストールして実行するには、20 GiB のディスク容量で十分です。イメージビルドをビルドし、デプロイするには、専用のディスク領域を追加する必要があります。

2.2. Image Builder のインストール

Image Builder を専用の仮想マシンにインストールするには、以下の手順を行います。

前提条件

  • 仮想マシンが作成され、オンの状態になっている。
  • RHEL をインストールし、RHSM または Red Hat Satellite にサブスクライブしている。

手順

  1. 仮想マシンに以下のパッケージをインストールします。

    • osbuild-composer
    • composer-cli
    • cockpit-composer
    • bash-completion
    • firewalld
    # dnf install osbuild-composer composer-cli cockpit-composer bash-completion firewalld

    Image Builder は、RHEL Web コンソールでアプリケーションとしてインストールされています。

  2. 仮想マシンを再起動します。
  3. Web コンソールへのアクセスを許可するように、システムのファイアウォールを設定します。

    # firewall-cmd --add-service=cockpit && firewall-cmd --add-service=cockpit --permanent
  4. Image Builder を有効にします。

    # systemctl enable osbuild-composer.socket --now
    # systemctl enable cockpit.socket --now

    lorax-composer サービスおよび cockpit サービスは、最初のアクセスで自動的に起動します。

  5. システムを再起動しなくても、composer-cli コマンドのオートコンプリート機能がすぐに動作するように、シェル設定スクリプトを読み込みます。

    $ source /etc/bash_completion.d/composer-cli

第3章 リポジトリの管理

3.1. ImageBuilderのデフォルトのシステムリポジトリ

osbuild-composerバックエンドは、/etc/yum.repos.d/にあるシステムのリポジトリを継承しません。代わりに、/usr/share/osbuild-composer/repositoriesディレクトリに定義された独自の公式リポジトリのセットがあります。公式リポジトリをオーバーライドするには、/etc/osbuild-composer/repositoriesオーバーライドを定義する必要があります。このディレクトリはユーザー定義のオーバーライド用であり、ここにあるファイルは/usrディレクトリ内のファイルよりも優先されます。

設定ファイルは/etc/yum.repos.d/内のファイルから知られている通常のDNFリポジトリ形式ではありません。それらは単純なJSONファイルになります。

3.2. システムリポジトリのオーバーライド

以下の手順により、/etc/osbuild-composer/repositories ディレクトリーでリポジトリーの上書きを設定できます。

前提条件

  • ホストシステムからアクセスできるカスタムリポジトリがあります

手順

  1. 使用するリポジトリオーバーライドを含むディレクトリを作成します。

    $ sudo mkdir -p /etc/osbuild-composer/repositories
  2. たとえば、次の構造のJSONファイルを作成します。

    {
        "<ARCH>": [
            {
                "name": "baseos",
                "metalink": "",
                "baseurl": "http://mirror.example.com/composes/released/RHEL-9/9.0/BaseOS/x86_64/os/",
                "mirrorlist": "",
                "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                "check_gpg": true,
                "metadata_expire": ""
            }
        ]
    }

    metalinkmirrorlist、または baseurl 属性の中から1つのみを指定してください。残りのフィールドは任意です。

  3. RHEL バージョンに対応する名前を使用して JSON ファイルを保存します。以下に例を示します。

    /etc/osbuild-composer/repositories/rhel-90.json
    1. または、ディストリビューションの JSON ファイルを /usr/share/osbuild-composer/ からコピーして、そのコンテンツを変更できます。

      1. 作成したディレクトリにリポジトリファイルをコピーします。

        $  cp /usr/share/osbuild-composer/repositories/rhel-version.json /etc/osbuild-composer/repositories/

        rhel-version.json を RHEL バージョンに置き換えます(例: rhel-9.json)。

  4. テキストエディターを使用して、rhel-9.json ファイルの baseurl パスを編集します。以下に例を示します。

    $ vi /etc/osbuild-composer/repositories/rhel-9.json

その結果、リポジトリは/etc/yum.repos.d/redhat.repoファイルからコピーされた正しいURLを指します。

3.3. サブスクリプションをサポートするシステムリポジトリのオーバーライド

osbuild-composerサービスは/etc/yum.repos.d/redhat.repoファイルで定義されているシステムのサブスクリプションを使用することができます。osbuild-composerでシステムサブスクリプションを使用するには、次のようなリポジトリオーバーライドを定義する必要があります。

  • /etc/yum.repos.d/redhat.repoで定義されているリポジトリと同じbaseurl
  • ”rhsm”: trueの値は、JSONオブジェクトで定義されます。

前提条件

手順

  1. /etc/yum.repos.d/redhat.repoファイルからbaseurlを取得します。

    [AppStream]
    name = AppStream mirror example
    baseurl = https://mirror.example.com/RHEL-9/9.0/AppStream/x86_64/os/
    enabled = 1
    gpgcheck = 0
    sslverify = 1
    sslcacert = /etc/pki/ca1/ca.crt
    sslclientkey = /etc/pki/ca1/client.key
    sslclientcert = /etc/pki/ca1/client.crt
    metadata_expire = 86400
    enabled_metadata = 0
  2. 同じbaseurlを使用するようにリポジトリオーバーライドを構成し、rhsmをtrueに設定します。

    {
        "x86_64": [
            {
                "name": "AppStream mirror example",
                "baseurl": "https://mirror.example.com/RHEL-9/9.0/AppStream/x86_64/os/",
                "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n (…​)",
                "check_gpg": true,
                "rhsm": true
            }
        ]
    }
注記

osbuild-composerは、自動的に/etc/yum.repos.d/で定義されたリポジトリを使用していません。システムリポジトリのオーバーライドとして、composer-cliを使用して追加のsourceとして手動で指定する必要があります。システムリポジトリのオーバーライドは通常、「BaseOS」および「AppStream」リポジトリに使用されますが、composer-cliソースは他のすべてのリポジトリに使用されます。

第4章 RHEL Web コンソールで Image Builder を使用した RHEL for Edge イメージの作成

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

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

以下の高レベルの手順を実行することで、RHEL Web コンソールで Image Builderを使用して、RHEL for Edge イメージを作成することができます。

  1. RHEL Web コンソールでの Image Builder へのアクセス
  2. RHEL for Edge イメージの Blueprint の作成します。次のブループリントを作成できます。

    • RHEL for Edge Commit (.tar)またはRHEL for Edge Container (.tar)イメージをカスタマイズしたブループリント
    • "RHEL for Edge Installer (.iso)" イメージのブループリント
  3. RHEL for Edge イメージの Blueprint のユーザーアカウントの作成
  4. RHEL for Edge イメージの作成します。次のイメージを作成できます。

    • RHEL Web コンソールで Image Builder を使用した RHEL for Edge Commit イメージの作成
    • RHEL Web コンソールで Image Builder を使用した Edge Container イメージの RHEL の作成
    • RHEL Web コンソールで Image Builder を使用した RHELfor Edge インストーラーイメージの作成
  5. RHEL for Edge イメージをダウンロードする

4.1. RHEL Web コンソールでの Image Builder へのアクセス

RHEL Web コンソールで Image Builder にアクセスするには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL システムをインストール済みである。
  • システムの管理者権限を持っている。
  • RHEL システムを Red Hat Subscription Manager (RHSM) または Red Hat Satellite Server にサブスクライブしている。
  • システムに電源が入り、ネットワーク経由でアクセスできる。
  • システムに Image Builder がインストール済みである。

手順

  1. RHEL システムで、Web ブラウザーで https://localhost:9090/ にアクセスします。
  2. Image Builder にリモートでアクセスする方法は『 RHEL 9 で Web コンソールを使用したシステムの管理 』を参照してください。
  3. 管理ユーザーアカウントを使用して、Web コンソールにログインします。
  4. Web コンソールで、左側のメニューの Apps をクリックします。
  5. Image Builder をクリックします。
  6. Image Builder ダッシュボードが右側のペインに開きます。
  7. これで、RHEL for Edge イメージの Blueprint の作成に進むことができます。

4.2. RHEL Web コンソールの Image Builder を使用した RHEL for Edge Commit イメージのブループリントの作成

RHEL Web コンソールの Image Builder を使用して RHEL for Edge Commit イメージのブループリントを作成するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL システムで、Image Builder のダッシュボードを開いている。

手順

  1. Image Builder のダッシュボードで Create Blueprint をクリックします。

    Create Blueprint のダイアログボックスが表示されます。

  2. 作成する Blueprint の名前と説明を指定します。
  3. Create をクリックします。

    ダッシュボードには、利用可能なコンポーネントの一覧が表示されます。

    注記

    システムが RHSM にサブスクライブしている必要があります。サブスクライブしないと、利用可能なコンポーネントの一覧が「Loading」と表示されます。

  4. 特定のコンポーネントを検索するには、Filter By Name のテキストボックスにコンポーネント名を入力してから Enter キーを押します。Component Details ペインには、コンポーネントの詳細とそれに依存するコンポーネントが表示されます。

    必要なバージョンを選択することができます。Web コンソールでは、デフォルトで最新バージョンが選択されます。

  5. Components Details ペインで、Add をクリックします。

    Blueprint からコンポーネントを削除するには、Available Components ペインで、コンポーネント名に対応する - をクリックします。

  6. Commit をクリックして、Blueprint を保存します。

    ブループリントの概要を示すダイアログボックスが開きます。

  7. Commit をクリックします。
  8. Blueprint に戻る をクリックします。

    Image Builder のダッシュボードには、作成した Blueprint が一覧表示されます。

4.3. RHEL Web コンソールの Image Builder を使用した RHEL for Edge Container イメージのブループリントの作成

RHEL Web コンソールの Image Builder を使用して RHEL for Edge Container イメージのブループリントを作成するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL システムで、Image Builder のダッシュボードを開いている。

手順

  1. Image Builder のダッシュボードで Create Blueprint をクリックします。

    Create Blueprint ダイアログボックスが開きます。

  2. 作成する Blueprint の名前と説明を指定します。
  3. Create をクリックします。

    ダッシュボードには、利用可能なコンポーネントの一覧が表示されます。

    注記

    システムが RHSM にサブスクライブしている必要があります。サブスクライブしないと、利用可能なコンポーネントの一覧が「Loading」と表示されます。

  4. 特定のコンポーネントを検索するには、Filter By Name のテキストボックスにコンポーネント名を入力してから Enter キーを押します。Component Details ペインには、コンポーネントの詳細とそれに依存するコンポーネントが表示されます。

    必要なバージョンを選択することができます。Web コンソールでは、デフォルトで最新バージョンが選択されます。

  5. Components Details ペインで、Add をクリックします。

    Blueprint からコンポーネントを削除するには、Available Components ペインで、コンポーネント名に対応する - をクリックします。

  6. Commit をクリックして、Blueprint を保存します。

    ブループリントの概要を示すダイアログボックスが開きます。

  7. Commit をクリックします。
  8. Blueprint に戻る をクリックします。

    Image Builder のダッシュボードには、作成した Blueprint が一覧表示されます。

4.4. RHEL Web コンソールの Image Builder を使用した RHEL for Edge インストーラーイメージのブループリントの作成

RHEL for Edge Installer(.iso) イメージを作成する Blueprint が、インストール時にシステムにユーザーを自動的に作成するユーザーアカウントの指定をサポートするようになりました。「 RHEL for Edge イメージの Blueprint の管理ユーザーアカウントの作成」を参照 してください。

RHEL Web コンソールの Image Builder を使用して RHEL for Edge Installer イメージのブループリントを作成するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL システムで、Image Builder のダッシュボードを開いている。

手順

  1. Image Builder のダッシュボードで Create Blueprint をクリックします。

    Create Blueprint のダイアログボックスが表示されます。

  2. 作成する Blueprint の名前と説明を指定します。
  3. Create をクリックします。
  4. Blueprint に戻る をクリックします。

    Image Builder のダッシュボードには、作成した Blueprint が一覧表示されます。

4.5. RHEL for Edge イメージの Blueprint へのソースの追加

デフォルトでは、appstreambaseosdnf公式ソースが利用できます。Image Builderで定義されたソース、dnf repositorymirrorlistmetalinkを使用して、カスタムサードパーティリポジトリからRPMパッケージを指定し、ブループリントに追加することができます。これらのソースはグローバルであるため、すべての Blueprint で利用可能です。

システムソース は、コンピューターにローカルで設定されているリポジトリーで、Image Builder からは無効にしたり削除したりできません。追加のカスタムソースを追加できることから、システムで利用できる システムソース 以外のコンテンツにアクセスできます。ホストシステムからアクセス可能なRPMリポジトリであれば、ソースとして有効です。システムソースを無効にすることはできません。

Blueprint にソースを追加するには、以下の手順を実行します。

前提条件

  • ブラウザーで、RHEL Web コンソールの Image Builder インターフェースを開いている。

手順

  1. 右上隅にある ⫶ Manage Sources ボタンをクリックします。

    利用可能なソース、その名前、および説明が記載されたポップアップウィンドウが表示されます。

  2. ポップアップウィンドウの右側で、Add Source ボタンをクリックします。
  3. 必要な Source nameSource path、および Source Type を追加します。

    オプションで、Securityフィールドに関連するボックスをチェックします。

    1. SSL証明書- リポジトリのアイデンティティを確認し、暗号化された接続を可能にする。
    2. GPGキー- このリポジトリで利用可能なRPMパッケージの署名を検証するためのものです。
  4. Add Source をクリックします。画面には、利用可能なソースウィンドウが表示され、追加したソースが一覧表示されます。

    これにより、新しいシステムソースを使用でき、変更を加えることができます。

4.6. RHEL for Edge イメージの Blueprint の管理ユーザーアカウントの作成

Image Builderを使用して作成するRHEL for Edgeイメージは、rootアカウントがロックされ、他のアカウントは含まれていません。Image Builder を使用すると、RHEL for Edge Blueprint でパスワードつきのユーザーアカウントを作成でき、このアカウントで Blueprint から作成したRHEL for Edgeイメージにログインできます。管理ユーザーアカウントでは、パスワードベースのアクセスと SSH 鍵ベースのアクセスのどちらかを選択できます。

注記

キックスタートを使用するネットワークベースのインストールでは、キックスタートでユーザーアカウントを作成することもできます。

前提条件

  • 作成するユーザーアカウントに使用する SSH 鍵を作成済みである。
  • RHEL Web コンソールで Image Builder のダッシュボードにアクセス済みである。
  • RHEL for Edge イメージの Blueprint を作成済みである。

手順

  1. Image Builder のダッシュボードで、RHEL for Edge イメージの Blueprint を見つけます。

    必要な Blueprint を検索するには、Filter by Name のテキストボックスに Blueprint 名を指定してから Enter キーを押します。

  2. Blueprint 名をクリックします。

    Image Builder は Blueprint の詳細を表示します。

  3. Customizations タブで、Create User Account をクリックします。
  4. Create User Account のダイアログボックスで、ユーザーアカウントに必要な詳細情報とパスワードを指定します。

    パスワードベースのアクセスの場合は、ユーザーアカウントのパスワードを指定します。

    SSH ベースのアクセスの場合は、ユーザーアカウントの SSH 鍵を指定します。

注記

作成するユーザーアカウントに管理者権限を付与する場合は、Server administrator チェックボックスを選択してください。

Image Builder は、指定したユーザーアカウントを作成し、詳細を表示します。

必要に応じて、追加のユーザーアカウントを作成することができます。

4.7. RHEL Web コンソールで Image Builder を使用した RHEL for Edge Commit イメージの作成

RHEL for Edge Commit (.tar) を選択すると、ネットワークベースのデプロイメント用にRHEL for Edge Commit イメージを作成することができます。"RHEL for Edge Commit (.tar)"コミットイメージタイプは、完全なオペレーティングシステムが含まれていても、直接起動することはできません。コミットイメージタイプを起動するには、実行中のコンテナーにデプロイする必要があります。

RHEL Web コンソールの Image Builder を使用して RHEL for Edge Commit イメージを作成するには、次の手順に従います。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge Commit イメージのブループリントを作成しました。

手順

  1. Image Builder のダッシュボードで、RHEL for Edge Commit イメージ用に作成した Blueprint の Create Image を click します。

    特定の Blueprint を検索するには、Filter By Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。

  2. Create Image ウィンドウで、以下の手順を実行します。
  3. Type のドロップダウンリストから、ネットワークベースのデプロイメント向けに RHEL for Edge Commit(.tar) を選択します。
  4. 以下の いずれか の引数を指定します。リポジトリー URL または 親コミット

    重要

    Repository URLParent commit 引数の両方を使用すると、エラーが発生します。

    1. Repository URL: イメージに埋め込むコミットの OSTree リポジトリーへの URL を指定します。例: http://10.0.2.2:8080/repository/
    2. 親コミット: この時点でコミットがない場合は以前のコミットを指定するか、空欄のままにします。
  5. Ref テキストボックスで、コミットを作成する場所の参照パスを指定します。デフォルトでは、Web コンソールは rhel/9/$ARCH/edge を指定します。$ARCH の値は、ホストマシンによって決定されます。
  6. Create をクリックします。

    Image Builder は、作成したブループリントの RHEL for Edge Commit イメージの作成を開始します。

  7. RHEL for Edge Commit イメージの作成の進行状況を確認するには、次の手順に従います。

    1. ブレッドクラムから blueprint name をクリックします。
    2. Images タブをクリックします。

      注記

      イメージの作成プロセスは、完了するまでに最大 20 分かかります。イメージ作成プロセスを中止するには、More Options メニューのStopをクリックします。

      イメージの作成プロセスが完了したら、結果の RHEL for Edge Commit (.tar) イメージをダウンロードできます。

4.8. RHEL Web コンソールで Image Builder を使用した Edge Container イメージの RHEL の作成

RHEL for Edge Container (.tar) を選択すると、非ネットワークベースのデプロイメント用の RHEL for Edge イメージを作成できます。RHEL for Edge Container (.tar) イメージタイプでは、OSTree のコミットを作成し、Web サーバーのある OCI コンテナに埋め込みます。コンテナが起動すると、WebサーバはOSTreeリポジトリとしてコミットを提供します。

この手順に従って、RHEL Web コンソールの Image Builder を使用して RHEL for Edge Container イメージを作成します。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge Container イメージのブループリントを作成しました。

手順

  1. Image Builder のダッシュボードで、RHEL for Edge イメージ用に作成した Blueprint の Create Imageclick します。特定の Blueprint を検索するには、Filter By Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。
  2. Create Image ウィンドウで、以下の手順を実行します。
  3. Type ドロップダウンリストから、RHEL for Edge Container(.tar) を選択します。
  4. Repository URL テキストボックスで、イメージに埋め込むコミットの OSTree リポジトリーへの URL を指定します。例: http://10.0.2.2:8080/repository/
  5. Parent commit テキストボックスは、現時点でコミットがない場合は以前のコミットを指定するか、空欄のままにします。
  6. Ref テキストボックスで、コミットを作成する場所の参照パスを指定します。デフォルトでは、Web コンソールは rhel/9/$ARCH/edge を指定します。$ARCH の値は、ホストマシンによって決定されます。
  7. Create をクリックします。

    Image Builder は、作成したブループリントの RHEL for Edge Container イメージの作成を開始します。

  8. RHEL for Edge Container イメージの作成の進行状況を確認するには、次の手順に従います。

    1. ブレッドクラムから blueprint name をクリックします。
    2. Images タブをクリックします。

      注記

      イメージの作成プロセスは、完了するまでに最大 20 分かかります。イメージ作成プロセスを中止するには、More Options メニューのStopをクリックします。

イメージの作成プロセスが完了したら、結果の RHEL for Edge Container (.tar) イメージをダウンロードできます。

4.9. RHEL Web コンソールで Image Builder を使用した RHELfor Edge インストーラーイメージの作成

RHEL for Edge Installer (.iso) を選択すると、非ネットワークベースのデプロイメント用の RHEL for Edge インストーラーイメージを作成できます。RHEL for Edge Installer (.iso) イメージタイプは、RHEL for Edge Container (.tar) によって提供される実行中のコンテナーから OSTree コミットリポジトリーをプルし、組み込み OSTree を使用するように設定されたキックスタートファイルを使用してインストール可能なブート ISO イメージを作成します。

以下の手順に従って、RHEL Web コンソールで Image Builder を使用して RHEL for Edge イメージを作成します。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge Installer イメージのブループリントを作成している。
  • RHEL for Edge Container イメージを作成し、実行中のコンテナーにロードした。

手順

  1. Image Builder ダッシュボードで、RHEL for Edge インストーラーイメージ用に作成した blueprint の Create Image をクリックします。

    特定の Blueprint を検索するには、Filter By Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。

  2. Create Image ウィンドウで、以下の手順を実行します。

    1. Type ドロップダウンリストから、 RHEL for Edge Installer (.iso) を選択します。
    2. Repository URL テキストボックスで、イメージに埋め込むコミットの実行中のコンテナー OSTree リポジトリーへの URL を指定します。例: http://10.0.2.2:8080/repository/
    3. Parent commit テキストボックスは、現時点でコミットがない場合は以前のコミットを指定するか、空欄のままにすることができます。
    4. Ref テキストボックスでは、参照パスは RHEL for Edge Container イメージ作成からの Ref と一致する必要があります。
  3. Create をクリックします。

    Image Builder は、作成したブループリントの RHEL for Edge Installer イメージの作成を開始します。

  4. RHEL for Edge Installer イメージの作成の進行状況を確認するには:

    1. ブレッドクラムから blueprint name をクリックします。
    2. Images タブをクリックします。

      注記

      イメージの作成プロセスは、完了するまでに最大 20 分かかります。イメージ作成プロセスを中止するには、More Options メニューの Stop をクリックします。

イメージの作成プロセスが完了したら、結果の RHEL for Edge Installer (.iso) イメージをダウンロードして、ISO イメージをデバイスで起動できます。

4.10. RHEL for Edge イメージのダウンロード

Image Builder が RHEL for Edge イメージを正常に作成したら、ローカルホストにイメージをダウンロードします。

手順

以下は、画像をダウンロードするための手順です。

  1. More Options メニューの Download をクリックします。

    Image Builder は、デフォルトのダウンロード場所にファイルをダウンロードします。

ダウンロードされたファイルは、RHEL for Edge Commit および RHELfor Edge Container イメージの OSTree リポジトリーを含む .tar ファイル、または RHEL for Edge Installer イメージの .iso ファイルと OSTree リポジトリーで構成されます。このリポジトリーには、コミットと、リポジトリーのコンテンツに関する情報のメタデータを含む json ファイルが含まれています。

4.11. 関連情報

第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 ファイルが含まれています。

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

5.2.1. Image Builder CLI を使用した Edge Container イメージブループリントの RHEL の作成

RHEL for Edge Container イメージのブループリントを作成するには、以下のステップを実行します。

手順

  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.2.2. Image Builder CLI を使用した Edge Container イメージの RHEL の作成

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

前提条件

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

手順

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

    # composer-cli compose start-ostree --ref rhel/9/x86_64/edge --url URL-OSTree-repository blueprint-name image-type

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

    • --ref は、お客様が ostree リポジトリーの構築に使用した値と同じです。
    • --url は、イメージに埋め込むコミットの OSTree リポジトリーへの URL です。例: http://10.0.2.2:8080/repository/RHEL for Edge イメージをインストールするための Web サーバーの設定 を参照してください。
    • blueprint-name は RHEL for Edge の Blueprint 名です。
    • image-type は、非ネットワークベースのデプロイメント 用の edge-container です。

      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.2.3. Image Builder CLI を使用した RHEL for Edge イメージブループリントの RHEL の作成

ユーザーは、RHEL for Edge インストーラーブループリントでユーザーアカウントを指定できるようになりましたインストール時にシステムにユーザーを作成します。RHEL for Edge Installer イメージのブループリントを作成するには、以下の手順を実行します。

手順

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

    name = "blueprint-installer"
    description = "blueprint-for-installer-image"
    version = "0.0.1"
    
    [[customizations.user]]
    name = "user"
    description = "account"
    password = "user-password"
    key = "user-ssh-key "
    home = "path"
    groups = ["user-groups"]

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

    • blueprint-name は名前で、blueprint-text-description は Blueprint の説明になります。
    • 0.0.1 は、Semantic Versioning スキームに従って、バージョン番号に置き換えます。
  2. Blueprint を Image Builder サーバーにプッシュ (インポート) します。

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

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

    # composer-cli blueprints depsolve blueprint-name

5.2.4. ネットワークベース以外のデプロイメント向けのコマンドラインインターフェースを使用した RHEL for Edge インストーラーイメージの作成

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

前提条件

  • RHEL for Edge Installer イメージのブループリントを作成している。
  • RHEL for Edge コンテナーイメージを作成し、Web サーバーを使用してデプロイしている。

手順

  1. RHEL for Edge Installer インストーラーイメージの作成を開始します。

    # composer-cli compose start-ostree --ref rhel/9/x86_64/edge --url URL-OSTree-repository blueprint-name image-type

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

    • ref は、お客様が ostree リポジトリーの構築に使用した値と同じです。
    • URL-OSTree-repository は、イメージに埋め込むコミットの OSTree リポジトリーへの URL です。例: http://10.0.2.2:8080/repository/RHEL for Edge イメージをインストールするための Web サーバーの設定 を参照してください。
    • blueprint-name は、RHEL for Edge Installer のブループリント名です。
    • image-typeedge-installer です。

      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>

    イメージの準備ができたら、ネットワーク以外のデプロイメント に使用できます。

5.2.5. Image Builder CLI を使用した RHEL for Edge Installer イメージのダウンロード

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

前提条件

  • RHEL for Edge Installer イメージを作成している。

手順

  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 は、イメージを .iso ファイルとしてカレントディレクトリにダウンロードします。

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

    $ <UUID>-boot.iso: size MB

結果のイメージは、起動可能な ISO イメージです。

5.3. サポートされているイメージのカスタマイズ

Blueprint では、多くのイメージのカスタマイズがサポートされています。このオプションを使用するには、最初に Blueprint でカスタマイズを設定して、Image Builder にインポート(プッシュ)する必要があります。

注記

これらのカスタマイズは、現在 Web コンソールではサポートされていません。

イメージのホスト名の設定
[customizations]
hostname = "baseimage"
作成されるシステムイメージに対するユーザー指定
[[customizations.user]]
name = "USER-NAME"
description = "USER-DESCRIPTION"
password = "PASSWORD-HASH"
key = "PUBLIC-SSH-KEY"
home = "/home/USER-NAME/"
shell = "/usr/bin/bash"
groups = ["users", "wheel"]
uid = NUMBER
gid = NUMBER
注記

GID は任意で、イメージにすでに存在している必要があり、パッケージにより作成されるか、または Blueprint [[customizations.group]] エントリーで作成されます。

重要

ハッシュを生成するには、システムに python3 をインストールする必要があります。以下のコマンドにより、python3 パッケージをインストールします。

# dnf install python3

PASSWORD-HASH を、パスワードハッシュに置き換えます。ハッシュを生成するには、次のようなコマンドを実行します。

$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

PUBLIC-SSH-KEY を、実際の公開鍵に置き換えます。

その他のプレースホルダーを、適切な値に置き換えます。

必要に応じて任意の行を省略します。ユーザー名のみが必須となります。

追加するすべてのユーザーにこのブロックを繰り返します。

作成されるシステムイメージに対するグループ指定
[[customizations.group]]
name = "GROUP-NAME"
gid = NUMBER

追加するすべてのグループにこのブロックを繰り返します。

既存ユーザーの SSH 鍵の設定
[[customizations.sshkey]]
user = "root"
key = "PUBLIC-SSH-KEY"
注記

このオプションは、既存ユーザーにのみ適用されます。ユーザーを作成して ssh キーを設定するには、このセクションで 生成されるシステムイメージのカスタマイズのユーザー仕様 を参照してください。

デフォルトにカーネルの起動パラメーターオプションを追加
[customizations.kernel]
append = "KERNEL-OPTION"
デフォルトでは、Image Builder はデフォルトカーネルをイメージにビルドします。ただし、Blueprint で以下の設定でカーネルをカスタマイズできます。
[customizations.kernel]
name = "KERNEL-rt"
イメージで使用するカーネル名を定義します。
[customizations.kernel.name]
name = "KERNEL-NAME"
作成されたシステムイメージにタイムゾーンおよび Network Time Protocol (NTP) サーバーを設定
[customizations.timezone]
timezone = "TIMEZONE"
ntpservers = "NTP_SERVER"

タイムゾーンを設定しないと、システムはデフォルトとして Universal Time, Coordinated (UTC) を使用します。NTP サーバーの設定はオプションです。

作成されたシステムイメージのロケール設定
[customizations.locale]
languages = ["LANGUAGE"]
keyboard = "KEYBOARD"

言語とキーボードの両方のオプションを設定することが必要です。複数の言語を追加できます。最初に追加する言語はプライマリー言語で、他の言語はセカンダリーになります。

作成されたシステムイメージのファイアウォールを設定
[customizations.firewall]
port = ["PORTS"]

/etc/services ファイルの数値ポートまたは名前を使用して、一覧を有効化できます。

ファイアウォールサービスのカスタマイズ

利用可能なファイアウォールサービスを確認します。

$ firewall-cmd --get-services

Blueprint のセクションの customizations.firewall.service で、カスタマイズするファイアウォールサービスを指定します。

[customizations.firewall.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

firewall.services に一覧表示されるサービスは、/etc/services ファイルで利用可能な名前とは異なります。

オプションで、作成する予定のシステムイメージのファイアウォールサービスをカスタマイズできます。

注記

ファイアウォールサービスをカスタマイズしない場合は、Blueprint の [customizations.firewall] セクションおよび [customizations.firewall.services] セクションを省略します。

システムの起動時に有効にするサービスの設定
[customizations.services]
enabled = ["SERVICES"]
disabled = ["SERVICES"]

システムの起動時に有効にするサービスを制御することができます。イメージタイプによっては、サービスがすでに有効または無効になっているため、イメージが正常に機能し、この設定はオーバーライドできません。

注記

ビルドが起動するたびに、リポジトリーのクローンが作成されます。大量の履歴が含まれるリポジトリーを参照する場合は、大量のディスク領域のクローンを作成して使用するのに時間がかかる場合があります。また、クローンは一時的なもので、RPM パッケージの作成後に削除されます。

カスタムファイルシステム設定を指定します。

ブループリントでカスタムファイルシステム構成を指定して、デフォルトのレイアウト構成を使用する代わりに、特定のディスクレイアウトでイメージを作成できます。ブループリントでデフォルト以外のレイアウト構成を使用すると、次の利点が得られます。

  • セキュリティベンチマークコンプライアンス
  • ディスク外エラーに対する保護
  • performance
  • 既存の設定との一貫性

    ブループリントのファイルシステム構成をカスタマイズします。

    [[customizations.filesystem]]
    mountpoint = "MOUNTPOINT"
    size = MINIMUM-PARTITION-SIZE

    次のmountpointsとそのサブディレクトリがサポートされています。

    • / - ルートマウントポイント
    • /var
    • /home
    • /opt
    • /srv
    • /usr
    • /app
    • /data

      注記

      マウントポイントのカスタマイズは、CLI を使用する RHEL 8.5 ディストリビューションおよび RHEL 9.0 ディストリビューションでのみサポートされます。初期のディストリビューションでは、rootパーティションをマウントポイントとして指定し、size引数をイメージサイズのエイリアスとして指定することしかできません。

      複数のパーティションがある場合は、LVM にカスタマイズしたファイルシステムのパーティションでイメージを作成し、ランタイム時にそのパーティションのサイズを変更できます。そのために、ブループリントでカスタマイズされたファイルシステム設定を指定してから、目的のディスクレイアウトでイメージを作成できます。デフォルトのファイルシステムレイアウトは変更されません。ファイルシステムをカスタマイズせずにプレーンイメージを使用する場合、ルートパーティションは cloud-init によってサイズ変更されます。

      ブループリントにファイルシステムのカスタマイズを追加すると、ファイルシステムは LVM パーティションに変換されます。

      MINIMUM-PARTITION-SIZE を定義する場合、デフォルトのサイズ形式はありません。kB から TB および KiB から TiB までの値と単位がサポートされます。たとえば、マウントポイントサイズをバイト単位で定義できます。

      [[customizations.filesystem]]
      mountpoint = "/var"
      size = 1073741824

      ユニットを使用してマウントポイントのサイズを定義することもできます。

      注記

      RHEL 8.6 および RHEL 9.0 ディストリビューションで提供されるパッケージバージョンのユニットのみを使用して、マウントポイントのサイズを定義できます。

      以下に例を示します。

      [[customizations.filesystem]]
      mountpoint = "/opt"
      size = "20 GiB"

関連情報

5.4. 関連情報

第6章 簡略化されたインストーラーイメージを構築して、RHEL for Edge image イメージをプロビジョニングします

デバイスへの無人インストール用に最適化された RHEL for Edge Simplified Installer イメージをビルドし、そのイメージを RHEL for Edge イメージにプロビジョニングできます。

6.1. 簡略化されたインストーラーイメージのビルドおよびデプロイ

新しいイメージタイプである edge-simplified-installer を使用して、RHEL for Edge Simplified Installer イメージをビルドします。

RHEL for Edge Simplified Installer イメージをビルドするには、既存の OSTree コミットを提供します。作成されるイメージには、OSTree コミットがデプロイされた生のイメージが含まれます。Simplified インストーラーの ISO イメージを起動すると、ハードドライブまたは仮想マシンのブートイメージとして使用できる RHEL for Edge システムがプロビジョニングされます。

RHEL for Edge Simplified Installer イメージは、デバイスへの無人インストール用に最適化されており、ネットワークベースのデプロイメントと非ネットワークベースのデプロイメントの両方をサポートします。ただし、ネットワークベースのデプロイメントでは、UEFI HTTP ブートのみをサポートします。

簡略化された RHEL for Edge イメージの作成およびデプロイには、次の高レベルの手順が含まれます。

  1. RHEL システムをインストールおよび登録する
  2. Image Builder をインストールする
  3. Image Builder を使用して RHEL for Edge Containerイメージのカスタム Blueprint を作成する
  4. RHEL for Edge の Blueprint を Image Builder にインポートする
  5. OSTree リポジトリーとしてコミットをデプロイする準備が整った Web サーバーで、OCI コンテナーに組み込む RHEL for Edge イメージを作成する
  6. edge-simplified-installerの Blueprint の作成
  7. 簡略化された RHEL for Edge を構築する
  8. RHEL for Edge を簡素化したイメージのダウンロード
  9. virt-install を使用して生のイメージのインストール

次の図は、RHEL for Edge Simplified の構築およびプロビジョニングワークフローを表しています。

図6.1 ネットワークベース環境での RHEL for Edge の構築とプロビジョニング

RHEL for Edge の Simplified ワークフロー

6.2. Image Builder CLI を使用した Simplified イメージのブループリントの作成

簡略化された RHEL for Edge イメージのブループリントを作成するには、次の手順を実行します。

手順

  1. TOML (Tom’s Obvious, Minimal Language) 形式で、以下のコンテンツのプレーンテキストファイルを作成します。

    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 を Image Builder サーバーにプッシュ (インポート) します。

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

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

    # composer-cli blueprints depsolve blueprint-name

6.3. Image Builder CLI を使用した RHEL for Edge Simplified Installer イメージの RHEL の作成

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

前提条件

手順

  1. 起動可能な ISO イメージを作成します。

    # composer-cli compose start-ostree \
    blueprint-name \
    edge-simplified-installer \
    --ref rhel/9/x86_64/edge \
    --url URL-OSTree-repository \

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

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

    # composer-cli compose status

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

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

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

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

    # composer-cli compose cancel <UUID>

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

    # composer-cli compose delete <UUID>

6.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 は、コマンドを実行する現在のディレクトリーパスに .iso ファイルのイメージをダウンロードします。

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

    $ <UUID>-simplified-installer.iso: size MB

その結果、RHEL for Edge Simplified Installer ISO イメージをダウンロードしました。これをブート ISO として直接使用して、RHEL for Edge システムをインストールできます。

6.5. UEFI HTTP Boot サーバーのセットアップ

このセクションでは、UEFI HTTP Boot サーバーをセットアップする方法を示します。これにより、この UEFI HTTP Boot サーバーに接続することで、ネットワーク経由で RHEL for Edge Virtual Machine のプロビジョニングを開始できます。

前提条件

  • ISO 簡略化インストーラーイメージを作成している。
  • ISO コンテンツを提供する http サーバー。

手順

  1. 選択したディレクトリーに ISO イメージをマウントします。

    # mkdir /mnt/rhel9-install/
    # mount -o loop,ro -t iso9660 /path_directory/installer.iso /mnt/rhel9-install/

    /path_directory/installer.iso を RHEL for Edge 起動可能な ISO イメージへのパスに置き換えます。

  2. マウントされたイメージから HTTP サーバーのルートにファイルをコピーします。このコマンドは、イメージに含まれる /var/www/html/rhel9-install/ ディレクトリーを作成します。

    # cp -R /mnt/rhel9-install/* /var/www/html/
    # chmod -R +r /var/www/html/httpboot/*
    注記

    一部のコピー方法は、有効なインストールソースに必要な .treeinfo ファイルを省略できることに注意してください。この手順で示されているように、ディレクトリー全体に対して cp コマンドを実行しても、.treeinfo が正しくコピーされます。

  3. 以下を置き換えて、/var/www/html/EFI/BOOT/grub.cfg ファイルを更新します。

    1. coreos.inst.install_dev=/dev/sdacoreos.inst.install_dev=/dev/vda
    2. linux /images/pxeboot/vmlinuzlinuxefi /images/pxeboot/vmlinuz
    3. initrd /images/pxeboot/initrd.imginitrdefi /images/pxeboot/initrd.img
    4. coreos.inst.image_file=/run/media/iso/disk.img.xzcoreos.inst.image_url=http://{IP-ADDRESS}/disk.img.xz

      IP-ADDRESS は、このマシンの IP アドレスで、http ブートサーバーとして機能します。

  4. httpd サービスを起動します。

    # systemctl start httpd.service

    その結果、UEFI HTTP Boot サーバーをセットアップした後、UEFI HTTP ブートを使用して RHEL for Edge デバイスをインストールできます。

6.6. 簡略化された ISO イメージを仮想マシンにデプロイ

次のインストールソースを使用して RHEL for Edge の Simplified イメージを作成することにより、生成した RHEL for Edge ISO イメージをデプロイします。

  • UEFI HTTP Boot
  • virt-install

この例は、ネットワークベース のインストール用に ISO イメージから virt-install インストールソースを作成する方法を示しています。

前提条件

  • ISO イメージを作成している。
  • UEFI HTTP ブートをサポートするようにネットワーク設定をセットアップしている。

手順

  1. UEFI HTTP ブートをサポートするようにネットワーク設定をセットアップします。libvirt を使用した UEFI HTTP ブートのセットアップ を参照してください。
  2. virt-install コマンドを使用して、UEFI HTTP Boot から RHEL for Edge Virtual Machine を作成します。

    # virt-install \
        --name edge-install-image \
        --disk path=”  “, ,format=qcow2
        --ram 3072 \
        --memory 4096 \
        --vcpus 2 \
        --network network=integration,mac=mac_address \
        --os-type linux
        --os-variant rhel9 \
        --cdrom "/var/lib/libvirt/images/”ISO_FILENAME"
        --boot uefi,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.fd,loader_secure=no
        --virt-type kvm \
        --graphics none \
         --wait=-1
         --noreboot

コマンドを実行すると、仮想マシンのインストールが開始します。

検証

  • 作成した仮想マシンにログインします。

6.7. USB フラッシュドライブからの Simplified ISO イメージの展開

USB インストール を使用して RHEL for Edge Simplified イメージを作成して生成した RHEL for Edge ISO イメージをデプロイします。

この例は、ISO イメージから USB インストール ソースを作成する方法を示しています。

前提条件

  • ISO イメージである簡略化されたインストーラーイメージを作成しました。
  • 8 GB の USB フラッシュドライブがある。

手順

  1. ISO イメージファイルを USB フラッシュドライブにコピーします。
  2. USB フラッシュドライブを、起動するコンピューターのポートに接続します。
  3. USB フラッシュドライブから ISO イメージを起動します。起動メニューには、次のオプションが表示されます。

    Install Red Hat Enterprise Linux 9
    Test this media & install Red Hat Enterprise Linux 9
  4. Install Red Hat Enterprise Linux 9 を選択します。これにより、システムのインストールが開始します。

第7章 FDO を使用した Edge デバイスの RHEL の自動プロビジョニングとオンボーディング

RHEL for Edge Simplified Installer イメージをビルドし、それを RHEL for Edge イメージにプロビジョニングできます。FIDO デバイスオンボーディング (FDO) プロセスは、Edge デバイスを自動的にプロビジョニングしてオンボーディングし、ネットワークに接続されている他のデバイスやシステムとデータを交換します。

重要

Red Hat は、テクノロジープレビュー機能として FDO プロセスを提供し、安全なネットワークで実行する必要があります。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

7.1. FDO デバイスのオンボーディングプロセス

デバイスのオンボーディングは、物理デバイスをプロビジョニングおよびオンボーディングし、このデバイスの認証情報を自動的に設定し、ネットワーク上で安全に接続および対話できるようにするプロセスです。FIDO デバイスオンボーディング (FDO) は、製造段階でデバイスの初期化を実行し、実際に使用するためにデバイスのバインドを遅らせるプロトコルです。これは、デバイスの管理システムへの実際のバインドは、デバイスの手動設定を必要とせずに、デバイスの最初の起動時に行われることを意味します。

FDO プロセスを使用することにより、自動化された安全なデバイスのオンボーディング、つまりゼロタッチインストールとオンボーディングをサポートできます。デバイスがオンボーディングされた後、デバイスに接続して、パッチ、更新、ロールバックなどを適用できます。FDO 認証は、新しいデバイスのインストールによってトリガーされる自動オンボーディングプロセスです。

RHEL for Edge の Simplified Installer イメージをビルドして自動的にオンボードするには、既存の OSTree コミットを提供します。作成されるイメージには、OSTree コミットがデプロイされた生のイメージが含まれます。Simplified インストーラーの ISO イメージを起動すると、ハードドライブまたは仮想マシンのブートイメージとして使用できる RHEL for Edge システムがプロビジョニングされます。RHEL for Edge Simplified Installer イメージは、デバイスへの無人インストール用に最適化されており、ネットワークベースのデプロイメントと非ネットワークベースのデプロイメントの両方をサポートします。ただし、ネットワークベースのデプロイメントでは、UEFI HTTP ブートのみをサポートします。

次の図は、FIDO デバイスのオンボーディングワークフローを表しています。

図7.1 非ネットワーク環境でのRHEL for Edgeのデプロイ

FDO デバイスのオンボーディング
  1. デバイスはデバイス認証情報を読み込みます。
  2. デバイスがネットワークに接続します。
  3. 早い段階で、所有者管理システムは、所有者管理システムの場所についてメーカーのランデブーサーバーに通知します。
  4. ネットワークに接続した後、デバイスはランデブーサーバーに接続します。
  5. ランデブーサーバーは所有者の URL をデバイスに送信します。
  6. デバイスは所有者管理システムに接続し、デバイスキーを使用してステートメントに署名することにより、デバイスが正しいデバイスであることを証明します。
  7. 所有者管理システムは、所有者バウチャーの最後のキーを使用してステートメントに署名することにより、それ自体を証明します。
  8. 所有者管理システムは、デバイスの設定を提供します。これは、デバイスがたとえば ssh キーに保存します。
  9. デバイスは、所有権バウチャーを受け取り、確認します。
  10. 次に、デバイスはデバイスの認証情報を取得します。
  11. その後、所有者管理システムはデバイスをオンボードとして報告します。

    FDO プロセス全体が完了し、このデバイスでは使用されなくなりました。

7.2. RHEL for Edge デバイス用の自動プロビジョニングとオンボーディング

RHEL for Edge デバイスの自動プロビジョニングとオンボーディングには、次の高レベルの手順が含まれます。

  1. RHEL システムをインストールおよび登録する
  2. Image Builder をインストールする
  3. Image Builder を使用して RHEL for Edge Containerイメージのカスタム Blueprint を作成する
  4. RHEL for Edge の Blueprint を Image Builder にインポートする
  5. OSTree リポジトリーとしてコミットをデプロイする準備が整った Web サーバーで、OCI コンテナーに組み込む RHEL for Edge イメージを作成する
  6. ストレージデバイスパスのカスタマイズと FDO のカスタマイズを使用して、edge-simplified-installer のブループリントを作成します。
  7. RHEL for Edge イメージ用の簡略化されたインストーラー RHEL を構築します。
  8. RHEL for Edge の簡略化されたインストーラーイメージをダウンロードします。
  9. virt-install を使用して簡略化されたインストーラー ISO イメージをデバイスまたは VM にインストールします。FIDO FDO クライアントは Simplified Installer ISO で実行され、UEFI ディレクトリー構造によりイメージが起動可能になります。
  10. ネットワーク設定により、デバイスは製造サーバーに接続して、最初のデバイス認証情報の交換を実行できます。
  11. システムがエンドポイントに到達すると、デバイスに対してデバイスの認証情報が作成されます。
  12. オンボードサーバーは、デバイス認証情報を使用して、オンボーディングサーバーに対して認証を行います。オンボーディングサーバーは、設定をデバイス/システムに渡します。システムに接続した後、オンボーディングサーバーに接続し、設定を受け取ります。
  13. オンボーディングサーバーはデバイスに SSH キーを提供し、システムをインストールします。
  14. 次に、システムを再起動し、TPM に保存されている強力なキーで暗号化します。
  15. 作成したブループリントの認証情報を使用してシステムにログインし、Simplified Installer ISO イメージに作成された設定を確認できます。

7.3. キーおよび証明書の生成

FDO インフラストラクチャーを実行するには、キーおよび証明書を生成する必要があります。これらのキーおよび証明書は、製造サーバーを設定するのに使用されます。

重要

Red Hat は、テクノロジープレビュー機能として fdo-admin-tool generate-key-and-cert ツールを提供し、安全なネットワークで実行する必要があります。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

手順

  1. キーおよび証明書を含むフォルダーを生成します。そのためには、次のコマンドを実行します。

    # fdo-admin-tool generate-key-and-cert
  2. 作成されたキーおよび証明書を確認します。

    $ tree keys

    次の出力が表示されます。

    –device_ca_cert.pem
    –device_ca_key.der
    –diun_cert.pem
    –diun_key.dre
    – manufacturer_cert.pem
    –manufacturer_key.der
    –owner_cert.pem
    –owner_key.pem

関連情報

  • fdo-admin-tool generate-key-and-cert –help

7.4. 製造サーバーパッケージのインストール

manufacturing server の RPM パッケージは、デバイスを安全にオンボードするための認証情報を提供します。デバイスのインストール中に、製造サーバーは Rendezvous サーバーに対して、サーバーに対するデバイス認証情報の認証を提供し、インストールされたシステムにデバイスク認証情報をインストールするように要求します。

重要

Red Hat は、テクノロジープレビュー機能として fdo-manufacturing-server ツールを提供し、安全なネットワークで実行する必要があります。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

manufacturing server の RPM パッケージをインストールするには、次の手順を実行します。

手順

  1. 以下のコマンドを実行します。

    # dnf install fdo-manufacturing-server –refresh
  2. インストールされたファイルを確認します。

    $ ls /usr/share/doc/fdo

    次の出力が表示されます。

    Output:
    manufacturing server.yml
    Owner-onboarding-server.yml
    rendezvous-server.yml
  3. オプション: 次に、各ファイルの内容を確認します。

    $ cat /usr/share/doc/fdo/manufacturing-server.yml
  4. 製造サーバーを設定します。以下を提供する必要があります。

    • 製造サーバーの URL
    • ランデブーサーバーの IP アドレスまたは DNS 名
    • 生成したキーおよび証明書へのパス。キーおよび証明書の生成のセクションを参照してください。
  5. RHEL for Edge ネットワークの簡易イメージをデバイスにインストールした後、製造元のサーバーが Podman コンテナーで実行していることを確認します。製造サーバーは、新しいデバイスでのデバイス認証情報の作成および有効化を処理します。

    $ cat /usr/share/doc/fdo/manufacturing-server.yml

7.5. FDO 認証を使用して RHEL for Edge デバイスを自動的にオンボーディング

RHEL for Edge デバイスを自動的にオンボードするようにデバイスを準備するには、次の手順を実行します。

前提条件

  • ostree コンテナーを作成して提供しました。
  • デバイスの組み立ておよびプロビジョニング。この例では VM マシンを使用していますが、実際のデバイスで使用できます。
  • UEFI HTTP Boot サーバーを実行しています。
  • fdo-manufacturing-server rpm パッケージをインストールしました。以下を実行します。

    # dnf install fdo-manufacturing-server

手順

  1. ISO Simplified イメージを使用してインストールを実行します。たとえば、CD-ROM または USB フラッシュドライブからインストールできます。

    インストールでは、ISO Simplified Installer イメージが実行され、FDO クライアントが実行され、UEFI ディレクトリー構造によってイメージが起動可能になり、生のイメージが ISO に書き込まれます。

  2. VM ターミナルを介して、デバイスが製造サービスに到達し、最初のデバイス認証情報交換を実行し、所有権バウチャーを作成したことを確認します。

    $ ls directory-path/ownership_voucher/

    出力には、ownership_voucher ID が表示され、正しいデバイス認証情報がデバイスに追加されたことを示す必要があります。

    オンボーディングサーバーは、デバイス認証情報を使用して、オンボーディングサーバーに対して認証を行います。次に、設定をデバイスに渡します。デバイスはオンボーディングサーバーから設定を受け取った後、SSH キーを受け取り受信、デバイスにオペレーティングシステムをインストールします。最後に、システムは自動的に再起動し、TPM に保存されている強力なキーで暗号化します。

    デバイスが自動的に再起動した後、デバイスはオンボーディングサーバーに接続してオンボーディングされ、ユーザー認証情報は FDO によって自動的にプロビジョニングされます。

検証

デバイスが自動的に再起動した後、ブループリント用に作成した認証情報を使用してデバイスまたは VM にログインできます。

  1. ブループリント用に作成したユーザー名とパスワードを入力して、デバイスにログインします。
  2. オプション: 生のイメージに作成された設定を確認します。

第8章 ネットワークベース環境での RHEL for Edge イメージのデプロイメント

RHEL インストーラーのグラフィカルユーザーインターフェースまたはキックスタートファイルを使用して、RHEL for Edge イメージをデプロイできます。RHEL for Edge イメージをデプロイする全体的なプロセスは、デプロイメント環境がネットワークベースであるかそうでないかによって異なります。

注記

ベアメタルにイメージをデプロイするには、キックスタートファイルを使用します。

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

ネットワークベースの環境に RHEL for Edge イメージをデプロイするには、以下の概要手順を実施します。

  1. イメージファイルのコンテンツの展開。
  2. Web サーバーを設定する
  3. イメージのインストール

8.1. RHEL for Edge イメージのコミットの展開

コミットをダウンロードしたら、.tar ファイルを展開して ref 名とコミット ID にアクセスします。

ダウンロードしたコミットファイルは、OSTree リポジトリーを持つ .tar ファイルで構成されています。OSTree リポジトリーには、コミットと compose.json ファイルが含まれます。

compose.json ファイルには、「Ref」(リファレンス ID) やコミット ID などの情報が含まれるコミットに関する情報のメタデータが含まれています。コミットには rpm パッケージが含まれます。

パッケージのコンテンツを展開するには、以下の手順を実行します。

前提条件

  • キックスタートファイルを作成するか、既存のファイルを使用する。

手順

  1. ダウンロードしたイメージの tar ファイルを展開します。

    # tar xvf <UUID>-commit.tar
  2. .tar ファイルを展開したディレクトリーに移動します。

    compose.json ファイルと OSTree ディレクトリーが含まれます。compose.json ファイルにはコミット番号が含まれ、OSTree ディレクトリーには rpm パッケージが含まれます。

  3. compose.json ファイルを開き、コミット ID 番号を書き留めます。Web サーバーの設定を進める際には、この番号が必要になります。

    jq JSONプロセッサーがインストールされている場合は、jqツールを使ってコミットハッシュIDを取得することもできます。

    # jq '.["ostree-commit"]' < compose.json
  4. コミットの rpm パッケージを一覧表示します。

    # rpm-ostree db list rhel/9/x86_64/edge --repo=repo
  5. キックスタートファイルを使用して、RHEL インストーラーを実行します。既存のファイルを使用するか、キックスタートジェネレーターツールを使用してファイルを作成できます。

    キックスタートファイルでは、ファイルシステムのプロビジョニング、ユーザーの作成、RHEL for Edge イメージの取得とデプロイの方法についての詳細を含めるようにしてください。RHEL インストーラーは、インストールプロセス中にこの情報を使用します。

    キックスタートファイルの例を以下に示します。

    lang en_US.UTF-8
    keyboard us
    timezone Etc/UTC --isUtc
    text
    zerombr
    clearpart --all --initlabel
    autopart
    reboot
    user --name=core --group=wheel
    sshkey --username=core "ssh-rsa AAAA3Nza…​."
    
    ostreesetup --nogpg --osname=rhel --remote=edge --url=https://mirror.example.com/repo/ --ref=rhel/9/x86_64/edge

    ostreesetupコマンドは、OStree ベースのインストールを設定するのに使用されます。OSTreeのコミットを、以下のフラグを使って取得します。

    • --nogpg - GPG 鍵の検証の無効化
    • --osname - OS インストール用の管理ルート
    • --remote - OS インストール用の管理ルート
    • --url - インストール元となるリポジトリーの URL
    • --ref - インストールに使用するリポジトリーのブランチー名
    • --url=https://mirror.example.com/repo/ - エッジコミットを抽出してnginxで提供したホストシステムのアドレスこのアドレスを使って、ゲストマシンからホストシステムにアクセスすることができます。

      たとえば、/var/www/htmlディレクトリにコミットイメージを抽出し、ホスト名がwww.example.com のマシンで nginx を介してコミットを提供する場合、--url パラメーターの値はhttp://www.example.com/repoとなります。

      注記

      Apache HTTP Serverではhttpsが有効になっていないため、httpプロトコルを使用してサービスを開始し、コミットを提供します。

8.2. RHEL for Edge イメージをインストールするための Web サーバーの設定

RHEL for Edge イメージのコンテンツを展開したら、HTTP 経由で RHEL インストーラーにイメージのコミット詳細を提供するための Web サーバーを設定します。

以下の例では、コンテナーを使用して Web サーバーを設定する手順を説明します。

前提条件

手順

  1. 以下の手順に従って、nginx 設定ファイルを作成します。

    events {
    
    }
    
    http {
        server{
            listen 8080;
            root /usr/share/nginx/html;
                    }
             }
    
    pid /run/nginx.pid;
    daemon off;
  2. nginx 設定ファイルを /etc/nginx.conf ディレクトリーにコピーします。
  3. 以下の手順でdockerfileを作成します。

    FROM registry.access.redhat.com/ubi8/ubi
    RUN dnf -y install nginx && dnf clean all
    COPY kickstart.ks /var/www/html/
    COPY repo /usr/share/nginx/html/
    EXPOSE 8080
    CMD ["/usr/sbin/nginx", "-c", "/etc/nginx.conf"]
    ARG commit
    ADD ${commit} /usr/share/nginx/html/

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

    • kickstart.ks は、RHEL for Edge イメージのキックスタートファイルの名前です。キックスタートファイルには、ディレクティブの情報が含まれています。後でイメージを管理しやすくするためにも、Greenboot チェックのチェックおよび設定を含むことが推奨されます。そのためには、以下の設定を含むようにキックスタートファイルを更新します。

      lang en_US.UTF-8
      keyboard us
      timezone Etc/UTC --isUtc
      text
      zerombr
      clearpart --all --initlabel
      autopart
      reboot
      user --name=core --group=wheel
      sshkey --username=core "ssh-rsa AAAA3Nza…​."
      
      ostreesetup --nogpg --osname=rhel --remote=edge
      --url=https://mirror.example.com/repo/
      --ref=rhel/9/x86_64/edge
      
      %post
      cat << EOF > /etc/greenboot/check/required.d/check-dns.sh
      #!/bin/bash
      
      DNS_SERVER=$(grep nameserver /etc/resolv.conf | cut -f2 -d" ")
      COUNT=0
      
      # check DNS server is available
      ping -c1 $DNS_SERVER
      while [ $? != '0' ] && [ $COUNT -lt 10 ]; do
      
      							
      							
      							
      							COUNT++
      echo "Checking for DNS: Attempt $COUNT ."
      sleep 10
      ping -c 1 $DNS_SERVER
      done
      EOF
      %end

      OStree リポジトリーは、任意の HTTP サービスからホストでき、コンテナーの使用はホスティング方法の一例です。docker ファイルは、以下のタスクを実行します。

      1. 最新の Universal Base Image (ubi) の使用
      2. Web サーバー (nginx) をインストールします。
      3. キックスタートファイルのサーバーへの追加
      4. RHEL for Edge イメージのコミットのサーバーへの追加
  4. docker コンテナーをビルドします。

    #  podman build -t name-of-container-image --build-arg commit=uuid-commit.tar .
  5. コンテナーを実行します。

    #  podman run --rm -d -p port:8080 localhost/name-of-container-image

    これにより、サーバーがセットアップされ、commit.tar リポジトリーとキックスタートファイルを使用して、RHEL インストーラーを起動する準備が整いました。

8.3. RHEL Boot.iso イメージのダウンロード

Red Hat Boot ISO イメージは、Red Hat カスタマーポータルからダウンロードできます。Red Hat Boot ISO イメージは、RHEL インストーラーの起動に使用されます。インストーラーは、RHEL for Edge イメージをインストールするために提供されたキックスタートファイルを取得します。

前提条件

  • アクティブな Red Hat サブスクリプションがある。
  • Red Hat カスタマーポータルの 製品のダウンロード セクションにログインしている。

手順

  1. ブラウザーを開き、https://access.redhat.com/downloads にアクセスします。
  2. インフラストラクチャー管理 で、Red Hat Enterprise Linux 9 製品をクリックします。
  3. Red Hat Enterprise Linux 9 Boot ISO オプションの Download Now ボタンをクリックします。

8.4. キックスタートファイルを使用した RHEL for Edge イメージのインストール

キックスタートファイルを使用して RHEL for Edge イメージをインストールするには、Web サーバーを使用します。Web サーバーは、RHEL for Edge イメージの commit.tar リポジトリーとキックスタートファイルを使用して、RHEL インストーラーを起動します。

前提条件

  • インストーラーのコミットを取得するためのサーバーが利用可能であり、実行されている。
  • 作成したコミットをインストールするためのディスクイメージ。

手順

  1. libvirt virt-install を使用して Anaconda インストーラーを実行します。

    virt-install \
    --name rhel-edge-test-1
    --memory 2048 \
    --vcpus 2 \
    --disk size=8 \
    --disk path=prepared_disk_image.qcow2,format=qcow2 \
    --os-variant rhel9
    --cdrom /home/username/Downloads/rhel-9-x86_64-boot.iso
  2. インストール画面で TAB を押して、追加のカーネルパラメーターを指定します。

    inst.ks=http://edge_device_ip:port/kickstart.ks

    カーネルパラメーターは、RHEL インストーラーに含まれる RHEL イメージではなく、キックスタートファイルを使用して RHEL をインストールすることを指定します。

    RHEL インストーラーが起動し、サーバー (HTTP) エンドポイントからキックスタートファイルを取得してコマンドを実行します。このコマンドには、HTTP エンドポイントから RHEL for Edge イメージコミットをインストールするコマンドが含まれます。インストールが完了すると、インストーラーはログインの詳細を要求します。

  3. ログイン画面で、ユーザーアカウントの認証情報を指定し、Enter をクリックします。
  4. RHEL for Edge イメージが正常にインストールされているかどうかを確認します。

    $ rpm-ostree status

    コマンドの出力には、イメージのコミット ID が表示され、正常にインストールされたことがわかります。

    以下は出力例です。

    State: idle
    Deployments:
    * ostree://edge:rhel/9/x86_64/edge
    		  Timestamp: 2020-09-18T20:06:54Z
    			Commit: 836e637095554e0b634a0a48ea05c75280519dd6576a392635e6fa7d4d5e96

第9章 非ネットワークベース環境での RHEL for Edge イメージのデプロイメント

ネットワークベース以外の環境に RHEL for Edge イメージをデプロイするには、以下の概要手順を実施します。

  1. RHEL for Edge Container をダウンロードします。RHEL for Edge イメージの ダウンロード方法の詳細は、「RHEL for Edge イメージのダウンロード」を参照してください。
  2. RHEL for Edge コンテナーイメージを Podman にロードする。
  3. RHEL for Edge コンテナーイメージを Podman で実行する。
  4. インストーラーの Blueprint の読み込み
  5. RHEL for Edge Installer イメージをビルドする。
  6. qcow ディスクを準備する。
  7. 仮想マシンを起動する。
  8. イメージのインストール

9.1. ネットワークベース以外のデプロイメント用の RHEL for Edge コンテナーイメージの作成

ダウンロードした RHEL for Edge Container OSTree コミットを Podman にロードすることで、実行中のコンテナーを構築できます。そのためには、以下の手順に従います。

前提条件

  • RHEL for Edge Container OSTree コミットを作成してダウンロードしました。
  • システムに Podman をインストール済みである。How do I install podman in RHEL を参照してください。

手順

  1. RHEL for Edge Container OSTree コミットをダウンロードしたディレクトリーに移動します。
  2. RHEL for Edge Container OSTree コミットを Podman にロードします。

    $ sudo podman load -i UUID-container.tar

    コマンド出力にはイメージ ID が提供されます (例: @8e0d51f061ff1a51d157804362bc875b649b27f2ae1e66566a15e7e6530cec63)。

  3. 前のステップで生成したイメージ ID を使用して、新しい RHEL for Edge コンテナーイメージにタグ付けします。

    $ sudo podman tag image-ID localhost/edge-container

    podman tag コマンドは、ローカルイメージに別の名前を割り当てます。

  4. edge-container という名前のコンテナーを実行します。

    $ sudo podman run -d --name=edge-container -p 8080:8080 localhost/edge-container

    podman run -d --name=edge-container コマンドは、localhost/edge-container イメージに基づいてコンテナーに名前を割り当てます。

  5. コンテナーを一覧表示します。

    $ sudo podman ps -a
    CONTAINER ID  IMAGE                               	COMMAND	CREATED    	STATUS                	PORTS   NAMES
    2988198c4c4b  …./localhost/edge-container   /bin/bash  3 seconds ago  Up 2 seconds ago      	edge-container

その結果、Podman はコンテナーを実行し、RHEL for Edge Container コミットの OSTree リポジトリーを提供します。

9.2. ネットワークベース以外のデプロイメント用の RHEL for Edge インストーラーイメージの作成

実行中のコンテナーをビルドして、RHEL for Edge Container コミットでリポジトリーを提供してから、RHEL for Edge Installer (.iso) イメージを作成します。インストーラー (.iso) は、RHEL for Edge Container (.tar) によるコミットをプルします。RHEL for EdgeコンテナがPodmanに読み込まれると、OSTreeがURL形式で公開されます。

Web コンソールで RHEL for Edge Installer イメージを作成するには、次の手順に従います。

前提条件

手順

  1. Image Builder ダッシュボードで、RHEL for Edge イメージ用に作成した RHEL for Edge インストーラーブループリントの場合は、Create Image をクリックします。
  2. Create Image ウィンドウで、以下の手順を実行します。

    1. Repositoryテキストボックスで、イメージに埋め込むRHEL for EdgeコンテナのOSTreeのURLを指定します たとえば、http://localhost:8080/repo です。
    2. Ref テキストボックスで、イメージに組み込む RHEL for Edge Container コミットの作成時に指定したものと同じ参照を指定します。例: rhel/edge/test
    3. Create をクリックします。

      Image Builder は、イメージのビルド時に、実行中のコンテナーが提供するコミットをプルします。

      イメージのビルドが完了したら、作成された (.iso) イメージをダウンロードできます。

  3. イメージをダウンロードしてください。「RHEL for Edge イメージのダウンロード」を参照してください。

9.3. ネットワークベース以外のデプロイメント向けの RHEL for Edge イメージのインストール

RHEL for Edge イメージをインストールするには、以下の手順に従います。

前提条件

  • RHEL for Edge Installer ISO イメージを作成している。
  • 実行中のコンテナーを停止している。
  • 作成したコミットをインストールするためのディスクイメージ。
  • edk2-ovmf パッケージをインストールしている。
  • virt-viewer パッケージがインストールされている。
  • ユーザーアカウントで Blueprint をカスタマイズしている。「 RHEL for Edge イメージの Blueprint の管理ユーザーアカウントの作成」を参照 してください。

    警告

    Blueprint でユーザーアカウントのカスタマイズを定義しないと、ISO イメージにはログインできなくなります。

手順

  1. qcow 仮想マシンディスクファイルを作成して、(.iso)イメージをインストールします。これは、仮想マシン用のハードドライブのイメージです。以下に例を示します。

    $ qemu-img create -f qcow2 diskfile.qcow2 20G
  2. virt-install コマンドを使用して、ディスクをドライブとして、インストーラー ISO を CD-ROM として使用している仮想マシンを起動します。以下に例を示します。

    $ virt-install \
    --boot uefi,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.fd,loader_secure=no \
    --name VM_NAME
    --memory 2048 \
    --vcpus 2 \
    --disk path=diskfile.qcow2
    --cdrom /var/lib/libvirt/images/UUID-installer.iso \
    --os-variant rhel9.0

    このコマンドにより、virt-install が以下のように設定されます。

    • 仮想マシンが BIOS ではなく UEFI を使用して起動するように指示します。
    • インストール ISO をマウントします。
    • 最初のステップで作成したハードドライブイメージを使用します。

      Anaconda インストーラーを指定します。RHEL インストーラーが起動し、ISO からキックスタートファイルを読み込み、RHEL for Edge イメージのコミットのインストールなど、コマンドを実行します。インストールが完了すると、インストーラーはログインの詳細を要求します。

      注記

      Anaconda は、インストール時にコンテナーコミットを使用するように事前設定されています。ただし、ディスクパーティション、タイムゾーンなど、システム設定を設定する必要があります。

  3. virt-viewer を使用して Anaconda GUI に接続し、システム設定を設定します。

    $ virt-viewer --connect qemu:///system --wait VM_NAME
  4. システムを再起動してインストールを完了します。
  5. ログイン画面で、ユーザーアカウントの認証情報を指定し、Enter をクリックします。

検証手順

  1. RHEL for Edge イメージが正常にインストールされているかどうかを確認します。

    $  rpm-ostree status

コマンドの出力には、イメージのコミット ID が表示され、正常にインストールされたことがわかります。

第10章 RHEL for Edge イメージの管理

RHEL for Edge イメージを管理するために、以下のいずれかの管理タスクを実行することができます。

  • RHEL Web コンソールで Image Builder を使用した RHEL for Edge イメージの Blueprint の編集
  • Image Builder コマンドラインを使用した RHEL for Edge イメージの Blueprint の編集
  • RHEL for Edge イメージの更新
  • rpm-ostree リモートをノードに設定/ノードポリシーの更新
  • RHEL for Edge イメージの手動での復元、または Greenboot を使用した自動的な復元

10.1. RHEL Web コンソールで Image Builder を使用した RHEL for Edge イメージの Blueprint の編集

RHEL for Edge イメージの Blueprint を編集して、以下を実行することができます。

  • 必要に応じた追加コンポーネントの追加
  • 既存コンポーネントのバージョンの変更
  • 既存コンポーネントの削除

10.1.1. RHEL Web コンソールで Image Builder を使用した RHEL for Edge イメージの Blueprint へのコンポーネントの追加

RHEL for Edge イメージの Blueprint にコンポーネントを追加するには、以下の前提条件を満たしていることを確認してから、対応する Blueprint を編集する手順に従ってください。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge イメージの Blueprint を作成済みである。

手順

  1. Image Builder のダッシュボードで、編集したい RHEL for Edge イメージの Blueprint をクリックします。

    特定の Blueprint を検索するには、Filter by Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。

  2. Blueprint の右上で、Edit Packages をクリックします。

    画面が Edit Packages モードに切り替わります。

  3. Filter by Name のテキストボックスに、追加するコンポーネント名を入力してから Enter キーを押します。

    コンポーネント名の一覧が表示されます。

  4. コンポーネントの横の + 記号をクリックします。

    Blueprint にコンポーネントが追加されます。

  5. Commit をクリックします。

    Blueprint の更新が保存され、保留中のコミットと共にメッセージが表示されます。

  6. サマリーダイアログボックスで、変更内容を確認してから Commit をクリックします。

    コミットが正常に実行されたことを確認するメッセージが表示されます。

    これにより、新しいバージョンの Blueprint が作成され、右ペインに最新のコンポーネントが一覧表示されます。

10.1.2. RHEL Web コンソールを使用した RHEL for Edge イメージの Blueprint 内の既存コンポーネントのバージョンの変更

デフォルト (最新) のバージョンを選択したか、あるいは Blueprint に含めたコンポーネントのバージョンを選択しました。必要に応じて、任意のコンポーネントのバージョンを変更できるようになりました。

そのためには、以下の前提条件を満たしていることを確認してから、対応する Blueprint のコンポーネントのバージョンを変更する手順に従ってください。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge イメージの Blueprint を作成済みである。
  • RHEL for Edge の Blueprint に 1 つ以上のコンポーネントを追加済みである。

手順

  1. Image Builder のダッシュボードで、編集する Blueprint をクリックします。

    特定の Blueprint を検索するには、Filter by Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。

  2. Blueprint の右上で、Edit Packages をクリックします。

    画面が Edit Packages モードに切り替わり、右側のパネルには、現在 Blueprint にコミットされているコンポーネント名が一覧表示されます。

  3. コンポーネント名をクリックします。
  4. Component Options Version のドロップダウンリストから希望のバージョンを選択します。
  5. Apply Changes をクリックします。

    変更が保存され、右ペインには最新の変更が一覧表示されます。

  6. Commit をクリックします。

    新しいバージョンは Blueprint に保存されています。保留中のコミットを示すメッセージが表示されます。

  7. サマリーダイアログボックスで、変更内容を確認してから Commit をクリックします。

    コミットが正常に実行されたことを確認するメッセージが表示されます。

    その結果、Blueprint の新しいバージョンが作成され、右側のペインには最新のコンポーネントが表示されます。

10.1.3. RHEL Web コンソールで Image Builder を使用した RHEL for Edge イメージの Blueprint からのコンポーネントの削除

作成した RHEL for Edge イメージの Blueprint から不要なコンポーネントを 1 つ以上削除するには、以下の前提条件を満たしていることを確認してから、手順に従ってください。

前提条件

  • RHEL システムで、Image Builder ダッシュボードにアクセス済みである。
  • RHEL for Edge イメージの Blueprint を作成済みである。
  • RHEL for Edge の Blueprint に 1 つ以上のコンポーネントを追加済みである。

手順

  1. Image Builder のダッシュボードで、編集する Blueprint をクリックします。

    特定の Blueprint を検索するには、Filter by Name のテキストボックスに Blueprint 名を入力してから Enter キーを押します。

  2. Blueprint の右上で、Edit Packages をクリックします。

    画面が Edit Packages モードに切り替わります。右側のパネルには、現在 Blueprint にコミットされているコンポーネント名が一覧表示されます。

  3. More Options メニューの Remove をクリックします。

    オプションで、コンポーネント名をクリックしてから Remove をクリックします。

  4. Commit をクリックします。

    保留中のコミットを示すメッセージが表示されます。

  5. 変更内容を確認してから、Commit をクリックします。

    コミットが正常に実行されたことを確認するメッセージが表示されます。

    これにより、新しいバージョンの Blueprint が作成され、右ペインに最新のコンポーネントが一覧表示されます。

10.1.4. コマンドラインインターフェースを使用した RHEL for Edge イメージの Blueprint の編集

Image Builder のコマンドラインを使用して、RHEL for Edge イメージの Blueprint の仕様を変更することができます。そのためには、以下の前提条件を満たしていることを確認してから、手順に従って対応する Blueprint を編集してください。

前提条件

  • Image Builder のコマンドラインへアクセスできる。
  • RHEL for Edge イメージの Blueprint を作成済みである。

手順

  1. ローカルのテキストファイルに Blueprint を保存 (エクスポート) します。

    # composer-cli blueprints save BLUEPRINT-NAME
  2. 選択したテキストエディターで BLUEPRINT-NAME.toml ファイルを編集し、変更を加えます。

    編集を終了する前に、ファイルが有効な Blueprint であることを確認してください。

  3. バージョン番号を大きくしてください。

    Semantic Versioning スキームを使用していることを確認してください。

    注記

    バージョンを変更しない場合、バージョンのパッチコンポーネントが自動的に増えます。

  4. コンテンツが有効な TOML 仕様かどうかを確認します。詳細は、TOML のドキュメントを参照してください。

    注記

    TOML のドキュメントはコミュニティーが提供しているため、Red Hat のサポート対象外となります。このツールの問題は、https://github.com/toml-lang/toml/issues から報告できます。

  5. ファイルを保存してエディターを閉じます。
  6. Blueprint を Image Builder のコマンドラインにプッシュ (インポート) します。

    # composer-cli blueprints push BLUEPRINT-NAME.toml
    注記

    Blueprint を Image Builder のコマンドラインにプッシュしなおす場合は、.toml の拡張子を含めてファイル名を指定します。

  7. Image Builder にアップロードしたコンテンツが、編集したものと一致していることを確認します。

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

    # composer-cli blueprints depsolve BLUEPRINT-NAME

10.2. RHEL for Edge イメージの更新

10.2.1. RHEL for Edge イメージの更新のデプロイ方法

RHEL for Edge イメージでは、更新を手動でデプロイするか、デプロイメントプロセスを自動化することができます。更新はアトミックな方法で適用されます。つまり、各更新の状態が周知され、更新は段階的に行われ、再起動時にのみ適用されます。デバイスを再起動するまで変更を確認できないため、可能な限り最大限のアップタイムを確保するために再起動をスケジュールすることができます。

イメージの更新時には、更新された OS のコンテンツのみがネットワーク経由で転送されるため、イメージ全体を転送する場合と比較して、デプロイメントプロセスはより効率的になります。OS のバイナリーおよびライブラリー (/usr) は読み込み専用で、読み書き状態は /var ディレクトリーと /etc ディレクトリーで管理されています。

デルタ転送を利用することで、断続的な接続および低帯域幅での接続の場合でも更新をデプロイでき、あるいは、切断されたデバイスにもローカルメディアを利用して更新をデプロイすることができます。さらに、static-delta を作成して、ネットワークの使用量をさらに減らすこともできます。static-delta は、個々の更新をすべて単一のファイルアーカイブにプルし、複数の接続を介した更新ごとの個別転送とは対照的に、単一の TCP 接続を介して OS の更新を転送する際の TCP ネットワークのオーバーヘッドを大幅に削減します。

以下の図は、RHEL for Edge イメージの更新デプロイメントプロセスを説明しています。

イメージのデプロイメント

10.2.2. RHEL for Edge イメージの更新の手動でのデプロイ

RHEL for Edge の Blueprint を編集した後、イメージコミットを更新することができます。Image Builder は、更新された RHEL for Edge イメージの新しいコミットを生成します。この新しいコミットを使用して、最新のパッケージバージョンまたは追加パッケージのイメージをデプロイしてください。

RHEL for Edge イメージの更新をデプロイするには、前提条件を満たしていることを確認し、手順に従ってください。

前提条件

手順

  1. Image Builder のダッシュボードで、編集した Blueprint の Create Image をクリックします。
  2. Create Image のウィンドウで、以下の手順を実行します。

    1. Type のドロップダウンリストから、「RHEL for Edge Commit (.tar)」を選択します。
    2. Parent commit テキストボックスで、以前に生成された親コミット ID を指定します。Extracting RHEL for Edge image commitを参照してください。
    3. Ref テキストボックスでは、コミットの名前を指定するか、空欄のままにしておくことができます。デフォルトでは、Web コンソールは Ref を rhel/9/arch_name/edge として指定します。
    4. Create をクリックします。Image Builder は、更新された Blueprint 用に RHEL for Edge イメージを作成します。

      RHEL for Edge イメージの作成の進捗状況を確認するには、ブレッドクラムから Blueprint 名をクリックし、次に Images タブをクリックします。

      注記

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

      作成したイメージには、追加した最新のパッケージがある場合は含まれ、親としてオリジナルの commit ID を持っています。

  3. 作成した RHEL for Edge イメージをダウンロードします。RHEL for Edge イメージのダウンロードの詳細は、RHEL for Edge イメージのダウンロード を参照してください。
  4. OSTree コミットを展開します。OSTree コミットの抽出の詳細は、Edge イメージのコミットに対する RHEL の抽出 を参照してください。
  5. 今回は子コミット ID を提供し、docker コンテナーをビルドします。

    # podman build -t name-of-server --build-arg commit=uuid-child_commit.tar .
  6. コンテナーを実行します。

    # podman run --rm -p 8000:80 name-of-server
  7. プロビジョニングされた RHEL システム上で、オリジナルの Edge イメージから、現在の状態を確認します。

    $ rpm-ostree status

    新しいコミット ID がない場合は、以下のコマンドを実行して、利用可能なアップグレードの有無を確認します。

    $ rpm-ostree upgrade --check

    コマンドの出力は、現在アクティブな OSTree コミット ID を提供します。

  8. OSTree を更新して、新しい OSTree のコミット ID を利用できるようにします。

    $ rpm-ostree upgrade

    OSTree は、リポジトリーに更新があるかどうかを確認します。ある場合は、更新を取得し、この新しいコミット更新のデプロイメントを有効化できるように、システムの再起動を要求します。

  9. 再度、現在の状態を確認します。

    $ rpm-ostree status

    これで、2 つのコミットが利用可能であることが確認できます。

    • アクティブな親コミット。
    • アクティブではなく、1 つの違いを含む新しいコミット。
  10. 新しいデプロイメントを有効にし、新しいコミットを有効にするには、システムを再起動します。

    # systemctl reboot

    Anaconda インストーラーは、新しいデプロイメントで再起動します。ログイン画面では、起動に利用可能な新しいデプロイメントが表示されます。

  11. 最新のコミット/デプロイメントで起動すると、rpm-ostree upgrade コマンドは、新しいデプロイメントが一覧内で最初に表示されるようにブートエントリーを自動的に順序を指定します。必要に応じて、キーボードの矢印キーを使用して GRUB メニューエントリーを選択し、Enter を押します。
  12. ログインユーザーのアカウント認証情報を提供してください。
  13. OSTree の状態を確認します。

    $ rpm-ostree status

    コマンド出力は、アクティブなコミット ID を提供します。

  14. 変更したパッケージが存在する場合は、親コミットと新しいコミットの間で diff を実行します。

    $ rpm-ostree db diff parent_commit new_commit

    更新により、インストールしたパッケージが利用可能になり、すぐに使用できる状態になっていることがわかります。

10.2.3. コマンドラインを使用した RHEL for Edge イメージ更新の手動デプロイ

RHEL for Edge の Blueprint を編集した後、イメージコミットを更新することができます。Image Builder は、更新された RHEL for Edge イメージの新しいコミットを生成します。新しいコミットを使用して、最新のパッケージバージョンでイメージをデプロイするか、CLI を使用して追加のパッケージをデプロイします。

CLI を使用して RHEL for Edge イメージの更新をデプロイするには、前提条件を満たしていることを確認し、手順に従います。

前提条件

手順

  1. 以下の引数を使用して、RHEL for Edge Commit (.tar) イメージを作成します。

    # composer-cli compose start-ostree --ref ostree_ref --parent parent_commitID_edge -blueprint_name_ image-type

    ここで、

    • ref は、RHEL for Edge Container コミットの作成時に指定したリファレンスです。例: rhel/9/x86_64/edge
    • parent_commitID_edge は、以前生成された親コミット ID です。
    • image-typeedge-commit です。

      Image Builder は、更新された Blueprint 用に RHEL for Edge イメージを作成します。

  2. RHEL for Edge イメージの作成進捗を確認します。

    # composer-cli compose status
    注記

    イメージの作成プロセスは、最大 10 分から 30 分かかることがあります。

    作成したイメージには、最新パッケージがあれば、そのパッケージが追加され、オリジナルの commit ID を親とします。

  3. 作成した RHEL for Edge イメージをダウンロードします。詳細は、Image Builder コマンドラインインターフェースを使用した RHEL for Edge イメージのダウンロード を参照してください。
  4. OSTree コミットを展開します。詳細は、RHEL for Edge イメージのコミットの抽出 を参照してください。
  5. httpd 経由で OSTree コミットを提供します。RHEL for Edge イメージをインストールするための Web サーバーの設定 を参照してください。
  6. プロビジョニングされた RHEL システム上で、オリジナルの Edge イメージから、現在の状態を確認します。

    $ rpm-ostree status

    新しいコミット ID がない場合は、以下のコマンドを実行して、利用可能なアップグレードの有無を確認します。

    $ rpm-ostree upgrade --check

    コマンドの出力は、現在アクティブな OSTree コミット ID を提供します。

  7. OSTree を更新して、新しい OSTree のコミット ID を利用できるようにします。

    $ rpm-ostree upgrade

    OSTree は、リポジトリーに更新があるかどうかを確認します。ある場合は、更新を取得し、この新しいコミット更新のデプロイメントを有効化できるように、システムの再起動を要求します。

  8. 再度、現在の状態を確認します。

    $ rpm-ostree status

    利用可能なコミットが 2 つあることが分かります。

    • アクティブな親コミット
    • アクティブではなく、1 つの違いを含む新しいコミット
  9. 新しいデプロイメントを有効にし、新しいコミットを有効にするには、システムを再起動します。

    # systemctl reboot

    Anaconda インストーラーは、新しいデプロイメントで再起動します。ログイン画面では、起動に利用可能な新しいデプロイメントが表示されます。

  10. 最新のデプロイメントで起動すると、rpm-ostree upgrade コマンドは、新しいデプロイメントが一覧内で最初に表示されるようにブートエントリーを自動的に順序を指定します。必要に応じて、キーボードの矢印キーを使用して GRUB メニューエントリーを選択し、Enter を押します。
  11. アカウントの認証情報を使用してログインします。
  12. OSTree の状態を確認します。

    $ rpm-ostree status

    コマンド出力は、アクティブなコミット ID を提供します。

  13. 変更したパッケージが存在する場合は、親コミットと新しいコミットの間で diff を実行します。

    $ rpm-ostree db diff parent_commit new_commit

    更新により、インストールしたパッケージが利用可能になり、すぐに使用できる状態になっていることがわかります。

10.2.4. ネットワーク以外のデプロイメント向けの RHEL for Edge イメージ更新の手動デプロイ

RHEL for Edge の Blueprint を編集した後、イメージコミットを更新することができます。Image Builder は、更新された RHEL for Edge イメージの新しいコミットを生成します。この新しいコミットを使用して、最新のパッケージバージョンまたは追加パッケージでイメージをデプロイします。

RHEL for Edge イメージの更新をデプロイするには、前提条件を満たしていることを確認し、手順に従ってください。

前提条件

手順

  1. Image Builder のダッシュボードで、編集した Blueprint の Create Image をクリックします。
  2. Create Image ウィンドウで、以下の手順を実行します。

    1. Type ドロップダウンリストから、RHEL for Edge Container(.tar) を選択します。
    2. Parent commit テキストボックスで、以前に生成された親コミット ID を指定します。Extracting RHEL for Edge image commitを参照してください。
    3. リポジトリー テキストボックスで、イメージに埋め込むコミットの OSTree リポジトリーへの URL を指定します。例: http://10.0.2.2:8080/repository/
    4. Ref テキストボックスで、イメージに組み込む RHEL for Edge Container コミットの作成時に指定したものと同じ参照を指定します。例: 'rhel/edge/test'。
    5. Create をクリックします。Image Builder は、更新された Blueprint 用に RHEL for Edge イメージを作成します。

      RHEL for Edge イメージの作成の進捗状況を確認するには、ブレッドクラムから blueprint name をクリックし、次に Images タブをクリックします。

      注記

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

      作成したイメージには、最新パッケージがあれば、そのパッケージが追加され、オリジナルの commit ID を親とします。

  3. 作成した RHEL for Edge イメージをダウンロードします。RHEL for Edge イメージのダウンロードの詳細は、RHEL for Edge イメージのダウンロード を参照してください。
  4. 今回は子コミット ID を提供して Podman に RHEL for Edge コンテナーイメージを読み込みます。

    $ cat ./child-commit_ID-container.tar | sudo podman load
  5. Podman を実行します。

    #  sudo podman run -p 8080:8080 localhost/edge-test
  6. プロビジョニングされた RHEL システム上で、オリジナルの Edge イメージから、現在の状態を確認します。

    $ rpm-ostree status

    新しいコミット ID がない場合は、以下のコマンドを実行して、利用可能なアップグレードの有無を確認します。

    $ rpm-ostree upgrade --check

    利用可能な更新がある場合は、コマンドの出力は、現在アクティブな OSTree コミット ID など、OSTree リポジトリーで利用可能な更新に関する情報を提供します。その他に、利用可能な更新がないことをメッセージに通知するよう求められます。

  7. OSTree を更新して、新しい OSTree のコミット ID を利用できるようにします。

    $ rpm-ostree upgrade

    OSTree は、リポジトリーに更新があるかどうかを確認します。ある場合は、更新を取得し、この新しいコミット更新のデプロイメントを有効化できるように、システムの再起動を要求します。

  8. 現在の状態を確認します。

    $ rpm-ostree status

    これで、2 つのコミットが利用可能であることが確認できます。

    • アクティブな親コミット。
    • アクティブではなく、1 つの違いを含む新しいコミット。
  9. 新しいデプロイメントを有効にし、新しいコミットを有効にするには、システムを再起動します。

    # systemctl reboot

    Anaconda インストーラーは、新しいデプロイメントで再起動します。ログイン画面では、起動に利用可能な新しいデプロイメントが表示されます。

  10. 最新のコミット/デプロイメントで起動すると、rpm-ostree upgrade コマンドは、新しいデプロイメントが一覧内で最初に表示されるようにブートエントリーを自動的に順序を指定します。必要に応じて、キーボードの矢印キーを使用して GRUB メニューエントリーを選択し、Enter を押します。
  11. ログインユーザーのアカウント認証情報を提供してください。
  12. OSTree の状態を確認します。

    $ rpm-ostree status

    コマンド出力は、アクティブなコミット ID を提供します。

  13. 変更したパッケージが存在する場合は、親コミットと新しいコミットの間で diff を実行します。

    $ rpm-ostree db diff parent_commit new_commit

    更新により、インストールしたパッケージが利用可能になり、すぐに使用できる状態になっていることがわかります。

10.3. RHEL for Edge のアップグレード

10.3.1. RHEL8 システムを RHEL 9 にアップグレード

rpm-ostree rebase コマンドを使用して、RHEL8 システムを RHEL 9 にアップグレードできます。RHEL8 の最新の更新から RHEL 9 の最新の更新までの Edge アップグレード用の RHEL のデフォルトパッケージセットを完全にサポートします。RHEL 9 イメージがダウンロードされ、バックグラウンドでインストールされます。アップグレードが完了したら、新しい RHEL 9 イメージを使用するためにシステムをリブートする必要があります。

注記

アップグレードは、考えられるすべての rpm パッケージバージョンと包含に対応しません。パッケージの追加をテストして、期待どおりに機能することを確認する必要があります。

前提条件

  • RHEL for Edge 8 システムを実行している。
  • HTTP で OSTree リポジトリーサーバーがある。
  • アップグレードする RHEL for Edge 9 イメージの Blueprint を作成済みである。

手順

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

    1. イメージの作成を開始します。

      $ sudo composer-cli compose start blueprint-name edge-commit
    2. 作成が終了したら、イメージをダウンロードします。
    3. ダウンロードしたイメージを /var/www/html/ フォルダーに展開します。

      $ sudo tar -xf image_file -C /var/www/html
    4. httpd サービスを起動します。

      $ systemctl start httpd.service
  1. 現在のリモートリポジトリー設定を確認します。

    $ sudo cat /etc/ostree/remotes.d/edge.conf
  2. 現在の url リポジトリーを確認します。

    $ sudo ostree remote show-url edge
  3. リモート参照ブランチを一覧表示します。

    $ ostree remote refs edge

    次の出力が表示されます。

    Error: Remote refs not available; server has no summary file
  4. 新規リポジトリーを追加するには、以下を実行します。

    1. リモートリポジトリーを追加するように url キーを設定します。以下に例を示します。

      $ sudo ostree remote add \
      --no-gpg-verify rhel9 http://192.168.122.1/repo/
    2. アップグレード用の RHEL 9 コミットをポイントするように url キーを設定します。以下に例を示します。

      $ sudo cat /etc/ostree/remotes.d/edge.conf
      [remote "edge"]
      url=http://192.168.122.1/ostree/repo/
      gpg-verify=false
    3. url が新しいリモートリポジトリーに設定されているかどうかを確認します。

      $ sudo cat /etc/ostree/remotes.d/rhel9.conf
      [remote "edge"]
      url=http://192.168.122.1/repo/
      gpg-verify=false
    4. 新しい URL リポジトリーを確認します。

      $ sudo ostree remote show-url rhel9 http://192.168.122.1/ostree-rhel9/repo/
    5. 現在のリモートリストオプションを一覧表示します。

      $ sudo ostree remote list
      
      output:
      edge
      rhel9
  5. システムを RHEL バージョンにリベースし、RHEL 9 バージョンの参照パスを提供します。

    $ rpm-ostree rebase rhel9:rhel/9/x86_64/edge
  6. システムを再起動します。

    $ systemctl reboot
  7. ユーザー名およびパスワードを入力します。
  8. 現在のシステムステータスを確認します。

    $ rpm-ostree status

検証

  1. 現在実行中のデプロイメントの現在のステータスを確認します。

    $ rpm-ostree status
  2. オプション: カーネルによって管理されているプロセッサーおよびタスクをリアルタイムで表示します。

    $ top
  3. アップグレードが要件をサポートしていない場合は、以前の安定したデプロイメント RHEL 8 バージョンに手動でロールバックするオプションがあります。

    $ sudo rpm-ostree rollback
  4. システムを再起動します。ユーザー名およびパスワードを入力します。

    $ systemctl reboot

    再起動後、システムは RHEL 9 を正常に実行するはずです。

    注記

    アップグレードに成功し、以前のバージョンの RHEL 8 を使用したくない場合は、古いリポジトリーを削除できます。

    $ sudo ostree remote delete edge

10.4. RHEL for Edge の自動イメージ更新のデプロイ

Edge デバイスに RHEL for Edge イメージをインストールした後、利用可能なイメージ更新がある場合は確認し、自動適用することができます。

rpm-ostreed-automatic.service (systemd service) および rpm-ostreed-automatic.timer (systemd timer) は、チェックとアップグレードの頻度を制御します。利用可能な更新がある場合は、ステージングされたデプロイメントとして表示されます。

イメージの自動更新をデプロイするには、以下の高レベルの手順を実施します。

  • イメージ更新ポリシーの更新
  • 更新の自動ダウンロードとステージングの有効化

10.4.1. RHEL for Edge イメージの更新ポリシーの更新

イメージ更新ポリシーを更新するには、Edge デバイスの /etc/rpm-ostreed.conf ロケーションにある rpm-ostreed.conf ファイルから「AutomaticUpdatePolicy」と「IdleExitTimeout」の設定を使用します。

AutomaticUpdatePolicy設定は、自動アップデートのポリシーを制御するもので、以下のオプションがあります。

  • なし:自動更新を無効にします。デフォルトでは、「AutomaticUpdatePolicy」設定は「none」に設定されています。
  • チェック:rpm-ostree 状態で利用可能な更新を表示するために十分なメタデータをダウンロードします。
  • ステージ:再起動時に適用される更新をダウンロードして展開します。

IdleExitTimeout設定は、デーモンが終了するまでの非活動時間を秒単位で制御するもので、以下のオプションがあります。

  • 0:オートイグジットを無効にします。
  • 60:デフォルトでは、IdleExitTimeoutの設定は60に設定されています。

自動更新を有効にするには、以下の手順を実行します。

手順

  1. /etc/rpm-ostreed.conf ファイルで、以下を更新します。

    • AutomaticUpdatePolicy の値を変更して チェック します。
    • 更新チェックを実行するには、IdleExitTimeout の値を秒単位で指定します。
  2. rpm-ostreed サービスを再読み込みし、systemd タイマーを有効にします。

    # systemctl reload rpm-ostreed
    # systemctl enable rpm-ostreed-automatic.timer --now
  3. rpm-ostree 状態を確認し、自動更新ポリシーが設定され、時間がアクティブであることを確認します。

    # rpm-ostree status

    コマンド出力は以下を表示します。

    State: idle; auto updates enabled (check; last run <minutes> ago)

    さらに、出力には利用可能な更新情報も表示されます。

10.4.2. RHEL for Edge の更新の自動ダウンロードとステージングの有効化

イメージ更新ポリシーを更新してイメージの更新を確認すると、更新がある場合は更新の詳細と一緒に表示されます。更新の適用を決定した場合は、ポリシーを有効にして、更新を自動的にダウンロードしてステージします。続いて、利用可能なイメージの更新がダウンロードされ、デプロイメントのためにステージングされます。更新は、Edge デバイスを再起動すると適用され、有効になります。

更新の自動ダウンロードとステージングのポリシーを有効にするには、以下の更新を実行します。

手順

  1. /etc/rpm-ostreed.conf ファイルで、「AutomaticUpdatePolicy」を stage に更新します。
  2. rpm-ostreed サービスを再読み込みします。

    # systemctl enable rpm-ostreed-automatic.timer --now
  3. rpm-ostree の状態を確認します。

    # rpm-ostree status

    コマンド出力は以下を表示します。

    State: idle
    AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run <time> ago
  4. 更新を開始するには、タイマーによる更新の開始を待つか、手動でサービスを開始することができます。

    # systemctl start rpm-ostreed-automatic.service

    更新が開始すると、rpm-ostree の状態は以下のようになります。

    # rpm-ostree status
    State: busy
    AutomaticUpdates: stage; rpm-ostreed-automatic.service: running
    Transaction: automatic (stage)

    更新が完了すると、デプロイメントの一覧に新しいデプロイメントがステージングされ、オリジナルの起動したデプロイメントはそのままになります。新しいデプロイメントを使用してシステムを起動するか、次の更新を待つかを決めることができます。

    デプロイメントの一覧を表示するには、rpm-ostree status コマンドを実行してください。

    以下は出力例です。

    # rpm-ostree status
    State: idle
    AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run <time> ago
    Deployments:

    更新されたパッケージの詳細を含むデプロイメントの一覧を表示するには、rpm-ostree status -v コマンドを実行してください。

10.5. RHEL for Edge イメージのロールバック

更新されたイメージが正常にデプロイされたかどうかを確認することができます。デプロイが失敗した場合は、以前のバージョンにロールバックすることができます (コミット)。以前の機能状態にロールバックするには、手動で手順を実行するか、自動化されたプロセスを使用することができます。

10.5.1. RHEL for Edge イメージのロールバック方法

RHEL for Edge イメージでは、トランザクション更新のみがオペレーティングシステムに適用されます。トランザクション更新では、失敗した更新を最後の既知の良い状態に簡単にロールバックすることができ、更新中のシステム障害を防ぐことができます。

Greenboot でインテリジェントなロールバックを使用して、アプリケーションの安定性を選択するか、またはセキュリティー更新のあるアプリケーションを選択するかという問題をなくすことができます。

Greenboot は rpm-ostree を活用し、システム起動時に実行されるカスタムヘルスチェックを実行します。問題が発生した場合、システムは変更をロールバックし、最後の作業状態を保持します。

以下の図は、RHEL for Edge イメージのロールバックプロセスを説明しています。

イメージ復元プロセス

10.5.2. RHEL for Edge イメージの手動でのロールバック

RHEL for Edge イメージの更新のためのデプロイメントが失敗した場合、または更新が正常に動作しない場合は、手動で以前のバージョンのデプロイメントにロールバックすることができます。

前のバージョンにロールバックするには、以下の手順を実行します。

手順

  1. rollback コマンドを実行します。

    # rpm-ostree rollback

    コマンド出力では、移動しているコミット ID の詳細と、削除されたパッケージの詳細を含む完全なトランザクションが表示されます。

  2. システムを再起動します。

    # systemctl reboot

    このコマンドは、安定したコンテンツの前のコミットを有効にします。変更が適用され、以前のバージョンが復元されます。

10.5.3. 自動化プロセスを使用した RHEL for Edge イメージのロールバック

Greenboot チェックは、起動プロセスに統合されたフレームワークを提供し、ヘルスチェックが失敗した場合は rpm-ostree ロールバックを起動できます。ヘルスチェックについては、ヘルスチェックの合否を示すカスタムスクリプトを作成できます。結果をもとに、ロールバックをトリガーするタイミングを決めることができます。

ヘルスチェックスクリプトを作成するには、以下の手順を実行します。

手順

  1. 標準の終了コード 0 を返すスクリプトを作成します。

    たとえば、以下のスクリプトにより、構成された DNS サーバーを必ず利用できます。

    #!/bin/bash
    
    DNS_SERVER=$(grep ^nameserver /etc/resolv.conf | head -n 1 | cut -f2 -d" ")
    COUNT=0
    # check DNS server is available
    ping -c1 $DNS_SERVER
    while [ $? != '0' ] && [ $COUNT -lt 10 ]; do
    ((COUNT++))
    echo "Checking for DNS: Attempt $COUNT ."
    sleep 10
    ping -c 1 $DNS_SERVER
    done
  2. /etc/greenboot/check/required.d/ でヘルスチェック用の実行ファイルを追加します。

    chmod +x check-dns.sh

    次の再起動時には、システムが boot-complete.target に入る前に、スクリプトが起動プロセスの一環として実行されます。ヘルスチェックが正常に行われた場合は何もしません。ヘルスチェックに失敗した場合は、システムが数回再起動されてから、更新が失敗したとマークされ、前回の更新にロールバックされます。

検証手順

デフォルトゲートウェイにアクセスできるかどうかを確認するには、以下のヘルスチェックスクリプトを実行します。

  1. 標準の終了コード 0 を返すスクリプトを作成します。

    #!/bin/bash
    
    DEF_GW=$(ip r | awk '/^default/ {print $3}')
    SCRIPT=$(basename $0)
    
    count=10
    connected=0
    ping_timeout=5
    interval=5
    
    while [ $count -gt 0 -a $connected -eq 0 ]; do
      echo "$SCRIPT: Pinging default gateway $DEF_GW"
      ping -c 1 -q -W $ping_timeout $DEF_GW > /dev/null 2>&1 && connected=1 || sleep $interval
      ((--count))
    done
    
    if [ $connected -eq 1 ]; then
      echo "$SCRIPT: Default gateway $DEF_GW is reachable."
      exit 0
    else
      echo "$SCRIPT: Failed to ping default gateway $DEF_GW!" 1>&2
      exit 1
    fi
  2. /etc/greenboot/check/required.d/ ディレクトリーでヘルスチェックの実行ファイルを追加します。

    chmod +x check-gw.sh

付録A 用語とコマンド

本セクションでは、rpm ostree の用語およびコマンドについて説明します。

A.1. OSTree と rpm-ostree の用語

以下は、OSTree および rpm-ostree のイメージで使用される便利な用語の一部になります。

表A.1 OSTree と rpm-ostree の用語

用語定義

OSTree

Linux ベースのオペレーティングシステムのバージョンを管理するために使用するツールです。OSTree のツリービューは Git に似ていて、同様のコンセプトに基づいています。

rpm-ostree

オペレーティングシステムの更新をホストするハイブリッドイメージまたはシステムパッケージ。

Commit

オペレーティングシステムのリリースバージョンまたはイメージバージョン。Image Builder は、RHEL for Edge イメージの ostree コミットを生成します。これらのイメージを使用して、Edge サーバーに RHEL をインストールしたり、更新したりすることができます。

Refs

ostree 内のブランチを表します。Refs は常に最新のコミットに解決します。例: rhel/9/x86_64/edge

Revision (Rev)

特定のコミットの SHA-256。

Remote

ostree コンテンツをホストする http または https エンドポイント。これは、dnf リポジトリーの baseurl と似ています。

static-delta

ostree イメージへの更新は常にデルタ更新です。RHEL for Edge イメージの場合、更新されるファイル数により、TCP のオーバーヘッドが予想以上に大きくなる可能性があります。TCP のオーバーヘッドを回避するために、特定のコミット間で static-delta を生成し、単一の接続で更新を送信することができます。この最適化は、接続性に制約のある大規模なデプロイメントをサポートします。

A.2. OSTree コマンド

本セクションでは、ostree イメージのインストールまたは管理時に使用可能な ostree コマンドをいくつか紹介します。

表A.2 OSTree コマンド

ostree pull

ostree pull-local --repo [path] src

ostree pull-local <path> <rev> --repo=<repo-path>

ostree pull <URL> <rev> --repo=<repo-path>

ostree summary

ostree summary -u --repo=<repo-path>

参照先の表示

ostree refs --repo ~/Code/src/osbuild-iot/build/repo/ --list

リポジトリーでのコミットの表示

ostree log --repo=/home/gicmo/Code/src/osbuild-iot/build/repo/ <REV>

コミットの検査

ostree show --repo build/repo <REV>

リポジトリーのリモートの一覧表示

ostree remote list --repo <repo-path>

REV の解決

ostree rev-parse --repo ~/Code/src/osbuild-iot/build/repo fedora/x86_64/osbuild-demo

ostree rev-parse --repo ~/Code/src/osbuild-iot/build/repo b3a008eceeddd0cfd

static-delta の作成

ostree static-delta generate --repo=[path] --from=REV --to=REV

GPG 鍵を使用した 既存 の ostree コミットの署名

ostree gpg-sign --repo=<repo-path> --gpg-homedir <gpg_home> COMMIT KEY-ID…

A.3. rpm-ostree コマンド

本セクションでは、ostree イメージのインストールまたは管理時に使用可能な rpm-ostree コマンドをいくつか紹介します。

表A.3 rpm-ostree コマンド

コマンド説明

rpm-ostree --repo=/home/gicmo/Code/src/osbuild-iot/build/repo/ db list <REV>

このコマンドは、リポジトリーへの <REV> コミットに存在するパッケージを一覧表示します。

rpm-ostree rollback

OSTree は、デプロイメント と呼ばれるブートローダーエントリーの順序リストを管理します。インデックス 0 のエントリーは、デフォルトのブートローダーエントリーです。エントリーごとに個別の /etc ディレクトリーがありますが、エントリーはすべて 1 つの /var ディレクトリーを共有します。Tab を押して起動を中断し、ブートローダーを使用してエントリーを選択できます。これにより、以前の状態にロールバックされます。つまり、デフォルトのデプロイメントが変更されると、デフォルト以外の状態になります。

rpm-ostree status

このコマンドは、使用中の現在のデプロイメントに関する情報を提供します。起動時にリストで一番上にあるデプロイメントがデフォルトになるなど、利用可能な全デプロイメントの名前と refspec が順番に記載されます。* のマークが付いたデプロイメントは現在の起動されるデプロイメントを、「r」のマークが付いたものは最新のアップグレードを示します。

rpm-ostree db list

このコマンドを使用して、コミットされたパッケージを確認します。1 つ以上のコミットを指定する必要がありますが、範囲や複数指定したコミットも機能します。

rpm-ostree db diff

このコマンドを使用して、2 つの rev (リビジョン) のツリー間でパッケージがどのように異なるかを表示します。rev を指定しないと、起動したコミットが保留中のコミットと比較されます。rev を 1 つだけ指定すると、起動したコミットはその rev と比較されます。

rpm-ostree upgrade

このコマンドは、現在のツリーの最新バージョンをダウンロードしてデプロイし、現在のツリーを次回の起動のデフォルトとして設定します。これは、実行中のファイルシステムツリーには影響はありません。変更を適用するには、再起動する必要があります。

関連情報

  • rpm-ostree man ページ

A.4. FDO 自動オンボーディング用語

このセクションでは、FDO の用語について説明します。

表A.4 fdo の用語

コマンド説明

FDO

FIDO Device Onboarding

Device

ハードウェア、デバイス、またはコンピューター。

Owner

デバイスの最終的な所有者 - 会社または IT 部門。

製造元

デバイスの製造元。

製造元サーバー

そのデバイス向けのデバイス認証情報を作成します。

製造元クライアント

製造サーバーの場所を通知します。

所有者のバウチャー (OV)

個々のデバイスの所有権の記録。次の情報が含まれています。

* 所有者 (fdo-owner-onboarding-service)

* ランデブーサーバー - FIDO サーバー (fdo-rendezvous-server)

* デバイス (少なくとも 1 つの組み合わせ)(fdo-manufacturing-service)

デバイス認証情報 (DC)

製造時にデバイスに保存されている主要な認証情報およびランデブー。

製造サーバーを設定するためのキー

* key_path

* cert_path

* key_type

* mfg_string_type: デバイスのシリアル番号

* allowed_key_storage_types:使用しているデバイスの認証に使用されるデータを保護する TPM (Filesystem and Trusted Platform Module)。

ランデブーサーバー

デバイスによって使用され、後でデバイスの所有者を見つけるプロセスで使用されるサーバーへのリンク

関連情報

A.5. FDO 自動オンボーディングテクノロジー

以下は、FDO 自動オンボーディングに関連して使用されるテクノロジーです。

表A.5 OSTree と rpm-ostree の用語

Technology定義

UEFI

Unified Extensible Firmware Interface

RHEL

Red Hat® オペレーティングシステム (OS)

rpm-ostree

背景イメージベースのアップグレード。

Greenboot

rpm-ostree 上の systemd のヘルスチェックフレームワーク。

Osbuild

オペレーティングシステムアーティファクト用のパイプラインベースのビルドシステム。

Container

Linux® コンテナーは、システムの他の部分から分離された 1 つ以上のプロセスのセットです。

Coreos-installer

RHEL イメージのインストールを支援し、UEFI でシステムを起動します。

FIDO FDO

設定およびオンボーディングデバイスをプロビジョニングするための仕様プロトコル。