|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- # == State: firewalld.ipsets
- #
- # This state ensures that /etc/firewalld/ipsets/ exists.
- #
- {% from "firewalld/map.jinja" import firewalld with context %}
-
- # Backward compatibility setting and deprecation notices
- {% set ipset_manage = false %}
- {% set ipset_pkg = 'ipset' %}
- {% set ipset_sets = firewalld.ipsets %}
-
- {% if firewalld.ipset is mapping %}
- {% set ipset_manage = firewalld.ipset.manage %}
- {% set ipset_pkg = firewalld.ipset.pkg %}
- {% else %}
- ### Manage setting (old firewalld:ipset)
- firewalld-ipset-deprecated:
- test.show_notification:
- - text: |
- 'firewalld:ipset' format has changed and setting it as boolean is deprecated.
- Set 'firewalld:ipset:manage' instead.
- See firewalld/pillar.example for more information
-
- {% set ipset_manage = firewalld.ipset %}
- {% endif %}
-
- ### Package setting (old firewalld:ipsetpackage)
- {% if firewalld.ipsetpackage is defined %}
- firewalld-ipsetpackage-deprecated:
- test.show_notification:
- - text: |
- 'firewalld:ipsetpackage' is deprecated. Use 'firewalld:ipset:pkg' instead
- See firewalld/pillar.example for more information
-
- {% set ipset_pkg = firewalld.ipsetpackage %}
- {% endif %}
-
- {%- if ipset_manage %}
- package_ipset:
- pkg.installed:
- - name: {{ ipset_pkg }}
-
- directory_firewalld_ipsets:
- file.directory: # make sure this is a directory
- - name: /etc/firewalld/ipsets
- - user: root
- - group: root
- - mode: 750
- - require:
- - pkg: package_firewalld # make sure package is installed
- - require_in:
- - service: service_firewalld
- - watch_in:
- - cmd: reload_firewalld # reload firewalld config
-
- # == Define: firewalld.ipsets
- #
- # This defines a ipset configuration, see firewalld.ipset (5) man page.
- #
- {% for k, v in ipset_sets.items() %}
- {% set z_name = v.name|default(k) %}
-
- /etc/firewalld/ipsets/{{ z_name }}.xml:
- file.managed:
- - name: /etc/firewalld/ipsets/{{ z_name }}.xml
- - user: root
- - group: root
- - mode: 644
- - source: salt://firewalld/files/ipset.xml
- - template: jinja
- - require:
- - pkg: package_firewalld # make sure package is installed
- - file: directory_firewalld_ipsets
- - require_in:
- - service: service_firewalld
- - watch_in:
- - cmd: reload_firewalld # reload firewalld config
- - context:
- name: {{ z_name }}
- ipset: {{ v|json }}
-
- {% endfor %}
- {%- endif %}
|