Skip to content
Snippets Groups Projects
Commit 8d4759bf authored by drebs's avatar drebs
Browse files

Dinamically allow Puppet Agents to connect to the Puppet Server

parent 0ce22bb3
No related branches found
No related tags found
1 merge request!19Firewall
Pipeline #63779 passed
......@@ -2,8 +2,13 @@
class profile::puppet::agent (
String $server = 'puppet',
Optional[String] $server_ip = undef,
Stdlib::IP::Address::V4::Nosubnet $ip = lookup('profile::tinc::ip', String, 'first', $facts['networking']['ip']),
) {
class { 'profile::puppet::agent::firewall':
ip => $ip,
}
file { [
'/opt',
'/opt/puppetlabs',
......
# A Puppet Agent's firewall
class profile::puppet::agent::firewall (
Stdlib::IP::Address::V4::Nosubnet $ip = lookup('profile::tinc::ip', String, 'first', $facts['networking']['ip']),
) {
$tag_environment = "environment:${::environment}"
# Export a rule so the server allows us to connect to it
@@firewall { "100 accept TCP on Puppet Server port from ${::fqdn}":
proto => 'tcp',
source => $ip,
action => 'accept',
tag => [ 'puppet_agent', $tag_environment ],
}
}
# Run a Puppet Server supported by Gitolite
class profile::puppet::server (
String $server = 'puppet',
String $server_ip = '127.0.0.1',
Stdlib::IP::Address::V4::Nosubnet $server_ip = '127.0.0.1',
Integer $server_port = 8140,
Hash $trusted_keys = {},
) {
......
# Firewall rules for a Puppet Server
class profile::puppet::server::firewall (
String $server_ip = '0.0.0.0',
Stdlib::IP::Address::V4::Nosubnet $server_ip = '0.0.0.0',
Integer $server_port = 8140,
) {
if $server_ip != '0.0.0.0' {
firewall { '100 accept TCP on Puppet Server port':
proto => 'tcp',
$tag_environment = "environment:${::environment}"
Firewall {
destination => $server_ip,
dport => $server_port,
action => 'accept',
}
}
# Allow Puppet Agents to connect to our Puppet Server port
Firewall <<| tag == 'puppet_agent' and tag == $tag_environment |>>
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment