---
- name: Ensure UFW is installed
  become: true
  apt:
    name: ufw
    state: present

- name: Allow port 5240
  become: true
  ufw:
    comment: Allow MAAS communications
    rule: allow
    name: "MAAS"
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"

- name: Allow port 5248
  become: true
  ufw:
    comment: Required for MAAS
    rule: allow
    port: "5240"
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"

- name: Allow ports 5241-5247 (TCP)
  become: true
  ufw:
    comment: Required for MAAS
    rule: allow
    port: 5241:5247
    proto: tcp
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"

- name: Allow ports 5241-5247 (UDP)
  become: true
  ufw:
    comment: Required for MAAS
    rule: allow
    port: 5241:5247
    proto: udp
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"

- name: Allow ports 5250-5270 (TCP)
  become: true
  ufw:
    comment: Required for MAAS
    rule: allow
    port: 5250:5270
    proto: tcp
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"

- name: Allow ports 5250-5270 (UDP)
  become: true
  ufw:
    comment: Required for MAAS
    rule: allow
    port: 5250:5270
    proto: udp
    src: "{{ item }}"
  loop: "{{ maas_managed_ips }}"
