4.2. システムロールを使用した物理的にバインドされたイメージの作成


システムロールを使用すると、まだ起動していない環境を検出し、自身の動作を調整する物理的にバインドされたイメージを作成できます。たとえば、そのようなイメージは systemd ユニットを起動しようとしたり、ネットワークサービスと通信したりしてはならず、そのような処理をすべて初回の起動時まで延期する必要があります。

前提条件

  • コントロールノードと管理対象ノードの準備が完了している
  • 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
  • 管理対象ノードへの接続に使用するアカウントに、そのノードに対する sudo 権限がある。
  • 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。

手順

  1. 以下の内容の Playbook ファイル (./setup.yml など) を作成します。

    ---
    - name: Configure physically bound images with RHEL system roles
      hosts: all
      vars:
        podman_registries_conf:
          unqualified-search-registries:
            - "registry.access.redhat.com"
            - "docker.io"
            - "my-company-registry.com"
          registry:
            - location: "my-company-registry.com"
            - location: "my-local-registry:5000"
              insecure: true
        podman_quadlet_specs:
          - file_src: my-quadlet.container
            state: started
      tasks:
          - name: Run the podman role
            include_role:
              name: redhat.rhel_system_roles.podman

    Ansible Playbook の Podman システムロールにより、レジストリーと quadlet アプリケーションを使用してシステムが設定されます。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ./setup.yml

    このコマンドは構文のみを検証するものであり、誤っているが有効な設定に対する保護機能はありません。

  3. コンテナーアプリケーションを設定するための quadlet.container ファイルを作成します。以下に例を示します。

    [Install]
    WantedBy=default.target
    
    [Container]
    Image=quay.io/my_org/my_image:20260326
    ContainerName=my-quadlet
  4. 以下の内容の Containerfile ファイルを作成します。

    FROM quay.io/centos-bootc/centos-bootc:stream10
    RUN dnf -y install ansible-core rhel-system-roles
    COPY ./setup.yml .
    COPY ./quadlet.container .
    RUN ansible-playbook -c local setup.yml

    イメージビルド内ですべてのアクションを実行し、Playbook を localhost に対して実行します。マルチステージビルドを使用することで、Ansible とロールを最終イメージから除外できます。このプロセスは完全に自己完結型であるため、自動コンテナービルドパイプラインでうまく機能します。

    注記

    イメージに依存するコンテナーやサービス (たとえば、Quadlet) を起動する前に、そのイメージをコピーしておく必要があります。

  5. bootc イメージをビルドします。以下に例を示します。

    $ podman build -t quay.io/<namespace>/<image>:<tag> .
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る