Spec-Zone.ru › Ansible

Модуль 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.

Если параметр не указан, используется переменная окружения PROXMOX_HOST.

api_password

string

Укажите пароль для аутентификации.

Если параметр не указан, используется переменная окружения PROXMOX_PASSWORD.

api_port

integer

Укажите целевой порт кластера Proxmox VE.

Если параметр не указан, используется переменная окружения PROXMOX_PORT.

api_timeout

integer

Ограничение времени для запросов к API Proxmox VE.

По умолчанию: 5

api_token_id

string

Укажите идентификатор токена.

Если параметр не указан, используется переменная окружения PROXMOX_TOKEN_ID.

api_token_secret

string

Укажите секрет токена.

Если параметр не указан, используется переменная окружения PROXMOX_TOKEN_SECRET.

api_user

string / обязательный

Укажите пользователя для аутентификации.

Если параметр не указан, используется переменная окружения PROXMOX_USER.

autostart

boolean

Автоматически запускать интерфейс при загрузке.

Поддерживается для типов интерфейсов eth, bridge, bond, vlan и OVSBridge.

Варианты:

  • false
  • true

bond_mode

string

Режим объединения для интерфейсов типа bond или OVSBond.

Допустимые значения для типа интерфейса bond: balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb

Допустимые значения для типа интерфейса OVSBond: active-backup, balance-slb, lacp-balance-slb, lacp-balance-tcp

Варианты:

  • "balance-rr"
  • "active-backup"
  • "balance-xor"
  • "broadcast"
  • "802.3ad"
  • "balance-tlb"
  • "balance-alb"
  • "balance-slb"
  • "lacp-balance-slb"
  • "lacp-balance-tcp"

bond_primary

string

Основной интерфейс для объединения в режиме active-backup.

Обязателен для режима объединения active-backup.

Поддерживается только для типа интерфейса bond.

Основной интерфейс также следует указать в параметре slaves.

bond_xmit_hash_policy

string

Политика хеширования для передачи данных интерфейсом типа bond.

Обязательна для режимов объединения balance-xor и 802.3ad.

Варианты:

  • "layer2"
  • "layer2+3"
  • "layer3+4"

bridge_ports

string

Укажите интерфейсы, которые нужно добавить в мост.

Поддерживается только для типа интерфейса bridge.

Параметр можно удалить, указав пустую строку ''.

bridge_vids

string

Укажите разрешённые VLAN (например, «2 4 100-200»).

Используется только при включённом параметре bridge_vlan_aware.

Поддерживается только для типа интерфейса bridge.

Параметр можно удалить, указав пустую строку ''.

bridge_vlan_aware

boolean

Включить поддержку VLAN для моста.

Поддерживается только для типа интерфейса bridge.

Варианты:

  • false
  • true

ca_path

path

Путь к локальному сертификату, который будет использоваться для проверки TLS-соединений.

Игнорируется, если validate_certs=false.

cidr

string

Адрес узла IPv4 с длиной префикса (например, «192.168.1.10/24»).

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

cidr6

string

Адрес узла IPv6 с длиной префикса (например, «2001:db8::10/64»).

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

comments

string

Комментарии к конфигурации интерфейса.

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge, OVSBond и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

gateway

string

Адрес шлюза IPv4 по умолчанию.

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

gateway6

string

Адрес шлюза IPv6 по умолчанию.

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

iface

string

Имя сетевого интерфейса.

Обязателен при state=present или state=absent.

Для типа интерфейса vlan имя должно соответствовать формату vlanXY (например, vlan100) или iface_name.vlan_id (например, eth0.100).

iface_type

string

Тип сетевого интерфейса.

Обязателен при state=present.

Невозможно изменить после создания интерфейса.

Варианты:

  • "bridge"
  • "bond"
  • "eth"
  • "vlan"
  • "OVSBridge"
  • "OVSBond"
  • "OVSIntPort"

mtu

integer

Максимальный размер блока передачи (1280–65520).

Поддерживается для типов интерфейсов eth, bridge, bond, vlan, OVSBridge, OVSBond и OVSIntPort.

Параметр можно удалить, указав -1.

node

string / обязательный

Узел Proxmox, на котором нужно управлять сетевыми интерфейсами.

ovs_bonds

string

Интерфейсы, используемые устройством объединения OVS (разделённые пробелами).

Обязателен для типа интерфейса OVSBond.

ovs_bridge

string

Имя моста OVS.

Обязателен для типов интерфейсов OVSBond и OVSIntPort.

ovs_options

string

Параметры интерфейса OVS.

Поддерживается для типов интерфейсов OVSBridge, OVSBond и OVSIntPort.

Параметр можно удалить, указав пустую строку ''.

ovs_ports

string

Интерфейсы, добавляемые в мост OVS.

Поддерживается только для типа интерфейса OVSBridge.

Параметр можно удалить, указав пустую строку ''.

ovs_tag

integer

Тег VLAN (1–4094).

Поддерживается для типов интерфейсов OVSBond и OVSIntPort.

Параметр можно удалить, указав -1.

slaves

string

Интерфейсы, используемые устройством объединения (разделённые пробелами).

Обязателен для типа интерфейса bond.

state

string

Требуемое состояние сетевого интерфейса.

Значения present и absent подготавливают изменения, но не применяют их к работающей конфигурации.

Значение apply применяет все подготовленные изменения конфигурации сети к работающей конфигурации.

Значение revert отменяет все подготовленные изменения конфигурации сети.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"
  • "apply"
  • "revert"

validate_certs

boolean

Проверять TLS-сертификаты, используемые для подключения к API Proxmox VE.

В настоящее время значение по умолчанию — false; в community.proxmox 2.0.0 оно изменится на true.

Если параметр не указан, используется переменная окружения PROXMOX_VALIDATE_CERTS.

Варианты:

  • false
  • true

vlan_raw_device

string

Исходное устройство для интерфейса VLAN.

Обязательно, если iface имеет формат «vlanXY».

Поддерживается только для типа интерфейса vlan.

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.proxmox.proxmox

Используйте group/community.proxmox.proxmox в module_defaults, чтобы задать значения по умолчанию для этого модуля.

check_mode

Поддержка: полная

Режим проверки полностью поддерживается для всех состояний.

Может выполняться в режиме check_mode и возвращать прогноз изменения состояния без внесения изменений на целевом узле.

diff_mode

Поддержка: полная

Режим проверки полностью поддерживается для всех состояний.

В режиме различий будут возвращены сведения об изменениях (или о том, что, возможно, потребуется изменить в check_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

Были ли внесены изменения модулем.

Возвращается: всегда

Пример: true

diff

list / elements=string

Различия между конфигурациями в формате YAML с состояниями до и после.

Возвращается: если были внесены изменения (создание, обновление, удаление)

interface

dictionary

Применённая конфигурация интерфейса.

Возвращается: если состояние — present

Пример: {"autostart": true, "cidr": "192.168.1.0/24", "comments": "Management network", "gateway": "192.168.1.1", "iface": "vmbr0", "iface_type": "bridge", "mtu": 1500}

msg

string

Сообщение с описанием произошедшего.

Возвращается: всегда

Пример: "Interface vmbr0 created successfully"

Авторы

  • aleskxyz (@aleskxyz)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API