{"id":23637040,"url":"https://github.com/ansibleguy/collection_opnsense","last_synced_at":"2025-04-07T13:09:09.257Z","repository":{"id":58004237,"uuid":"528445229","full_name":"ansibleguy/collection_opnsense","owner":"ansibleguy","description":"Ansible Collection to manage OPNSense firewalls using their API","archived":false,"fork":false,"pushed_at":"2024-09-11T13:51:22.000Z","size":1832,"stargazers_count":251,"open_issues_count":18,"forks_count":33,"subscribers_count":6,"default_branch":"latest","last_synced_at":"2024-09-11T21:35:02.155Z","etag":null,"topics":["ansible","ansible-collection","ansible-modules","automation","firewall","firewall-management","frr","iac","infrastructure-as-code","nac","network","network-as-code","networking","opnsense","opnsense-firewall","router","routing"],"latest_commit_sha":null,"homepage":"https://opnsense.ansibleguy.net","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansibleguy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"ansible0guy","github":"ansibleguy"}},"created_at":"2022-08-24T13:51:31.000Z","updated_at":"2024-09-11T13:52:16.000Z","dependencies_parsed_at":"2023-09-24T17:43:14.682Z","dependency_job_id":"ccc185e5-a061-4cf6-8b54-bac00cf35f24","html_url":"https://github.com/ansibleguy/collection_opnsense","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansibleguy%2Fcollection_opnsense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansibleguy%2Fcollection_opnsense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansibleguy%2Fcollection_opnsense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansibleguy%2Fcollection_opnsense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansibleguy","download_url":"https://codeload.github.com/ansibleguy/collection_opnsense/tar.gz/refs/heads/latest","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657281,"owners_count":20974345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-collection","ansible-modules","automation","firewall","firewall-management","frr","iac","infrastructure-as-code","nac","network","network-as-code","networking","opnsense","opnsense-firewall","router","routing"],"created_at":"2024-12-28T06:17:29.907Z","updated_at":"2025-04-07T13:09:09.239Z","avatar_url":"https://github.com/ansibleguy.png","language":"Python","funding_links":["https://ko-fi.com/ansible0guy","https://github.com/sponsors/ansibleguy"],"categories":[],"sub_categories":[],"readme":"# Ansible Collection - ansibleguy.opnsense\n\n[![Lint](https://github.com/ansibleguy/collection_opnsense/actions/workflows/lint.yml/badge.svg)](https://github.com/ansibleguy/collection_opnsense/actions/workflows/lint.yml)\n[![Unit Test Status](https://github.com/ansibleguy/collection_opnsense/actions/workflows/unit_test.yml/badge.svg)](https://github.com/ansibleguy/collection_opnsense/actions/workflows/unit_test.yml)\n[![Ansible Galaxy](https://badges.ansibleguy.net/galaxy.badge.svg)](https://galaxy.ansible.com/ui/repo/published/ansibleguy/opnsense)\n\n**Functional Tests**: \n\n* Status: [![Functional Test Status](https://badges.ansibleguy.net/opnsense.collection.test.svg)](https://github.com/ansibleguy/collection_opnsense/blob/latest/scripts/test.sh) |\n[![Functional-Tests](https://github.com/ansibleguy/collection_opnsense/actions/workflows/functional_test_result.yml/badge.svg)](https://github.com/ansibleguy/collection_opnsense/actions/workflows/functional_test_result.yml)\n* Logs: [API](https://ci.ansibleguy.net/api/job/ansible-test-collection-opnsense/logs?token=2b7bba30-9a37-4b57-be8a-99e23016ce70\u0026lines=1000) |\n[Daily Archive](https://github.com/ansibleguy/collection_opnsense/actions/workflows/functional_test_result.yml) |\n[Short](https://badges.ansibleguy.net/log/collection_opnsense_test_short.log) | [Full](https://badges.ansibleguy.net/log/collection_opnsense_test.log)\n\nInternal CI: [Tester Role](https://github.com/ansibleguy/_meta_cicd) | [Jobs API](https://github.com/O-X-L/github-self-hosted-jobs-systemd)\n\n----\n\n## Requirements\n\nThe [httpx python module](https://www.python-httpx.org/) is used for API communications!\n\n```bash\npython3 -m pip install --upgrade httpx\n```\n\nThen - install the collection itself:\n\n```bash\n# latest version:\nansible-galaxy collection install git+https://github.com/ansibleguy/collection_opnsense.git\n\n# stable/tested version:\nansible-galaxy collection install git+https://github.com/ansibleguy/collection_opnsense.git,1.2.13\n## OR\nansible-galaxy collection install ansibleguy.opnsense\n```\n\n----\n\n## Usage\n\nSee: [Docs](https://opnsense.ansibleguy.net)\n\n[![Docs Uptime](https://status.oxl.at/api/v1/endpoints/4--ansibleguy_ansible-collection---opnsense-documentation/uptimes/7d/badge.svg)](https://status.oxl.at/endpoints/4--ansibleguy_ansible-collection---opnsense-documentation)\n\n[Alternative Link](https://opnsense-ansible.readthedocs.io/)\n\nIf you DO NOT want to use Ansible - [this fork](https://github.com/O-X-L/opnsense-api-client) provides you with a raw Python3 interface.\n\n----\n\n## Contribute\n\nFeel free to contribute to this project using [pull-requests](https://github.com/ansibleguy/collection_opnsense/pulls), [issues](https://github.com/ansibleguy/collection_opnsense/issues) and [discussions](https://github.com/ansibleguy/collection_opnsense/discussions)!\n\nSee also: [Contributing](https://github.com/ansibleguy/collection_opnsense/blob/latest/CONTRIBUTING.md)\n\n\u003cimg src=\"https://contrib.rocks/image?repo=ansibleguy/collection_opnsense\u0026max=7\" /\u003e\n\n----\n\n## Version Support\n\nThe `ansibleguy.opnsense` modules always support the latest version of OPNSense.\n\nIf an API changed, the current module-implementation might fail for firewalls running an older firmware.\n\n----\n\n\n## Modules\n\n**Development States**:\n\nnot implemented =\u003e development =\u003e [testing](https://github.com/ansibleguy/collection_opnsense/tree/latest/tests) =\u003e unstable (_practical testing_) =\u003e stable\n\n### Implemented\n\n\n| Function                  | Module                                                                 | Usage                                                                                                              | State    |\n|:--------------------------|:-----------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------|:---------|\n| **Base**                  | ansibleguy.opnsense.list                                               | [Docs](https://opnsense.ansibleguy.net/modules/2_list.html)                                                        | stable   |\n| **Base**                  | ansibleguy.opnsense.reload                                             | [Docs](https://opnsense.ansibleguy.net/modules/2_reload.html)                                                      | stable   |\n| **Services**              | ansibleguy.opnsense.service                                            | [Docs](https://opnsense.ansibleguy.net/modules/service.html)                                                       | stable   |\n| **Alias**                 | ansibleguy.opnsense.alias                                              | [Docs](https://opnsense.ansibleguy.net/modules/alias.html)                                                         | stable   | \n| **Alias**                 | ansibleguy.opnsense.alias_multi                                        | [Docs](https://opnsense.ansibleguy.net/modules/alias_multi.html)                                                   | stable   |\n| **Alias**                 | ansibleguy.opnsense.alias_purge                                        | [Docs](https://opnsense.ansibleguy.net/modules/alias_multi.html#ansibleguy-opnsense-alias-purge)                   | unstable |\n| **Rules**                 | ansibleguy.opnsense.rule                                               | [Docs](https://opnsense.ansibleguy.net/modules/rule.html)                                                          | stable   |\n| **Rules**                 | ansibleguy.opnsense.rule_multi                                         | [Docs](https://opnsense.ansibleguy.net/modules/rule_multi.html)                                                    | stable   |\n| **Rules**                 | ansibleguy.opnsense.rule_purge                                         | [Docs](https://opnsense.ansibleguy.net/modules/rule_multi.html#ansibleguy-opnsense-rule-purge)                     | unstable |\n| **Rule Interface Groups** | ansibleguy.opnsense.rule_interface_group                               | [Docs](https://opnsense.ansibleguy.net/modules/rule_interface_group.html#ansibleguy-opnsense-rule-interface-group) | unstable |\n| **Savepoints**            | ansibleguy.opnsense.savepoint                                          | [Docs](https://opnsense.ansibleguy.net/modules/savepoint.html)                                                     | stable   |\n| **Packages**              | ansibleguy.opnsense.package                                            | [Docs](https://opnsense.ansibleguy.net/modules/package.html)                                                       | stable   |\n| **System**                | ansibleguy.opnsense.system                                             | [Docs](https://opnsense.ansibleguy.net/modules/system.html)                                                        | stable   |\n| **Cron-Jobs**             | ansibleguy.opnsense.cron                                               | [Docs](https://opnsense.ansibleguy.net/modules/cron.html)                                                          | stable   |\n| **Routes**                | ansibleguy.opnsense.route                                              | [Docs](https://opnsense.ansibleguy.net/modules/routing.html)                                                       | stable   |\n| **Gateways**              | ansibleguy.opnsense.gateway                                            | [Docs](https://opnsense.ansibleguy.net/modules/routing.html)                                                       | unstable |\n| **DNS**                   | ansibleguy.opnsense.unbound_general                                    | [Docs](https://opnsense.ansibleguy.net/modules/unbound_general.html)                                               | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_acl                                        | [Docs](https://opnsense.ansibleguy.net/modules/unbound_acl.html)                                                   | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_forward                                    | [Docs](https://opnsense.ansibleguy.net/modules/unbound_forwarding.html)                                            | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_dot                                        | [Docs](https://opnsense.ansibleguy.net/modules/unbound_dot.html)                                                   | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_host                                       | [Docs](https://opnsense.ansibleguy.net/modules/unbound_host.html)                                                  | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_host_alias                                 | [Docs](https://opnsense.ansibleguy.net/modules/unbound_host_alias.html)                                            | stable   |\n| **DNS**                   | ansibleguy.opnsense.unbound_dnsbl                                      | [Docs](https://opnsense.ansibleguy.net/modules/unbound_host_alias.html)                                            | unstable |\n| **Syslog**                | ansibleguy.opnsense.syslog                                             | [Docs](https://opnsense.ansibleguy.net/modules/syslog.html)                                                        | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_connection, ansibleguy.opnsense.ipsec_tunnel | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_pool, ansibleguy.opnsense.ipsec_network      | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_auth_local                                   | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_auth_remote                                  | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_child                                        | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_vti                                          | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_cert                                         | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_psk                                          | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **IPSec**                 | ansibleguy.opnsense.ipsec_manual_spd                                   | [Docs](https://opnsense.ansibleguy.net/modules/ipsec.html)                                                         | stable   |\n| **Traffic Shaper**        | ansibleguy.opnsense.shaper_pipe                                        | [Docs](https://opnsense.ansibleguy.net/modules/shaper.html)                                                        | stable   |\n| **Traffic Shaper**        | ansibleguy.opnsense.shaper_queue                                       | [Docs](https://opnsense.ansibleguy.net/modules/shaper.html)                                                        | stable   |\n| **Traffic Shaper**        | ansibleguy.opnsense.shaper_rule                                        | [Docs](https://opnsense.ansibleguy.net/modules/shaper.html)                                                        | stable   |\n| **Monit**                 | ansibleguy.opnsense.monit_service                                      | [Docs](https://opnsense.ansibleguy.net/modules/monit.html)                                                         | stable   |\n| **Monit**                 | ansibleguy.opnsense.monit_alert                                        | [Docs](https://opnsense.ansibleguy.net/modules/monit.html)                                                         | stable   |\n| **Monit**                 | ansibleguy.opnsense.monit_test                                         | [Docs](https://opnsense.ansibleguy.net/modules/monit.html)                                                         | stable   |\n| **WireGuard**             | ansibleguy.opnsense.wireguard_server                                   | [Docs](https://opnsense.ansibleguy.net/modules/wireguard.html)                                                     | stable   |\n| **WireGuard**             | ansibleguy.opnsense.wireguard_peer                                     | [Docs](https://opnsense.ansibleguy.net/modules/wireguard.html)                                                     | stable   |\n| **WireGuard**             | ansibleguy.opnsense.wireguard_show                                     | [Docs](https://opnsense.ansibleguy.net/modules/wireguard.html)                                                     | stable   |\n| **WireGuard**             | ansibleguy.opnsense.wireguard_general                                  | [Docs](https://opnsense.ansibleguy.net/modules/wireguard.html)                                                     | stable   |\n| **Interfaces**            | ansibleguy.opnsense.interface_vlan                                     | [Docs](https://opnsense.ansibleguy.net/modules/interface.html)                                                     | stable   |\n| **Interfaces**            | ansibleguy.opnsense.interface_vxlan                                    | [Docs](https://opnsense.ansibleguy.net/modules/interface.html)                                                     | stable   |\n| **Interfaces**            | ansibleguy.opnsense.interface_vip                                      | [Docs](https://opnsense.ansibleguy.net/modules/interface.html)                                                     | stable   |\n| **Interfaces**            | ansibleguy.opnsense.interface_lagg                                     | [Docs](https://opnsense.ansibleguy.net/modules/interface.html)                                                     | unstable |\n| **Interfaces**            | ansibleguy.opnsense.interface_loopback                                 | [Docs](https://opnsense.ansibleguy.net/modules/interface.html)                                                     | unstable |\n| **NAT**                   | ansibleguy.opnsense.nat_source                                         | [Docs](https://opnsense.ansibleguy.net/modules/source_nat.html)                                                    | stable   |\n| **NAT**                   | ansibleguy.opnsense.nat_one_to_one                                     | [Docs](https://opnsense.ansibleguy.net/modules/one_to_one.html)                                                    | unstable |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_diagnostic                                     | [Docs](https://opnsense.ansibleguy.net/modules/frr_diagnostic.html)                                                | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_general                                        | [Docs](https://opnsense.ansibleguy.net/modules/frr_general.html)                                                   | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bfd_general                                    | [Docs](https://opnsense.ansibleguy.net/modules/frr_bfd.html#ansibleguy-opnsense-frr-bfd-general)                   | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bfd_neighbor                                   | [Docs](https://opnsense.ansibleguy.net/modules/frr_bfd.html#ansibleguy-opnsense-frr-bfd-neighbor)                  | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_general                                    | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-general)                   | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_neighbor                                   | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-neighbor)                  | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_prefix_list                                | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-prefix-list)               | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_route_map                                  | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-route-map)                 | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_community_list                             | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-community-list)            | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_bgp_as_path                                    | [Docs](https://opnsense.ansibleguy.net/modules/frr_bgp.html#ansibleguy-opnsense-frr-bgp-as-path)                   | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf_general                                   | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf-general)                 | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf_prefix_list                               | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf-prefix-list)             | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf_interface                                 | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf-interface)               | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf_network                                   | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf-network)                 | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf3_general                                  | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf3-general)                | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_ospf3_interface                                | [Docs](https://opnsense.ansibleguy.net/modules/frr_ospf.html#ansibleguy-opnsense-frr-ospf3-interface)              | stable   |\n| **Dynamic Routing**       | ansibleguy.opnsense.frr_rip                                            | [Docs](https://opnsense.ansibleguy.net/modules/frr_rip.html)                                                       | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_general                                       | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-general)                         | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_blocklist                                     | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-blocklist)                       | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_acl                                           | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-acl)                             | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_domain                                        | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-domain)                          | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_record                                        | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-record)                          | stable   |\n| **DNS**                   | ansibleguy.opnsense.bind_record_multi                                  | [Docs](https://opnsense.ansibleguy.net/modules/bind.html#ansibleguy-opnsense-bind-record-multi)                    | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_general                                   | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id2)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_cache                                     | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id3)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_parent                                    | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id4)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_traffic                                   | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id5)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_forward                                   | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id7)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_acl                                       | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id8)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_icap                                      | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id9)                                                  | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_auth                                      | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id10)                                                 | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_remote_acl                                | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id12)                                                 | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_pac_proxy                                 | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id14)                                                 | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_pac_match                                 | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id15)                                                 | stable   |\n| **Web Proxy**             | ansibleguy.opnsense.webproxy_pac_rule                                  | [Docs](https://opnsense.ansibleguy.net/modules/webproxy.html#id18)                                                 | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_action                                         | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id2)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_general                                        | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id3)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_ruleset                                        | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id4)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_rule                                           | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id5)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_user_rule                                      | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id6)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_policy                                         | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id7)                                                       | stable   |\n| **IDS/IPS**               | ansibleguy.opnsense.ids_policy_rule                                    | [Docs](https://opnsense.ansibleguy.net/modules/ids.html#id8)                                                       | stable   |\n| **OpenVPN**               | ansibleguy.opnsense.openvpn_client                                     | [Docs](https://opnsense.ansibleguy.net/modules/openvpn.html)                                                       | stable   |\n| **OpenVPN**               | ansibleguy.opnsense.openvpn_server                                     | [Docs](https://opnsense.ansibleguy.net/modules/openvpn.html)                                                       | stable   |\n| **OpenVPN**               | ansibleguy.opnsense.openvpn_static_key                                 | [Docs](https://opnsense.ansibleguy.net/modules/openvpn.html)                                                       | stable   |\n| **OpenVPN**               | ansibleguy.opnsense.openvpn_status                                     | [Docs](https://opnsense.ansibleguy.net/modules/openvpn.html)                                                       | stable   |\n| **OpenVPN**               | ansibleguy.opnsense.openvpn_client_override                            | [Docs](https://opnsense.ansibleguy.net/modules/openvpn.html)                                                       | stable   |\n| **Nginx**                 | ansibleguy.opnsense.nginx_general                                      | [Docs](https://opnsense.ansibleguy.net/modules/nginx.html#ansibleguy-opnsense-nginx-general)                       | unstable |\n| **Nginx**                 | ansibleguy.opnsense.nginx_upstream_server                              | [Docs](https://opnsense.ansibleguy.net/modules/nginx.html#ansibleguy-opnsense-nginx-upstream-server)               | unstable |\n| **DHCP Relay**            | ansibleguy.opnsense.dhcrelay                                           | [Docs](https://opnsense.ansibleguy.net/modules/dhcrelay_relay.html)                                                | unstable |\n| **DHCP Relay**            | ansibleguy.opnsense.dhcrelay_destination                               | [Docs](https://opnsense.ansibleguy.net/modules/dhcrelay_destination.html)                                          | unstable |\n| **DHCP**                  | ansibleguy.opnsense.dhcp_general                                       | [Docs](https://opnsense.ansibleguy.net/modules/dhcp.html)                                                          | unstable |\n| **DHCP Subnet**           | ansibleguy.opnsense.dhcp_subnet                                        | [Docs](https://opnsense.ansibleguy.net/modules/dhcp.html)                                                          | unstable |\n| **DHCP Reservation**      | ansibleguy.opnsense.dhcp_reservation                                   | [Docs](https://opnsense.ansibleguy.net/modules/dhcp.html)                                                          | unstable |\n| **DHCP Controlagent**     | ansibleguy.opnsense.dhcp_controlagent                                  | [Docs](https://opnsense.ansibleguy.net/modules/dhcp.html)                                                          | unstable |\n| **ACME (Certificates)**   | ansibleguy.opnsense.acme_account                                       | [Docs](https://opnsense.ansibleguy.net/modules/acmeclient.html)                                                    | unstable |\n| **ACME (Certificates)**   | ansibleguy.opnsense.acme_action                                        | [Docs](https://opnsense.ansibleguy.net/modules/acmeclient.html)                                                    | unstable |\n| **ACME (Certificates)**   | ansibleguy.opnsense.acme_general                                       | [Docs](https://opnsense.ansibleguy.net/modules/acmeclient.html)                                                    | unstable |\n| **ACME (Certificates)**   | ansibleguy.opnsense.acme_validation                                    | [Docs](https://opnsense.ansibleguy.net/modules/acmeclient.html)                                                    | unstable |\n| **ACME (Certificates)**   | ansibleguy.opnsense.acme_certificate                                   | [Docs](https://opnsense.ansibleguy.net/modules/acmeclient.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_general                                    | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_domain                                     | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_recipient                                  | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_recipientbcc                               | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_sender                                     | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_senderbcc                                  | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_sendercanonical                            | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_headercheck                                | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n| **Postfix**               | ansibleguy.opnsense.postfix_address                                    | [Docs](https://opnsense.ansibleguy.net/modules/postfix.html)                                                    | unstable |\n\n### Roadmap\n\nSee: [Feature Requests](https://github.com/ansibleguy/collection_opnsense/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansibleguy%2Fcollection_opnsense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansibleguy%2Fcollection_opnsense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansibleguy%2Fcollection_opnsense/lists"}