18.5. bootc コンテナーイメージでの Ignition の有効化
bootc イメージで Ignition のサポートを設定するには、必要なパッケージをインストールし、initramfs を設定する必要があります。初回ブート時に bootc システムを動的にプロビジョニングするには、この手順を完了する必要があります。
前提条件
- Podman を使用したコンテナービルド環境がある。コンテナーイメージのビルド を参照してください。
-
CentOS Stream、Fedora、RHEL などの
bootcベースイメージにアクセスできる。
手順
bootcイメージのビルド用に新しいディレクトリーを作成します。$ mkdir ignition-bootc && cd ignition-bootc必要なパッケージと設定を含む
Containerfileを作成します。FROM registry.redhat.io/rhel10/rhel-bootc:latest # Install Ignition and integration packages RUN dnf install -y \ ignition \ ignition-edge \ && dnf clean all # Configure sshd to read Ignition-provided SSH keys RUN mkdir -p /etc/ssh/sshd_config.d && \ echo 'AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys.d/ignition' \ > /etc/ssh/sshd_config.d/40-ignition-authorized-keys.conf重要コンテナーレイヤー内で
initramfsを構築するためにdracutを実行しないでください。bootc-image-builderなどのイメージコンパイルツールは、ISO、AMI、raw イメージなどの最終的なディスクイメージをコンパイルする際に、インストールされた Ignition バイナリーを自動的にインポートし、物理ブート用のinitramfsに注入します。コンテナーイメージをビルドします。
$ podman build -t localhost/ignition-bootc:latest .イメージをコンテナーレジストリーにプッシュします。
$ podman push localhost/ignition-bootc:latest quay.io/myorg/ignition-bootc:latest
検証
コンテナーに
ignitionおよびignition-edgeパッケージがインストールされていることを確認します。$ rpm -qa | grep ignition-
/etc/ssh/sshd_config.d/40-ignition-authorized-keys.confファイルが存在し、正しいsshd鍵が設定されていることを確認します。 /usr/lib/ostree/prepare-root.confファイルに一時的なルート設定が含まれていることを確認します。[composefs] enabled = maybe [root] transient = true