containers.podman.podman_network 模块 – 管理 Podman 网络

注意

此模块是 containers.podman 集合 (版本 1.16.2) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install containers.podman。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:containers.podman.podman_network

containers.podman 1.0.0 中的新增功能

概要

  • 使用 podman network 命令管理 podman 网络。

要求

在执行此模块的主机上需要以下要求。

  • podman

参数

参数

注释

debug

布尔值

返回其他信息,这些信息可能有助于调查。

选项

  • false ← (默认)

  • true

disable_dns

布尔值

禁用 DNS 插件(默认“false”)

选项

  • false

  • true

dns

列表 / 元素=字符串

为此网络中的容器设置网络范围的 DNS 解析器/名称服务器。如果未设置,则使用 /etc/resolv.conf 中的主机服务器。

driver

字符串

管理网络的驱动程序(默认“bridge”)

executable

字符串

如果 podman 可执行文件不在运行 podman 的机器上的 $PATH 中,则指向 podman 可执行文件的路径

默认值: "podman"

force

布尔值

移除所有使用该网络的容器。如果容器正在运行,则将其停止并移除。

选项

  • false ← (默认)

  • true

gateway

字符串

子网的 IPv4 或 IPv6 网关

interface_name

字符串

对于 bridge,它使用 bridge 接口名称。对于 macvlan,它是主机上的父设备(与“opt.parent”相同)

internal

布尔值

限制对该网络的外部访问(默认“false”)

选项

  • false

  • true

ip_range

字符串

从范围分配容器 IP

ipam_driver

字符串

设置网络的 ipam 驱动程序(IP 地址管理驱动程序)。未设置时,podman 会根据网络驱动程序自动选择 ipam 驱动程序

选项

  • "host-local"

  • "dhcp"

  • "none"

ipv6

布尔值

启用 IPv6(双栈)网络。您必须传递 IPv6 子网。subnet 选项必须与 ipv6 选项一起使用。幂等性不受支持,因为它会随机生成子网。

选项

  • false

  • true

macvlan

字符串

基于此设备创建 Macvlan 连接

name

字符串 / 必需

网络名称

net_config

列表 / 元素=字典

包含网络配置的字典列表。每个字典都应包含“subnet”和“gateway”键。“ip_range”是可选的。

gateway

字符串 / 必需

子网的网关

ip_range

字符串

从范围分配容器 IP

subnet

字符串 / 必需

CIDR 格式的子网

opt

字典

添加网络选项。目前支持“vlan”和“mtu”。

bclim

整数

设置广播排队的阈值。必须是 32 位整数。将此值设置为 -1 将完全禁用广播排队。

bridge_name

字符串

此选项将给定的名称分配给创建的 Linux Bridge。设置“com.docker.network.bridge.name”选项。

driver_mtu

字符串

设置最大传输单元 (MTU),并取整数值。设置“com.docker.network.driver.mtu”选项。

isolate

布尔值

此选项通过阻止已启用此选项的网络之间的流量来隔离网络。

选项

  • false

  • true

metric

整数

设置加入此网络的每个容器中创建的默认路由的路由度量。只能与 Netavark 网络后端一起使用。

mode

字符串

此选项在接口上设置指定的 ip/macvlan 模式。

mtu

整数

桥接网络接口的 MTU 大小。

no_default_route

字符串

如果设置为 1,Podman 将不会自动向子网添加默认路由。

parent

字符串

应用于 macvlan 接口的主机设备(在这种情况下与“interface”相同)。默认为默认路由接口。

vlan

整数

启用 vlan_filtering 的桥接的 VLAN 标记。

vrf

字符串

此选项将 VRF 分配给桥接接口。它接受 VRF 的名称,默认为无。只能与 Netavark 网络后端一起使用。

quadlet_dir

路径

写入 quadlet 文件的目录的路径。默认情况下,对于 root 用户,它将设置为 /etc/containers/systemd/,对于非 root 用户,则设置为 ~/.config/containers/systemd/

quadlet_file_mode

任意

quadlet 文件的权限。

参数 quadlet_file_mode 可以指定为八进制数或符号模式(例如,u+rwxu=rw,g=r,o=r)。对于八进制数格式,您必须添加前导零,以便 Ansible 的 YAML 解析器知道它是一个八进制数(例如 064401777),或者将其用引号括起来(例如 '644''1777'),以便 Ansible 接收到一个字符串并可以将其从字符串转换为数字。如果不遵循这些规则之一而直接给 Ansible 提供数字,则最终将得到一个十进制数,这将导致意外结果。

如果未指定 quadlet_file_mode 并且 quadlet 文件**不存在**,则在设置新创建文件的模式时,将使用默认的 '0640' 掩码。

如果未指定 quadlet_file_mode 并且 quadlet 文件**存在**,则将使用现有文件的模式。

指定 quadlet_file_mode 是确保文件以正确的权限创建的最佳方法。

quadlet_filename

字符串

要写入的 quadlet 文件名。默认情况下,它采用 *name* 值。

quadlet_options

列表 / 元素=字符串

quadlet 文件的选项。将缺少的常规网络参数选项作为要添加的行列表提供。

recreate

布尔值

即使网络存在也重新创建。

选项

  • false ← (默认)

  • true

route

列表 / 元素=字符串

格式为 <CIDR 表示法的目标>,<网关>,<路由度量(可选)> 的静态路由。此路由将添加到此网络中的每个容器。

state

字符串

网络状态,默认为 ‘present’

选项

  • "present" ← (默认)

  • "absent"

  • "quadlet"

subnet

字符串

CIDR 格式的子网

示例

- name: Create a podman network
  containers.podman.podman_network:
    name: podman_network
  become: true

- name: Create internal podman network
  containers.podman.podman_network:
    name: podman_internal
    internal: true
    ip_range: 192.168.22.128/25
    subnet: 192.168.22.0/24
    gateway: 192.168.22.1
  become: true

- name: Create Quadlet file for podman network
  containers.podman.podman_network:
    name: podman_network
    state: quadlet
    quadlet_options:
      - IPv6=true
      - Label="ipv6 network"

返回值

公共返回值已记录在此处,以下是此模块特有的字段

描述

network

列表 / 元素=字符串

来自已创建或更新网络的事实信息

返回:始终

示例: [{"created": "2024-07-13T15:43:36.548472483+03:00", "dns_enabled": true, "driver": "bridge", "id": "3f46dc2626fe082b1ec703bc74d048765c1110c9eab7d61e33344e212279402c", "internal": false, "ipam_options": {"driver": "host-local"}, "ipv6_enabled": false, "name": "virtuals", "network_interface": "podman2", "subnets": [{"gateway": "10.99.99.1", "subnet": "10.99.99.0/24"}]}]

作者

  • Sagi Shnaidman (@sshnaidm)