04/02/21 Notes
Bash Provisioning of CentOS Stream 8 Vultur VMs (Puppet Master/Agent) & nftables Puppet module
Wrote boot scripts that can provision CentOS 8 Stream VMs that can be configured as a Puppet master or agent.
Able to now one touch build working Puppet Master/Agent pair on vultur.
Modified my existing Rsyslog class to fix a bug with selinux context.
Added an nftables profile that replaces firewalld and adds inbound/outbound rules. Sample below:
class profiles::nftables (
String $puppet_server_ip = '207.148.84.29',
String $rsyslog_server_ip = '139.180.164.58',
String $any_ip = '0.0.0.0/0',
) {
$nftables_inbound_defaults = {}
$nftables_rules_inbound = {
'default_in-puppet' => {
content => "ip saddr ${any_ip} tcp dport 8140 accept",
},
}
$nftables_outbound_defaults = {
'default_out-puppet' => {
content => "ip daddr ${puppet_server_ip} tcp dport 8140 accept",
},
'default_out-rsyslog' => {
content => "ip daddr ${rsyslog_server_ip} tcp dport 514 accept",
},
}
$nftables_rules_outbound = {}
$nftables_rules_real = $nftables_inbound_defaults + $nftables_rules_inbound + $nftables_outbound_defaults + $nftables_rules_outbound
class {'::nftables':
in_ssh => false,
in_icmp => false,
out_dns => true,
out_http => true,
out_https => true,
out_icmp => false,
out_ntp => true,
rules => $nftables_rules_real,
firewalld_enable => false,
}
}
All changes committed to my GitHub repo.