Firewalld 모듈을 사용하여 여러 서비스를 동시에 활성화하는 방법 - Ansible

Firewalld 모듈을 사용하여 여러 서비스를 동시에 활성화하는 방법 - Ansible

방화벽 모듈을 사용하여 동시에 여러 서비스를 활성화하는 방법은 무엇입니까? ansible-playbook을 실행한 후 서비스(https)를 활성화하는 이 코드를 사용하고 있습니다. 그것은 아주 잘 작동합니다. 그러나 이 코드에서 하나의 서비스(https) 대신 여러 서비스를 활성화하는 방법을 모르겠습니다.

- name: firewalld configuration
  firewalld:
    zone: public
    service: https
    permanent: yes
    state: enabled
  notify: reload firewalld

여러 패키지(아래 참조)를 설치하는 데 사용한 것과 동일한 방법을 시도했지만 성공하지 못했습니다. 답변이 잘못되었습니다(아래 참조).

- name: firewalld configuration
  firewalld:
    zone: public
    service:
      name:
        - https
        - http
    permanent: yes
    state: enabled
  notify: reload firewalld

실수:

fatal: [192.168.0.101]: FAILED! => {"changed": false, "msg": "ERROR: Exception caught: org.fedoraproject.FirewallD1.Exception: INVALID_SERVICE: '{'name': ['https', 'http']}' not among existing services Permanent operation, Services are defined by port/tcp relationship and named as they are in /etc/services (on most systems)"}

답변1

방화벽매개변수 service는 문자열입니다. 사용반지서비스 목록을 반복합니다. 예를 들어

- name: firewalld configuration
  firewalld:
    zone: public
    service: "{{ item }}"
    permanent: yes
    state: enable
  notify: reload firewalld
  loop:
    - https
    - http

관련 정보