ansible.posix.firewalld
在 RHEL 裡要設定防火牆,主要是使用 firewall-cmd 這個指令,在 Ansible 對應的模組是 ansible.posix.firewalld。
若熟悉 firewall-cmd 用法,對於使用這模組會很容易入手。
以下就幾個常用的用法做說明。
在防火牆開通 HTTP 服務,或者是開通 8081 port,然後在開通後立即更新防火牆狀態。
- name: permit traffic in default zone for https service
ansible.posix.firewalld:
service: https
permanent: yes
state: enabled
immediate: yes
- name: permit traffic in default zone on port 8081/tcp
ansible.posix.firewalld:
port: 8081/tcp
permanent: yes
state: enabled
immediate: yes
以上的 playbook 對應到實際的指令如下
firewall-cmd --add-service https --permanent
firewall-cmd --reload
firewall-cmd --add-port "8081/tcp" --permanent
firewall-cmd --reload
那要關閉指定的 port 該怎麼做呢?跟上面開通的用法很相近,差異在於把 state 改為 disabled
- name: do not permit traffic in default zone on port 8081/tcp
ansible.posix.firewalld:
port: 8081/tcp
permanent: yes
state: disabled
immediate: yes
以上的 playbook 對應的實際的指令如下
firewall-cmd --remove-port="8081/tcp" --permanent
firewall-cmd --reload
那也可以針對 zone 來設定,或者是設定規則跟 port forwarding 等等,這邊因為這些不常用到,就先略過,等之後有遇到特殊用法,再來介紹。