#!/bin/bash # # Reset puppet master and start over again. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # . # Stop agent /etc/init.d/puppet stop # Stop master if [ -e "/etc/init.d/puppetmaster" ]; then /etc/init.d/puppetmaster stop /etc/init.d/nginx stop else /etc/init.d/apache2 stop fi # Reset configuration hydractl puppet-reset-stored rm -rf /var/lib/puppetmaster/ssl # Generate new certificate # See http://blkperl.github.io/replace-puppet-ca.html # http://docs.puppetlabs.com/puppet/latest/reference/ssl_regenerate_certificates.html puppet cert --generate puppet.`facter domain` hydractl puppet-finger # Get fresh config rm -rf /etc/puppet/ && git clone /var/git/repositories/puppet.git/ /etc/puppet ( cd /etc/puppet/ && git submodule update --init ) chown -R puppet.puppet /etc/puppet/ # Start master if [ -e "/etc/init.d/puppetmaster" ]; then /etc/init.d/puppetmaster start sleep 5 /etc/init.d/nginx start else /etc/init.d/apache2 start fi