web-dev-qa-db-ja.com

Firewalldモジュールで複数のサービスを一度に有効にする方法-Ansible

Firewalldモジュールで複数のサービスを一度に有効にする方法は?私はansible-playbookを実行した後に1つのサービス(https)を有効にするこのコードを使用しています。ただし、このコードで1つだけ(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)"}
4
John Zizka

firewalld パラメータserviceは文字列です。 loop を使用して、サービスのリストを反復します。例えば

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