第 14 章 使用 RHEL 系统角色管理容器


使用 podman RHEL 系统角色,您可以管理 Podman 配置、容器以及运行 Podman 容器的 systemd 服务。

使用 podman RHEL 系统角色,您可以在多个 RHEL 系统中自动化 Podman 管理,包括 registry 配置。您可以在 Ansible playbook 中定义所需的 registry 配置,而不是手动编辑文件。

podman RHEL 系统角色使用 podman_registries_conf 变量,它接受包含 registry 设置的字典。然后,该角色会创建一个置入文件,例如在 /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
    Copy to Clipboard Toggle word wrap

    示例 playbook 中指定的设置包括如下:

    • Unqualified-search-registries :在使用简短镜像名称时(例如 podman pull <my-image> )时,扩展 registry Podman 搜索的列表。Podman 在默认 registry 后搜索 my-company-registry.com 中的镜像。
    • [registry]: 定义给定 registry 的特定属性。例如,您可以通过将 insecure=true 设置为运行在 my-local-registry:5000 的本地 registry 来启用不安全连接。
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    请注意,这个命令只验证语法,不能防止错误的、但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    podman_use_new_toml_formatter 变量生成与 Podman 兼容的 TOML 配置文件。此变量通过 true TOML 格式而不是之前使用的 Jinja 模板,支持所有 TOML 功能(包括表和内联表)来增强 Podman 角色。

    默认情况下禁用新格式器,以保持与之前格式器的行为的兼容性。要启用新格式器,请在配置中设置 podman_use_new_toml_formatter: true

podman_use_new_toml_formatter: true
podman_containers_conf:
  containers:
    annotations:
      - environment=production
      - status=tier2
Copy to Clipboard Toggle word wrap

验证

  1. 在主机上运行 podman info 命令:

    $ ansible managed-node-01.example.com -m command -a 'podman info'
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat