Using firewalld puppet module with multiple unrelated services

Robin Bowes robin.bowes at yo61.com
Wed Feb 18 19:28:04 UTC 2015


Hi,

Suppose I have a set of profiles, each delivering a specific service to a
node. For example:

profile_lms - installs Logitech Media Server
profile_plex - installed plex

Each service requires a different set of ports to be opened on the node
firewall.

How can I make it so that adding a profile to a node results in any
firewalld::services defined in that profile being added to the same zone on
the node?

So, suppose profile_lms looks like this:

class profile_lms{
  firewalld::service{'lms':
    description => 'Logitech Media Server',
    ports       => [
      # Logitech Media Server
      { port => '9000', protocol => 'tcp' },
      { port => '3483', protocol => 'tcp' },
      { port => '3483', protocol => 'udp' },
      # LMS Spotify plugin
      { port => '9005', protocol => 'tcp' },
    ],
  }
}

and profile_plex looks like this:

class profile_plex{
  firewalld::service{'lms':
    description => 'PLEX',
    ports       => [
      { port => '32400', protocol => 'tcp' },
    ],
  }
}

And on the node in question, I include those nodes like this:

node 'media_server' {
  include ::profile_lms
  include ::profile_plex
}

I need to define the public zone, using something like:

  firewalld::zone { 'public':
    services => ['dhcpv6-client', 'ssh', 'lms', 'plex'],
  }

Is there someway to "collect" all the services defined in the various
profiles and add them to the public zone? Or do I need to do this somewhat
differently and, say, define a new zone for each service?

R.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/firewalld-users/attachments/20150218/85d30408/attachment.html>


More information about the firewalld-users mailing list