git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hieradata/common.yaml5
-rw-r--r--hieradata/nodes/example-puppet-master.yaml4
-rw-r--r--site/profile/files/puppetmaster/update-classes.sh11
-rw-r--r--site/profile/manifests/puppetmaster.pp16
4 files changed, 36 insertions, 0 deletions
diff --git a/hieradata/common.yaml b/hieradata/common.yaml
index 07fbd80..f3fb25a 100644
--- a/hieradata/common.yaml
+++ b/hieradata/common.yaml
@@ -3,3 +3,8 @@ message: "This node is using common data"
#Puppet Server Tuning
puppet_enterprise::master::puppetserver::jruby_max_requests_per_instance: 10000
+
+#pe-console-services tuning
+#https://docs.puppetlabs.com/pe/latest/console_config.html#tuning-the-classifier-synchronization-period
+#disable classifier scheduled sync and rely on r10k postrun command to sync the classes
+puppet_enterprise::profile::consolei::classifier_synchronization_period: 0
diff --git a/hieradata/nodes/example-puppet-master.yaml b/hieradata/nodes/example-puppet-master.yaml
index 677e10d..584faac 100644
--- a/hieradata/nodes/example-puppet-master.yaml
+++ b/hieradata/nodes/example-puppet-master.yaml
@@ -2,3 +2,7 @@
git_management_system: 'gitlab'
gms_server_url: 'https://gitlab-server'
gms_api_token: 'BDkZfWWnk4LVTLHdAywd'
+
+#setup r10k to update classes in the console after code deploy
+pe_r10k::postrun:
+ - '/usr/local/bin/update-classes.sh'
diff --git a/site/profile/files/puppetmaster/update-classes.sh b/site/profile/files/puppetmaster/update-classes.sh
new file mode 100644
index 0000000..dea10a9
--- /dev/null
+++ b/site/profile/files/puppetmaster/update-classes.sh
@@ -0,0 +1,11 @@
+#https://docs.puppetlabs.com/pe/latest/nc_update_classes.html#post-v1update-classes
+
+CONFDIR=$(puppet master --configprint confdir)
+
+CERT=$(puppet master --confdir ${CONFDIR} --configprint hostcert)
+CACERT=$(puppet master --confdir ${CONFDIR} --configprint localcacert)
+PRVKEY=$(puppet master --confdir ${CONFDIR} --configprint hostprivkey)
+OPTIONS="--cert ${CERT} --cacert ${CACERT} --key ${PRVKEY}"
+CONSOLE=$(awk '/server =/{print $NF}' ${CONFDIR}/console.conf)
+
+curl -k -X POST ${OPTIONS} "https://${CONSOLE}:4433/classifier-api/v1/update-classes"
diff --git a/site/profile/manifests/puppetmaster.pp b/site/profile/manifests/puppetmaster.pp
index bc52d3b..687b957 100644
--- a/site/profile/manifests/puppetmaster.pp
+++ b/site/profile/manifests/puppetmaster.pp
@@ -48,4 +48,20 @@ class profile::puppetmaster {
}
#END - Add deploy key and webhook to git management system
+ #Lay down update-classes.sh for use in r10k postrun_command
+ #This is configured via the pe_r10k::postrun key in hiera
+ file { '/usr/local/bin/update-classes.sh' :
+ ensure => file,
+ source => 'puppet::///modules/profile/puppetmaster/update-classes.sh',
+ }
+
+ #https://docs.puppetlabs.com/puppet/latest/reference/config_file_environment.html#environmenttimeout
+ ini_setting { "environment_timeout = unlimited":
+ ensure => present,
+ path => '/etc/puppetlabs/puppet/puppet.conf',
+ section => 'main',
+ setting => 'environment_timeout',
+ value => 'unlimited',
+ }
+
}