hetzner.hcloud.firewall module – Create and manage firewalls on the Hetzner Cloud.
Note
This module is part of the hetzner.hcloud collection (version 2.5.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install hetzner.hcloud
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: hetzner.hcloud.firewall
.
Synopsis
Create, update and manage firewalls on the Hetzner Cloud.
Aliases: hcloud_firewall
Requirements
The below requirements are needed on the host that executes this module.
python-dateutil >= 2.7.5
requests >=2.20
Parameters
Parameter |
Comments |
---|---|
The API Endpoint for the Hetzner Cloud. You can also set this option by using the Default: |
|
The API Token for the Hetzner Cloud. You can also set this option by using the |
|
Force the deletion of the Firewall when still in use. Choices:
|
|
The ID of the Hetzner Cloud Firewall to manage. Only required if no firewall |
|
User-defined labels (key-value pairs). |
|
The Name of the Hetzner Cloud Firewall to manage. Only required if no firewall |
|
List of rules the firewall contain. |
|
User defined description of this rule. |
|
List of CIDRs that are allowed within this rule. Use 0.0.0.0/0 to allow all IPv4 addresses and ::/0 to allow all IPv6 addresses. Only used if Default: |
|
The direction of the firewall rule. Choices:
|
|
The port or port range allowed by this rule. A port range can be specified by separating two ports with a dash, e.g 1024-5000. Only used if |
|
The protocol of the firewall rule. Choices:
|
|
List of CIDRs that are allowed within this rule. Use 0.0.0.0/0 to allow all IPv4 addresses and ::/0 to allow all IPv6 addresses. Only used if Default: |
|
State of the firewall. Choices:
|
See Also
See also
- Documentation for Hetzner Cloud API
Complete reference for the Hetzner Cloud API.
Examples
- name: Create a basic firewall
hetzner.hcloud.firewall:
name: my-firewall
state: present
- name: Create a firewall with rules
hetzner.hcloud.firewall:
name: my-firewall
rules:
- description: allow icmp from everywhere
direction: in
protocol: icmp
source_ips:
- 0.0.0.0/0
- ::/0
state: present
- name: Create a firewall with labels
hetzner.hcloud.firewall:
name: my-firewall
labels:
key: value
mylabel: 123
state: present
- name: Ensure the firewall is absent (remove if needed)
hetzner.hcloud.firewall:
name: my-firewall
state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The firewall instance. Returned: always |
|
List of Resources the Firewall is applied to. Returned: always |
|
List of Resources the Firewall label selector is applied to. Returned: if |
|
ID of the Server. Returned: success Sample: |
|
Type of resource referenced. Returned: success Can only return:
Sample: |
|
Label selector value. Returned: success Sample: |
|
ID of the server. Returned: success Sample: |
|
Type of the resource. Returned: success Can only return:
Sample: |
|
Numeric identifier of the firewall. Returned: always Sample: |
|
User-defined labels (key-value pairs). Returned: always |
|
Name of the firewall. Returned: always Sample: |
|
List of rules the firewall contain. Returned: always |
|
User defined description of this rule. Returned: always Sample: |
|
List of destination CIDRs that are allowed within this rule. Returned: always Sample: |
|
The direction of the firewall rule. Returned: always Sample: |
|
The port or port range allowed by this rule. Returned: if Sample: |
|
The protocol of the firewall rule. Returned: always Sample: |
|
List of source CIDRs that are allowed within this rule. Returned: always Sample: |