4.4. bootc-image-builder を使用して QEMU ディスクイメージを作成する
KVM ハイパーバイザーで起動可能な、事前設定済みの RHEL イメージを準備するには、RHEL bootc イメージを QEMU(QCOW2) イメージに組み込むことができます。その後、仮想マシン上で QCOW2 イメージを実行できます。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行したり、コンテナーを--privilegedモードで実行したりするには、root 権限が必要です。 - システムの root コンテナーレジストリーで、ベース bootc コンテナーイメージが使用できる。
手順
オプション:QCOW2 イメージのユーザー設定を準備するために、
config.tomlファイルを作成します。RHEL ベースイメージにはデフォルトのユーザーは含まれません。ユーザー設定を追加するには、ファイルに以下のような内容を入力します。
[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]後で、このファイルを使用して、
bootc-image-builderコンテナーを実行する際にユーザー設定を挿入できます。または、
cloud-initを使用してベースイメージを設定し、初回起動時にユーザーと SSH キーを挿入することもできます。ユーザーとグループの設定 - cloud-init を使用したユーザーと SSH 鍵の注入 を参照してください。コンテナーを実行する前に、
出力ディレクトリーを初期化する必要があります。ディレクトリーがすでに存在する場合にコマンドが失敗しないようにするには、-p引数を使用します。$ mkdir -p ./output必要なイメージがシステムストレージにプルされていることを確認してください。
$ quay.io/<namespace>/<image>:<tag>ローカルイメージは、以下のいずれかになります。
- Containerfile を使用して構築したイメージ
- ログインが必要な、アクセス制限付きのプライベートレジストリーから取得したイメージ
-
.tarファイルから読み込んだイメージ
bootc-image-builderコンテナーを実行します。必要に応じて、ユーザーアクセス設定を使用する場合は、config.tomlを引数として渡します。以下に例を示します。$ sudo podman run \ --rm \ -it \ --privileged \ --pull=newer \ --security-opt label=type:unconfined_t \ -v /var/lib/containers/storage:/var/lib/containers/storage:Z \ -v ./config.toml:/config.toml:Z \ -v ./output:/output:Z \ registry.redhat.io/rhel10/bootc-image-builder:latest \ --type qcow2 \ --config /config.toml \ localhost/<local-image>:latest
検証
-
指定された出力フォルダーに
.qcow2イメージファイルが作成されていることを確認してください。
次のステップ
-
.qcow2イメージは出力ディレクトリーにあります。このイメージを使用して、イメージをデプロイできます。QCOW2 ディスクイメージを使用した KVM でのコンテナーイメージのデプロイ を参照してください。 - イメージを更新し、変更をレジストリーにプッシュできます。RHEL bootc イメージの管理 を参照してください。