nl2go.hetzner_firewall

Travis (.org) branch Codecov Ansible Galaxy GitHub tag (latest by date) Ansible Galaxy Downloads

Rol de Ansible: Firewall de Hetzner

Una Rol de Ansible que gestiona el Firewall de Robot de Hetzner.

Requisitos Previos

Requisitos

Nombre Tipo Versión Ubicación
ansible-filter Paquete de Python 1.0.1 Nodo de control

Variables de Rol

Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

hetzner_firewall_webservice_base_url: https://robot-ws.your-server.de

URL base que apunta a la API de Robot de Hetzner. Esta variable se utiliza principalmente para pruebas, no es necesario cambiar el valor predeterminado.

hetzner_firewall_webservice_username: robot

Nombre de usuario para el servicio web. Puede ser configurado/cambiado como se describe en la sección Cambiar Datos de Acceso (Wiki de Hetzner).

hetzner_firewall_webservice_password: secret

Contraseña del servicio web. Puede ser configurada/cambiada como se describe en la sección Cambiar Datos de Acceso (Wiki de Hetzner).

hetzner_firewall_templates:
  - name: New Template
    whitelist_hos: true
    is_default: false
    rules:
      input:
        - action: accept
          ip_version: ipv4
          name: Allow all

Se pueden gestionar múltiples plantillas de firewall usando la variable hetzner_firewall_templates. Una plantilla de firewall se identifica por el atributo name. El nombre debe ser único para evitar colisiones o comportamientos inesperados. El atributo state para una plantilla tiene un valor predeterminado de present.

hetzner_firewall_templates:
  - name: New Template
    state: absent

Para asegurarse de que la plantilla se elimine, agregue state: absent. El atributo name sigue siendo obligatorio para identificar el estado de origen.

hetzner_firewall_host:
    name: New Template

El firewall del host se puede gestionar haciendo referencia a una plantilla de firewall existente de la lista hetzner_firewall_templates. La variable hetzner_firewall_host puede definirse para un grupo de hosts particular o un host dedicado. Si hetzner_firewall_host no se define, el firewall del host o del grupo de hosts relacionado será ignorado por la rol.

hetzner_firewall_host:
    absent: true

Para eliminar la configuración del firewall para un host particular, agregue state: absent a la configuración del firewall del host. Los parámetros de configuración adicionales no tendrán efecto cuando se proporcione state: absent.

hetzner_firewall_host:
    status: disabled

Para deshabilitar la configuración del firewall para un host particular, agregue status: disabled a la configuración del firewall del host. Los parámetros de configuración adicionales no tendrán efecto cuando se proporcione state: disabled.

hetzner_firewall_webservice_concurrent_requests: 1
hetzner_firewall_webservice_concurrent_poll: 1

Para acelerar la ejecución de la rol al manejar la configuración del firewall para una gran cantidad de hosts, el número de solicitudes paralelas enviadas a la API de Robot de Hetzner puede controlarse mediante la variable hetzner_firewall_webservice_concurrent_requests. El intervalo de sondeo para el procesamiento de los resultados de solicitudes asíncronas se establece mediante hetzner_firewall_webservice_concurrent_poll. Consulte la documentación oficial sobre Acciones Asíncronas y Sondeo para más explicaciones.

Etiquetas

Las etiquetas se pueden usar para limitar la ejecución de la rol a una tarea particular. Las siguientes etiquetas están disponibles:

  • hetzner_firewall,config: Cubre todo el ciclo de vida de la rol.
  • hetzner_firewall_template: Gestiona plantillas de firewall.
  • hetzner_firewall_host: Gestiona el firewall de hosts.

Dependencias

Ninguna.

Ejemplo de Playbook

- hosts: all
  roles:
     - nl2go.hetzner_firewall
     

Ejemplo de Configuración

hetzner_firewall_templates:
  - name: Real World Template
    whitelist_hos: true
    is_default: true
    rules:
      input:
        - name: Allow ICMP
          action: accept
          ip_version: ipv4
          protocol: icmp
        - name: Allow TCP based downloads
          action: accept
          ip_version: ipv4
          protocol: tcp
          dst_port: 32768-65535
          tcp_flags: syn
        - name: Allow UDP based downloads
          action: accept
          ip_version: ipv4
          protocol: tcp
          dst_port: 32768-65535
        - name: Allow SSH Office IP
          action: accept
          ip_version: ipv4
          protocol: tcp
          src_ip: 1.1.1.1/32
          dst_port: '22'
        - name: Allow private range 1
          action: accept
          ip_version: ipv4
          src_ip: 10.0.0.0/8
          

Desarrollo

Use docker-molecule siguiendo las instrucciones para ejecutar Molecule o instale Molecule localmente (no se recomienda, pueden aparecer conflictos de versiones).

Use lo siguiente para ejecutar pruebas:

molecule test --all
   

Esta rol depende de hetzner-robot-api-mock para simular interacciones con la API de Robot de Hetzner.

Mantenedores

Licencia

Consulte el archivo LICENSE.md para obtener detalles.

Información del Autor

Esta rol fue creada en 2019 por Newsletter2Go GmbH.

Acerca del proyecto

Manage Hetzner Robot Firewall (https://wiki.hetzner.de/index.php/Robot_Firewall/en) using Ansible.

Instalar
ansible-galaxy install nl2go.hetzner_firewall
Licencia
mit
Descargas
5.6k
Propietario