我在centos 7中用ansible向firewalld添加了一些规则。但我必须重新加载 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
最佳答案
首先使用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,它提到了here我们不能使用状态参数重新加载firewalld所以使用systemd模块如下:
- name: reload service firewalld
systemd:
name: firewalld
state: reloaded
关于ansible - 如何使用 Ansible 重新加载 Firewalld 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60487848/