Прежде всего используйте with_items
для списка портов, как показано ниже:
- name: Add port to firewalld
firewalld:
port: "{{ item }}"
permanent: yes
state: enabled
when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
loop:
- 8080/tcp
- 8000/tcp
- 8090/tcp
- 8040/tcp
Вы также можете использовать приведенный ниже код для ввода портов, если они не являются фиксированными, и использовать его в качестве переменной:
- hosts: localhost
gather_facts: no
vars_prompt:
- name: ports
prompt: "Enter port(s) number"
private: no
tasks:
- name: add port
firewalld:
service: "{{ item }}"
permanent: yes
immediate: yes
state: enabled
with_items: "{{ ports.split(',') }}"
и в отношении перезагрузки firewalld упомянутые здесь здесь мы не можем перезагрузить firewalld с помощью параметра состояния. Поэтому используйте модуль systemd, как показано ниже:
- name: reload service firewalld
systemd:
name: firewalld
state: reloaded