Role Name ========= This role configures firewalld. Requirements ------------ The role handles overlay configuration merged from inventory/group_vars/firewalld.yml. To merge configurations there is a dependency on the merge_vars role to facilitate deep merging of dictionaries with nested lists, the merge vars role depends on 3rd party plugin ansible_merge_vars. Role Variables -------------- This role accepts custom configuration from inventory/group_vars/firewalld.yml. As the role creates dynamic firewall rulesets read the comments in the following files to understand the behaviour. - firewalld/defaults/main.yml - inventory/group_vars/firewalld.yml (as listed below) An example of custom rulesets injected at inventory/group_vars/firewalld.yml follows: ```yml # This is an example to demonstrate # - behaviour of the role # - how to add overlay/merged custom configuration items to group_vars inventory/group_vars/firewalld.xml firewalld: enable: true # create new ruleset # - each xcat_network with a corresponding entry in inventroy/networks.yml will have an ipset automatically generated # - each service with an xcat_network entry will assign the service to a zone of that name, the zone accepts ingress from the corresponding ipset # - xcat_groups will assign the ruleset to hosts in groups # # this ruleset applies inbound ftp to cluster and infiniband zones on hosts in groups all/compute/slurm/ansible firewalld_services: - name: ftp short: "FTP" description: "FTP service" port: - port: 21 protocol: tcp xcat_groups: - compute - all - slurm - ansible xcat_networks: - cluster - infiniband # create new ruleset with a custom zone # - the xcat_networks entry zabbix is not present in inventory/networks.yml, a new zone zabbix will be created # - the zone requires an ipset named zabbix to add an ingress source - name: zabbix short: "Zabbix" description: "Zabbix Ports" port: - port: 10050 protocol: tcp - port: 10051 protocol: tcp xcat_groups: - all xcat_networks: - zabbix # create new ipset # - this ipset is for the corresponding auto-generated zabbix zone required by the zabbix service(ruleset) firewalld_ipsets: zabbix: short: zabbix description: zabbix ipset type: 'hash:ip' targets: - 172.22.1.220/32 # - 172.22.1.0/24 # - 10.0.10.0/16 # create new zone # - this zone example has an embedded ruleset to allow ANY inbound from IP range, no service or ipset is required firewalld_zones: - name: mgt short: "MGT" description: "management host" target: "ACCEPT" source: - address: 172.22.1.220/32 # network <-> network allow all rule # - ipset cluster has a corresponding inventory/group_vars/network.yml entry and is thus auto generated and populated with source address range # - ipsets can only be bound to a single zone, to use this format of rule, any service with a 'cluster' entry in 'xcat_networks:' list requires 'cluster' to be removed. # # - name: cluster2cluster # short: "cluster2cluster" # description: "allow ingress from cluster network" # target: "ACCEPT" # source: # - ipset: cluster ``` License ------- BSD Author Information ------------------ An optional section for the role authors to include contact information, or a website (HTML is not allowed).