class profiles::puppetserver { # required for the git hook ensure_packages(['ruby']) file { '/usr/libexec': ensure => directory, } ensure_packages(['python3-yaml']) inifile::create_ini_settings( { common => { node_fmt => yaml, nodes => '/puppet/nodes.yaml', }, }, { path => '/etc/node-classifier.ini', } ) file { '/usr/libexec/external-node-classifier': mode => '0555', source => 'puppet:///modules/profiles/node-classifier.py', } class { 'puppet': server => true, server_foreman => false, server_reports => 'puppetdb', server_storeconfigs => true, server_git_repo => true, server_git_repo_path => '/var/lib/puppet.git', server_external_nodes => '/usr/libexec/external-node-classifier', server_strict_variables => true, } $hiera = { 'version' => 5, 'defaults' => { 'datadir' => '/puppet', 'data_hash' => 'yaml_data', }, 'hierarchy' => [ { 'name' => 'Secrets', 'path' => '/etc/secrets/data.yaml', }, { 'name' => 'local nodes', 'path' => 'nodes/%{trusted.certname}.yaml' } ] } file { "/etc/puppetlabs/puppet/hiera.yaml": ensure => file, content => hash2yaml($hiera, { 'header' => '# This file is managed by puppet', }), } }