Ali*_*Ali 6 daemon centos ansible firewalld
我使用 ansible 在 centos 7 中向 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
Run Code Online (Sandbox Code Playgroud)
首先使用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
Run Code Online (Sandbox Code Playgroud)
如果端口不固定,您还可以使用以下代码输入端口并将其用作变量:
- 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(',') }}"
Run Code Online (Sandbox Code Playgroud)
关于重新加载firewalld,这里提到我们不能使用状态参数重新加载firewalld 所以使用systemd模块如下:
- name: reload service firewalld
systemd:
name: firewalld
state: reloaded
Run Code Online (Sandbox Code Playgroud)
小智 5
firewalld 模块具有立即选项,它在 firewall-cmd cli 工具中执行相同的重新加载。
- name: Add port to firewalld
firewalld:
port: "{{ item }}"
permanent: yes
state: enabled
immediate: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11377 次 |
| 最近记录: |