Модуль community.proxmox.proxmox_node_network — управление сетевыми интерфейсами на узлах Proxmox
Примечание
Этот модуль входит в коллекцию community.proxmox (версия 1.6.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.proxmox. Для работы с этим модулем необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.proxmox.proxmox_node_network.
Добавлено в community.proxmox 1.4.0
Краткое описание
- Этот модуль позволяет управлять сетевыми интерфейсами на узлах Proxmox.
- Поддерживаются различные типы интерфейсов, включая bridge, bond, eth, vlan и OVS.
- Изменения конфигурации сети сохраняются как подготовленные и должны быть явно применены с помощью
state=apply, чтобы вступить в силу. - Изменения, внесённые с помощью
state=presentилиstate=absent, только подготавливаются и не влияют на работающую конфигурацию сети, пока не будут применены.
Требования
Следующие требования должны быть выполнены на узле, на котором выполняется этот модуль.
- ipaddress
- proxmoxer >= 2.0
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_host string / обязательный | Укажите целевой узел кластера Proxmox VE. Если параметр не указан, используется переменная окружения |
api_password string | Укажите пароль для аутентификации. Если параметр не указан, используется переменная окружения |
api_port integer | Укажите целевой порт кластера Proxmox VE. Если параметр не указан, используется переменная окружения |
api_timeout integer | Ограничение времени для запросов к API Proxmox VE. По умолчанию: |
api_token_id string | Укажите идентификатор токена. Если параметр не указан, используется переменная окружения |
api_token_secret string | Укажите секрет токена. Если параметр не указан, используется переменная окружения |
api_user string / обязательный | Укажите пользователя для аутентификации. Если параметр не указан, используется переменная окружения |
autostart boolean | Автоматически запускать интерфейс при загрузке. Поддерживается для типов интерфейсов Варианты:
|
bond_mode string | Режим объединения для интерфейсов типа Допустимые значения для типа интерфейса Допустимые значения для типа интерфейса Варианты:
|
bond_primary string | Основной интерфейс для объединения в режиме active-backup. Обязателен для режима объединения Поддерживается только для типа интерфейса Основной интерфейс также следует указать в параметре |
bond_xmit_hash_policy string | Политика хеширования для передачи данных интерфейсом типа bond. Обязательна для режимов объединения Варианты:
|
bridge_ports string | Укажите интерфейсы, которые нужно добавить в мост. Поддерживается только для типа интерфейса Параметр можно удалить, указав пустую строку |
bridge_vids string | Укажите разрешённые VLAN (например, «2 4 100-200»). Используется только при включённом параметре Поддерживается только для типа интерфейса Параметр можно удалить, указав пустую строку |
bridge_vlan_aware boolean | Включить поддержку VLAN для моста. Поддерживается только для типа интерфейса Варианты:
|
ca_path path | Путь к локальному сертификату, который будет использоваться для проверки TLS-соединений. Игнорируется, если |
cidr string | Адрес узла IPv4 с длиной префикса (например, «192.168.1.10/24»). Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
cidr6 string | Адрес узла IPv6 с длиной префикса (например, «2001:db8::10/64»). Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
comments string | Комментарии к конфигурации интерфейса. Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
gateway string | Адрес шлюза IPv4 по умолчанию. Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
gateway6 string | Адрес шлюза IPv6 по умолчанию. Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
iface string | Имя сетевого интерфейса. Обязателен при Для типа интерфейса |
iface_type string | Тип сетевого интерфейса. Обязателен при Невозможно изменить после создания интерфейса. Варианты:
|
mtu integer | Максимальный размер блока передачи (1280–65520). Поддерживается для типов интерфейсов Параметр можно удалить, указав |
node string / обязательный | Узел Proxmox, на котором нужно управлять сетевыми интерфейсами. |
ovs_bonds string | Интерфейсы, используемые устройством объединения OVS (разделённые пробелами). Обязателен для типа интерфейса |
ovs_bridge string | Имя моста OVS. Обязателен для типов интерфейсов |
ovs_options string | Параметры интерфейса OVS. Поддерживается для типов интерфейсов Параметр можно удалить, указав пустую строку |
ovs_ports string | Интерфейсы, добавляемые в мост OVS. Поддерживается только для типа интерфейса Параметр можно удалить, указав пустую строку |
ovs_tag integer | Тег VLAN (1–4094). Поддерживается для типов интерфейсов Параметр можно удалить, указав |
slaves string | Интерфейсы, используемые устройством объединения (разделённые пробелами). Обязателен для типа интерфейса |
state string | Требуемое состояние сетевого интерфейса. Значения Значение Значение Варианты:
|
validate_certs boolean | Проверять TLS-сертификаты, используемые для подключения к API Proxmox VE. В настоящее время значение по умолчанию — Если параметр не указан, используется переменная окружения Варианты:
|
vlan_raw_device string | Исходное устройство для интерфейса VLAN. Обязательно, если iface имеет формат «vlanXY». Поддерживается только для типа интерфейса |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.proxmox.proxmox | Используйте |
check_mode | Поддержка: полная Режим проверки полностью поддерживается для всех состояний. | Может выполняться в режиме |
diff_mode | Поддержка: полная Режим проверки полностью поддерживается для всех состояний. | В режиме различий будут возвращены сведения об изменениях (или о том, что, возможно, потребуется изменить в |
Примечания
Примечание
- Изменения конфигурации сети сохраняются как подготовленные и должны быть явно применены с помощью
state=apply, чтобы вступить в силу. - Изменения, внесённые с помощью
state=presentилиstate=absent, только подготавливаются и не влияют на работающую конфигурацию сети, пока не будут применены. - Тип интерфейса невозможно изменить после его создания. Чтобы изменить тип, удалите интерфейс и создайте его заново.
- Интерфейсы Ethernet (тип
eth) соответствуют физическому оборудованию и не могут быть созданы через API. Можно настраивать только существующие физические интерфейсы. - Имена интерфейсов bond и OVS bond должны соответствовать формату
bondX, где X — число от 0 до 9999 (например,bond0,bond1,bond9999). - Для интерфейсов VLAN поддерживаются два формата именования:
vlanXY(например,vlan100) иiface_name.vlan_id(например,eth0.100). - Для формата
vlanXYтребуется параметрvlan_raw_device. - Для формата
iface_name.vlan_idпараметрvlan_raw_deviceуказывать не следует. - Удаление поддерживается для отдельных параметров. Чтобы удалить строковый параметр, задайте пустую строку
'', а чтобы удалить целочисленный параметр —-1. - Параметры, которые можно удалить:
cidr,gateway,cidr6,gateway6,comments,mtu,bridge_ports,bridge_vids,ovs_ports,ovs_options,ovs_tag. - При использовании
state=applyилиstate=revertдопускается только параметрnode. Все остальные параметры запрещены.
См. также
См. также
- community.proxmox.proxmox_node_network_info
-
Получение сведений о сетевых интерфейсах на узлах Proxmox.
- Настройка сети Proxmox
-
Документация по настройке сети Proxmox VE.
Примеры
# Configure a network interface
- name: Configure network interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: eth0
iface_type: eth
cidr: 192.168.1.10/24
gateway: 192.168.1.1
cidr6: 2001:db8::10/64
gateway6: 2001:db8::1
autostart: true
mtu: 1500
comments: "Management network"
# Create a simple bridge interface
- name: Create bridge interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr0
iface_type: bridge
cidr: 192.168.1.10/24
gateway: 192.168.1.1
autostart: true
# Create a bond interface
- name: Create bond interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: bond0
iface_type: bond
bond_mode: active-backup
bond_primary: eth0
slaves: eth0 eth1
cidr: 192.168.1.0/24
gateway: 192.168.1.1
# Create a VLAN interface
- name: Create VLAN interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: eth0.100
iface_type: vlan
cidr: 192.168.100.10/24
# Create a VLAN interface with vlanXY format
- name: Create VLAN interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vlan100
iface_type: vlan
vlan_raw_device: eth0
cidr: 192.168.100.0/24
# Create a complex bridge with VLAN awareness
- name: Create VLAN-aware bridge
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr1
iface_type: bridge
bridge_ports: eth1 eth2
bridge_vlan_aware: true
bridge_vids: "2 4 100-200"
cidr: 192.168.2.0/24
gateway: 192.168.2.1
mtu: 9000
comments: "VLAN-aware bridge for trunking"
# Create an OVS bridge
- name: Create OVS bridge
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: ovsbr0
iface_type: OVSBridge
ovs_ports: eth3 eth4
ovs_options: "updelay=5000"
cidr: 192.168.3.10/24
gateway: 192.168.3.1
# Create an OVS bond
- name: Create OVS bond
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: bond1 # Must follow bondX format where X is 0-9999
iface_type: OVSBond
bond_mode: active-backup
ovs_bonds: eth5 eth6
ovs_bridge: ovsbr0
ovs_tag: 10
ovs_options: "updelay=5000"
# Create an OVS internal port
- name: Create OVS internal port
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: ovsint0
iface_type: OVSIntPort
ovs_bridge: ovsbr0
ovs_tag: 20
ovs_options: "tag=20"
cidr: 192.168.20.10/24
gateway: 192.168.20.1
# Create interface with IPv6
- name: Create dual-stack interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr2
iface_type: bridge
bridge_ports: eth7
cidr: 192.168.4.0/24
gateway: 192.168.4.1
cidr6: 2001:db8::/64
gateway6: 2001:db8::1
autostart: true
# Remove an interface
- name: Remove interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: absent
iface: vmbr0
# Apply network configuration
- name: Apply network
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: apply
# Complete workflow example
- name: Create interface and apply changes
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr1
iface_type: bridge
cidr: 192.168.2.10/24
gateway: 192.168.2.1
- name: Apply staged network changes
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: apply
# Revert network configuration changes
- name: Revert network changes
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: revert
# Using API token authentication
- name: Create interface with API token
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_token_id: my-token
api_token_secret: my-token-secret
node: pve01
state: present
iface: vmbr3
iface_type: bridge
cidr: 192.168.5.10/24
gateway: 192.168.5.1
# Delete specific parameters from an interface
- name: Remove IP configuration from bridge
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr0
iface_type: bridge
cidr: "" # Delete IPv4 CIDR
gateway: "" # Delete IPv4 gateway
cidr6: "" # Delete IPv6 CIDR
gateway6: "" # Delete IPv6 gateway
comments: "" # Delete comments
mtu: -1 # Delete MTU (use -1 for integer parameters)
# Remove bridge ports and VLAN configuration
- name: Remove bridge ports and VLAN settings
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: vmbr1
iface_type: bridge
bridge_ports: "" # Remove all bridge ports
bridge_vlan_aware: true
bridge_vids: "" # Remove VLAN IDs (requires bridge_vlan_aware: true)
# Remove OVS-specific parameters
- name: Remove OVS options and ports
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: ovsbr0
iface_type: OVSBridge
ovs_ports: "" # Remove OVS ports
ovs_options: "" # Remove OVS options
ovs_tag: -1 # Remove VLAN tag (use -1 for integer parameters)
# Configure existing physical Ethernet interface
- name: Configure physical Ethernet interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: eth0
iface_type: eth
cidr: 192.168.1.10/24
gateway: 192.168.1.1
mtu: 9000
comments: "Management interface"
# Note: eth interfaces represent physical hardware and cannot be created via API
# Only existing physical interfaces can be configured
# Create bond interface with proper naming format
- name: Create bond interface
community.proxmox.proxmox_node_network:
api_host: proxmox.example.com:8006
api_user: root@pam
api_password: secret
node: pve01
state: present
iface: bond0 # Must follow bondX format where X is 0-9999
iface_type: bond
bond_mode: active-backup
bond_primary: eth0
slaves: eth0 eth1
cidr: 192.168.10.0/24
gateway: 192.168.10.1
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
changed boolean | Были ли внесены изменения модулем. Возвращается: всегда Пример: |
diff list / elements=string | Различия между конфигурациями в формате YAML с состояниями до и после. Возвращается: если были внесены изменения (создание, обновление, удаление) |
interface dictionary | Применённая конфигурация интерфейса. Возвращается: если состояние — present Пример: |
msg string | Сообщение с описанием произошедшего. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/proxmox/proxmox_node_network_module.html