summaryrefslogtreecommitdiff
path: root/share/hydractl/puppet-reset-master
blob: 99dd7ae7c562c594e3b41b31631950026a7f16fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/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
# <http://www.gnu.org/licenses/>.

# 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