第15章 RHEL システムロールを使用したコンテナーの管理


podman RHEL システムロールは、Red Hat Enterprise Linux システム上のコンテナーを管理します。このロールでは、Ansible を使用して Podman の設定やコンテナーのライフサイクル管理を行い、さらにはコンテナー化されたアプリケーションを systemd サービスとしてデプロイします。

15.1. Podman およびその他のコンテナーツールを対象としたイメージレジストリー管理の設定

podman RHEL システムロールを使用すると、複数の RHEL システムにわたる Podman の管理 (レジストリー設定を含む) を自動化できます。ファイルを手動で編集する代わりに、Ansible Playbook で必要なレジストリー設定を定義します。

podman RHEL システムロールは、podman_registries_conf 変数を使用します。この変数は、レジストリー設定を含むディクショナリーを受け取ります。その後、このロールは、システム設定を管理するためのベストプラクティスに従って、たとえば /etc/containers/registries.conf.d/ にドロップインファイルを作成し、設定を適用します。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Configure Podman registries with RHEL system roles
      hosts: managed-node-01.example.com
      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
      tasks:
        - name: Include the podman system role
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.podman

    サンプル Playbook で指定されている設定は次のとおりです。

    • unqualified-search-registries: 短いイメージ名 (例: podman pull <my-image>) を使用する場合に、Podman が検索対象とするレジストリーのリストを追加します。Podman は、デフォルトのレジストリーの後に my-company-registry.com でイメージを検索します。
    • [registry]: 特定のレジストリー用に特定のプロパティーを定義します。たとえば、my-local-registry:5000 で実行されているローカルレジストリーに insecure=true を設定することで、セキュアでない接続を有効にできます。

    podman_use_new_toml_formatter 変数は、Podman と互換性のある TOML 準拠の設定ファイルを生成します。この変数は、以前使用されていた Jinja テンプレートの代わりに、本格的な TOML フォーマッターを使用し、テーブルやインラインテーブルを含むすべての TOML 機能をサポートすることで、Podman ロールを強化します。

    以前のフォーマッターの動作との互換性を維持するために、新しいフォーマッターはデフォルトで無効になっています。新しいフォーマッターを有効にするには、設定で podman_use_new_toml_formatter: true を指定します。

    podman_use_new_toml_formatter: true
    podman_containers_conf:
      containers:
        annotations:
          - environment=production
          - status=tier2
  2. Playbook の構文を検証します。

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

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  1. ホスト上で podman info コマンドを実行します。

    $ ansible managed-node-01.example.com -m command -a 'podman info'
  2. registeries セクションを確認します。

    registries:
      my-company-registry.com:
        Blocked: false
        Insecure: false
        Location: my-company-registry.com
        MirrorByDigestOnly: false
        Mirrors: null
        Prefix: my-company-registry.com
        PullFromMirror: ""
      my-local-registry:5000:
        Blocked: false
        Insecure: true
        Location: my-local-registry:5000
        MirrorByDigestOnly: false
        Mirrors: null
        Prefix: my-local-registry:5000
        PullFromMirror: ""
      search:
      - registry.access.redhat.com
      - docker.io
      - my-company-registry.com
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る