Как перезагрузить сервис Firewalld, используя Ansible? - PullRequest
1 голос
/ 02 марта 2020

Я добавил какое-то правило в firewalld в centos 7 с ansible. Но я должен перезагрузить демон firewalld, таким образом, сервис работает правильно. Есть какая-нибудь идея?

Вот мой ansible код:

- 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

Ответы [ 2 ]

2 голосов
/ 02 марта 2020

Прежде всего используйте 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
0 голосов
/ 02 марта 2020

Вы можете использовать сервисный или системный модуль.

#Supports init systems include BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart.
- name: Restart service 
  service:
    name: firewalld
    state: restarted

#Controls systemd services on remote hosts.
- name: Restart service 
  systemd:
    state: restarted
    daemon_reload: yes
    name: firewalld

...