Модуль community.proxmox.proxmox_firewall — управление правилами брандмауэра в Proxmox
Примечание
Этот модуль входит в коллекцию community.proxmox (версия 1.6.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.proxmox. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.proxmox.proxmox_firewall.
Добавлено в community.proxmox 1.4.0
Краткое описание
- создание, обновление и удаление правил FW на уровне кластера, группы, vnet, узла или виртуальной машины
- создание и удаление групп безопасности брандмауэра
- создание и удаление псевдонимов
Требования
На узле, выполняющем этот модуль, необходимы следующие компоненты.
- proxmoxer >= 2.0
- requests
Параметры
Параметр | Комментарии |
|---|---|
aliases list / elements=dictionary | Список псевдонимов. Псевдонимы можно создавать, обновлять и удалять только на уровне кластера или виртуальной машины. |
|
cidr string |
CIDR для псевдонима. Требуется только при |
|
comment string |
Комментарий к псевдониму. |
|
name string / обязательный |
Имя псевдонима. |
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 / обязательный | Укажите пользователя для аутентификации. Если параметр не указан, используется переменная окружения |
ca_path path | Путь к локальному сертификату, который будет использоваться для проверки TLS-соединений. Игнорируется, если |
comment string | Комментарий к группе безопасности. Требуется только при создании группы. |
group string | Имя группы, к которой относится правило. Требуется только при |
group_conf boolean | Следует ли создать или удалить группу безопасности. Варианты:
|
ip_sets list / elements=dictionary | Список определений наборов IP-адресов для создания, обновления или удаления. Каждый набор IP-адресов — это именованная коллекция CIDR (с необязательными инверсией и комментариями). |
|
cidrs list / elements=dictionary |
Список записей CIDR в наборе IP-адресов. |
|
cidr string / обязательный |
Запись в нотации CIDR. |
|
comment string |
Необязательный комментарий к этой записи CIDR. |
|
nomatch boolean |
Если значение равно true, эта запись CIDR действует как отрицательное совпадение (исключение) в наборе. Варианты:
|
|
comment string |
Необязательный комментарий к набору IP-адресов. |
|
name string / обязательный |
Уникальное имя набора IP-адресов. |
level string | Уровень, на котором применяется правило брандмауэра. Варианты:
|
node string | Имя узла. Требуется только при |
pos integer | Позиция правила в списке. Требуется только при |
rules list / elements=dictionary | Список отдельных правил, которые необходимо применить. |
|
action string / обязательный |
Действие правила (‘ACCEPT’, ‘DROP’, ‘REJECT’) или имя группы безопасности. |
|
comment string |
Необязательный комментарий к конкретному правилу. |
|
dest string |
Ограничение адреса назначения пакета. Можно указать отдельный IP-адрес, набор IP-адресов (‘+ipsetname’) или определение псевдонима IP-адреса. Также можно указать диапазон адресов, например ‘20.34.101.207-201.3.9.99’, или список IP-адресов и сетей (записи разделяются запятыми). Не смешивайте адреса IPv4 и IPv6 в таких списках. |
|
digest string |
Запретить изменения, если дайджест текущего файла конфигурации отличается. Это можно использовать для предотвращения параллельных изменений. Если значение не указано, оно будет вычислено во время выполнения. |
|
dport string |
Ограничение порта назначения TCP/UDP. Можно использовать имена служб или простые числа (0–65535), определённые в ‘/etc/services’. Диапазоны портов можно задать с помощью ‘\d+:\d+’, например ‘80:85’; чтобы указать несколько портов или диапазонов, можно использовать список, разделённый запятыми. |
|
enable boolean |
Включить или отключить правило. Варианты:
|
|
icmp_type string |
Укажите тип ICMP. Допустимо только, если значение proto равно ‘icmp’ или ‘icmpv6’/’ipv6-icmp’. |
|
iface string |
Имя сетевого интерфейса. Для виртуальных машин и контейнеров необходимо использовать имена ключей конфигурации сети (‘net\d+’). Для правил, относящихся к узлу, можно использовать произвольные строки. |
|
log string |
Уровень ведения журнала для правила. Варианты:
|
|
macro string |
Использовать предопределённый стандартный макрос. |
|
pos integer / обязательный |
Позиция правила в списке. |
|
proto string |
Протокол IP. Можно использовать названия протоколов (‘tcp’/’udp’) или простые числа, определённые в ‘/etc/protocols’. |
|
source string |
Ограничение адреса источника пакета. Можно указать отдельный IP-адрес, набор IP-адресов (‘+ipsetname’) или определение псевдонима IP-адреса. Также можно указать диапазон адресов, например ‘20.34.101.207-201.3.9.99’, или список IP-адресов и сетей (записи разделяются запятыми). Не смешивайте адреса IPv4 и IPv6 в таких списках. |
|
sport string |
Ограничение порта источника TCP/UDP. Можно использовать имена служб или простые числа (0–65535), определённые в ‘/etc/services’. Диапазоны портов можно задать с помощью ‘\d+:\d+’, например ‘80:85’; чтобы указать несколько портов или диапазонов, можно использовать список, разделённый запятыми. |
|
type string / обязательный |
Тип правила. Варианты:
|
state string | Создание, обновление или удаление правил брандмауэра либо группы безопасности. Варианты:
|
update boolean | Если Варианты:
|
validate_certs boolean | Проверять TLS-сертификаты, используемые для подключения к API Proxmox VE. В настоящее время по умолчанию используется Если параметр не указан, используется переменная окружения Варианты:
|
vmid integer | Идентификатор виртуальной машины, к которой применяется правило. Требуется только при |
vnet string | Имя виртуальной сети для правила. Требуется только при |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.proxmox.proxmox | Используйте |
check_mode | Поддержка: нет | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме diff будут возвращены сведения об изменениях (или о том, что, возможно, требуется изменить в |
Примеры
- name: Create firewall rules at cluster level
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
level: cluster
state: present
rules:
- type: out
action: ACCEPT
source: 1.1.1.1
log: nolog
pos: 9
enable: true
- type: out
action: ACCEPT
source: 1.0.0.1
pos: 10
enable: true
- name: Update Cluster level firewall rules
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
level: cluster
state: present
update: true
rules:
- type: out
action: ACCEPT
source: 8.8.8.8
log: nolog
pos: 9
enable: false
- type: out
action: ACCEPT
source: 8.8.4.4
pos: 10
enable: false
- name: Delete cluster level firewall rule at pos 10
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
level: cluster
state: absent
pos: 10
- name: Create security group
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
group_conf: true
state: present
group: test
- name: Delete security group
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
group_conf: true
state: absent
group: test
- name: Create FW aliases
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
state: present
aliases:
- name: test1
cidr: '10.10.1.0/24'
- name: test2
cidr: '10.10.2.0/24'
- name: Update FW aliases
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
state: present
update: true
aliases:
- name: test1
cidr: '10.10.1.0/28'
- name: test2
cidr: '10.10.2.0/28'
- name: Delete FW aliases
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
state: absent
aliases:
- name: test1
- name: test2
- name: Create IP SET
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
ip_sets:
- name: hypervisors
comment: PVE hosts
cidrs:
- cidr: 192.168.1.10
nomatch: false
comment: Proxmox pve-01
- cidr: 192.168.1.11
nomatch: true
comment: Proxmox pve-02
- name: test
comment: PVE hosts
cidrs:
- cidr: 10.10.1.0
comment: Proxmox pve-01
- name: Delete IP SETs
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
state: absent
ip_sets:
- name: hypervisors
- name: Delete specific CIDR from IP SET
community.proxmox.proxmox_firewall:
api_user: "{{ pc.proxmox.api_user }}"
api_token_id: "{{ pc.proxmox.api_token_id }}"
api_token_secret: "{{ vault.proxmox.api_token_secret }}"
api_host: "{{ pc.proxmox.api_host }}"
validate_certs: false
state: absent
ip_sets:
- name: test
cidrs:
- cidr: 10.10.1.0
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
group 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_firewall_module.html