CentOS
Ansible
firewalld

AnsibleでFirewalldモジュールを使うときの注意

More than 1 year has passed since last update.

追記:

Ansible version1.9より、firewalldモジュールにimmediateパラメータが追加され、よりわかりやすく記述できるようになりました。


tasks/firewalld.yml

- firewalld: zone=public service=http state=enabled permanent=true immediate=yes

tags: firewalld

これでランタイムと永続化が同時に出来るようです。便利!


↓ Ansible version1.9以前のお話

CentOS7向けのAnsible Playbookを作るときにハマったのでメモ。

Ansible Fireawlld Module

http://docs.ansible.com/firewalld_module.html

Ansibleのドキュメントを見ると、全てのサンプルがpermanent=trueになっているので、じゃあ、ってその通りやるとランタイムで入らない。(永続化の設定しか入らない)


tasks/firewalld.yml

- firewalld: zone=public service=http state=enabled permanent=true

tags: firewalld


永続化オプションはランタイムに直接影響しません。これらのオプションはリロードあるいは再起動後にのみ利用可能になります。ランタイムかつ永続的な設定をするには、両方を指定する必要があります。 --permanentオプションは全ての永続的引数の最初に無ければなりません。

https://fedoraproject.org/wiki/FirewallD/jp


ランタイムでFirewalldを変更する場合は、permanent=falseにする必要がある。


tasks/firewalld.yml

- firewalld: zone=public service=http state=enabled permanent=false

tags: firewalld