2.6. Image Mode Containerfile におけるユーザーとグループの設定


異なるホストビルド間で切り替える場合は、Containerfile 内の永続的なユーザーとグループを起動可能なコンテナーイメージに対して定義する必要があります。これにより、デプロイ時や既存ホストを移行するための bootc switch 実行時に、インフラストラクチャー全体で一貫した権限を維持できます。

重要

一部のユーザー ID とグループ ID は rhel-bootc イメージ と RHEL for Edge 間で異なります。これは、ssh_keys などの複数のグループとユーザーに影響します。その結果、ID が誤って指定されたグループに秘密鍵が所属するため、公開鍵を使用してエッジシステムにアクセスできなくなります。

Image Mode システムは、altfiles を使用して、/user/lib/passwd のユーザーと /user/lib/group のグループを管理します。この問題を回避するには、既存の RHEL for Edge システムのグループとユーザーの情報を抽出し、Containerfile の一部として固定する必要があります。Containerfile を設定して、ローカルの lib/group ファイルをコンテナーイメージにコピーします。

秘密鍵の権限は手動で変更できます。/etc フォルダーはエッジシステムで変更可能です。ただし、bootc switch コマンドを実行した後、イメージモードベースのシステムでは ssh_keys グループが ID 999 に設定されるため、問題は解決されません。この値は RHEL bootc ベースイメージから取得され、このように ID 101 から ID 999 にドリフトされるため、エッジシステムは SSH 経由でアクセスできなくなります。この問題を解決するには、次の手順に従います。

前提条件

  • 既存の RHEL for Edge rpm-ostree ベースのシステム。
  • RHEL 9 システムをサブスクライブしている。詳細は、RHEL システム登録のスタートガイド ドキュメントを参照してください。
  • コンテナーレジストリーがある。レジストリーをローカルに作成することも、Quay.io サービスで無料アカウントを作成することもできます。Quay.io アカウントを作成するには、Red Hat Quay.io ページを参照してください。
  • 実稼働用または開発者サブスクリプションを持つ Red Hat アカウントがある。無料の開発者サブスクリプションは、Red Hat Enterprise Linux Overview ページで入手できます。
  • registry.redhat.io に対して認証済みである。詳細は、Red Hat コンテナーレジストリーの認証 の記事を参照してください。

手順

  1. RHEL for Edge システムからユーザーとグループの情報を抽出します。

    $ mkdir -p ./usr/lib
    $ ssh admin@192.168.100.50 'cat /lib/passwd' > ./usr/lib/passwd
    $ ssh admin@192.168.100.50 'cat /lib/group' > ./usr/lib/group
  2. Containerfile で指定して、bootc ベースのシステムで欠けている RHEL for Edge パッケージを含めます。さらに、COPY コマンドを使用して、RHEL for Edge システムから抽出された grouppasswd の内容を追加します。以下に例を示します。

    FROM registry.redhat.io/rhel9/rhel-bootc
    WORKDIR /tmp
    RUN dnf -y install ModemManager \
                       NetworkManager-wifi \
                       NetworkManager-wwan \
                       audit \
                       checkpolicy \
                       clevis \
                       clevis-dracut \
                       clevis-luks \
                       clevis-pin-tpm2 \
                       clevis-systemd \
                       containernetworking-plugins \
                       dnsmasq \
                       dracut-config-generic \
                       fdo-client \
                       fdo-owner-cli \
                       firewalld \
                       firewalld-filesystem \
                       greenboot \
                       greenboot-default-health-checks \
                       grubby \
                       ignition \
                       ignition-edge \
                       ipset \
                       iwl100-firmware \
                       iwl1000-firmware \
                       iwl105-firmware \
                       iwl135-firmware \
                       iwl2000-firmware \
                       iwl2030-firmware \
                       iwl3160-firmware \
                       iwl5000-firmware \
                       iwl5150-firmware \
                       iwl6050-firmware \
                       iwl7260-firmware \
                       libsecret \
                       pinentry \
                       policycoreutils-python-utils \
                       python3-distro \
                       python3-setools \
                       rsync \
                       setools-console \
                       tmux \
                       traceroute \
                       usbguard \
                       usbguard-selinux \
                       wireless-regdb \
                       wpa_supplicant
    
    COPY etc /etc
    # You can find the passwd and group content that were extracted from the RHEL for Edge system usr/lib/ in your current working directory. You can copy the content into the container image with the following step:
    COPY usr /usr
  3. bootc イメージをビルドし、レジストリーにプッシュします。

    $ podman build -f Containerfile -t quay.io/<namespace>/<image>:<tag> .
    $ podman push quay.io/<namespace>/<image>:<tag>
  4. 新しく作成された起動可能なコンテナーイメージに対して bootc switch コマンドを実行します。

    $ ssh admin@192.168.100.50
    $ sudo bootc switch quay.io/<namespace>/<image>:<tag>
    $ sudo reboot

検証

エッジシステムを起動可能なコンテナーイメージで再起動した後、/lib/passwd/lib/group の内容が OSTree システムから抽出された内容と一致していることを確認します。

  1. /lib/passwd の内容を確認します。

    $ cat /lib/passwd
  2. /lib/group の内容を確認します。

    $ cat /lib/group

2.6.1. RHEL 9.6 の raw イメージデプロイメントをイメージモードに変換する

raw イメージとしてデプロイされた Edge 用に RHEL 9.6 以降を使用して、それを Image Mode for RHEL に変換します。変換後、現在のオペレーティングシステムを起動可能なコンテナーイメージにリベースすることで、将来のライフサイクル管理のための bootc update ワークフローを有効にできます。

前提条件

  • 既存の 9.6 RHEL for Edge が raw イメージとともにインストールされている。

手順

  1. イメージを更新します。RHEL for Edge イメージの更新 を参照してください。
  2. 既存のイメージを RHEL Image Builder からイメージモードに切り替えます。

    1. rhel-bootc からイメージをビルドします。以下に例を示します。

      $ cat Containerfile
      FROM registry.redhat.io/rhel9/rhel-bootc:latest
      RUN dnf install -y  \
          clevis  \
          clevis-dracut  \
          clevis-luks  \
          fdo-client  \
          fdo-owner-cli
  3. 現在のディレクトリーの Containerfile を使用して <image> イメージをビルドします。

    $ podman build -t quay.io/<namespace>/<image>:<tag> .
  4. イメージをレジストリーにプッシュします。

    $ podman push quay.io/<namespace>/<image>:_<tag>_
  5. デバイス上で bootc switch を実行します。

    $ bootc switch quay.io/<namespace>/<image>:_<tag>_
  6. systemctl reboot を実行します。

    $ sudo systemctl reboot

検証

  • RHEL for Edge システムに接続し、bootc status を使用します。

    # bootc status
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る