## cd_nagios::certbot::config.pp # Module name: cd_nagios # Author: Arne Teuke (arne_teuke@ConfDroid.com) # # License: # This file is part of cd_nagios. # # cd_nagios is used for providing automatic configuration of Nagios # Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # @summary Class manages all configuration files required for cd_nagios. ############################################################################## class cd_nagios::certbot::config ( ) inherits cd_nagios::params { if $::fqdn == $ng_nagios_server { if $ng_use_https == true { if $ng_enable_certbot == true { require cd_certbot # ensure there is no forward vhost file exec { 'remove_forward_vhost': command => "rm -Rf ${ng_forward_conf}", creates => '/etc/httpd/conf.d/.cert_created', } exec { 'remove_nagios_conf': command => "rm -Rf ${ng_nagios_conf}", creates => '/etc/httpd/conf.d/.cert_created', require => Exec['remove_forward_vhost'], } # create temp vhost file exec { 'create_temp_vhost': command => template('cd_nagios/certbot/create_tempfile.erb'), cwd => '/tmp', path => ['/bin','/usr/bin'], provider => 'shell', creates => '/etc/httpd/conf.d/.created', notify => Service['httpd'], require => Exec['remove_nagios_conf'], } # create cert exec { 'create_cert': command => template($ng_get_cert_erb), cwd => '/tmp', path => ['/bin','/usr/bin'], provider => 'shell', unless => template('cd_nagios/certbot/unless_get_cert.erb'), notify => Service['httpd'], creates => '/etc/httpd/conf.d/.cert_created', require => Exec['create_temp_vhost'], } # remove temp_vhost exec { 'remove_temp_vhost': command => "rm -Rf ${ng_certbot_temp_file}", cwd => '/tmp', path => ['/bin','/usr/bin'], provider => 'shell', notify => Service['httpd'], require => Exec['create_cert'], creates => "/etc/letsencrypt/live/${ng_nagios_server}/cert.pem", } # renew certs exec { 'renew_cert': command => 'certbot renew', cwd => '/tmp', path => ['/bin','/usr/bin','/opt/'], provider => 'shell', notify => Service['httpd'], unless => template($ng_unless_renew_erb), } } } else { # do nothing as we are not using https and certbot is not required then } } }