Closed
Description
Summary
UFW seems to support vrrp (and it is listed as a protocol in the man page for ufw), but is not supported by the ufw plugin:
Issue Type
Feature Idea
Component Name
ufw
Ansible Version
$ ansible --version
ansible [core 2.16.3]
config file = None
configured module search path = ['/home/tim/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /home/tim/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.12.3 (main, Nov 6 2024, 18:32:19) [GCC 13.2.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Community.general Version
$ ansible-galaxy collection list community.general
# /usr/lib/python3/dist-packages/ansible_collections
Collection Version
----------------- -------
community.general 8.3.0
Configuration
$ ansible-config dump --only-changed
CONFIG_FILE() = None
OS / Environment
Debian 12 Bookworm
Steps to Reproduce
# Keepalived (protocol 112)
- name: firewall trust ips (keepalived)
community.general.ufw:
rule: allow
src: 192.168.1.0/24
dest: 224.0.0.18
proto: vrrp
Expected Results
I expected ufw to add the vrrp rule. When run manually:
root@control3:~# ufw allow from 192.168.1.0/24 to 224.0.0.18 proto vrrp
Rule added
root@control3:~# ufw status | grep vrrp
224.0.0.18/vrrp ALLOW 192.168.1.0/24/vrrp
root@control3:~#
Actual Results
TASK [firewall trust ips (keepalived)] **********************************************************************************************************************************************************************************************************************************************************************
fatal: [worker2]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [worker1]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [control3]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [control1]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [control2]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [worker4]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
fatal: [worker3]: FAILED! => {"changed": false, "msg": "value of proto must be one of: ah, any, esp, ipv6, tcp, udp, gre, igmp, got: vrrp"}
Code of Conduct
- I agree to follow the Ansible Code of Conduct