@ -1259,7 +1259,7 @@ if [ -n "$PUPPET" ] ; then
cat >> /etc/debootstrap/packages << EOF
# for interal use at sipwise
openssh-server
puppet
puppet-agent
EOF
fi
@ -1288,6 +1288,12 @@ deb ${SEC_MIRROR} ${DEBIAN_RELEASE}-security main contrib non-free
deb ${ MIRROR } ${ DEBIAN_RELEASE } -updates main contrib non-free
EOF
if [ -n " $PUPPET " ] ; then
cat >> /etc/debootstrap/etc/apt/sources.list << EOF
deb ${ SIPWISE_REPO_TRANSPORT } ://${ DEBIAN_REPO_HOST } /puppetlabs-${ DEBIAN_RELEASE } / ${ DEBIAN_RELEASE } main PC1 dependencies
EOF
fi
# GRUB versions until Debian/wheezy generate an invalid device.map
# entry if /dev/disk/by-id/lvm-pv-uuid-* is present, resulting in
# a GRUB installation failing with "error: no such disk" during boot.
@ -2132,11 +2138,21 @@ puppet_install_from_git () {
die "ERROR: Cannot clone git repository, see the error above, cannot continue!"
fi
echo " Deploying Puppet config from Git repository to ${ TARGET } /etc/puppet/ "
cp -a " ${ PUPPET_LOCAL_GIT } /manifests " " ${ TARGET } /etc/puppet/ "
cp -a " ${ PUPPET_LOCAL_GIT } /modules " " ${ TARGET } /etc/puppet/ "
local PUPPET_CODE_PATH
PUPPET_CODE_PATH = "/tmp/puppet/"
echo " Deploying Puppet config from Git repository to ${ TARGET } / ${ PUPPET_CODE_PATH } "
mkdir -m 0755 -p " ${ TARGET } / ${ PUPPET_CODE_PATH } "
cp -a " ${ PUPPET_LOCAL_GIT } /manifests " " ${ TARGET } / ${ PUPPET_CODE_PATH } "
cp -a " ${ PUPPET_LOCAL_GIT } /modules " " ${ TARGET } / ${ PUPPET_CODE_PATH } "
rm -rf " ${ PUPPET_LOCAL_GIT } "
local PUPPET_TMP_ENV
PUPPET_TMP_ENV = " ${ TARGET } /etc/puppetlabs/code/environments/ ${ PUPPET } "
echo " Creating empty Puppet environment ' ${ PUPPET_TMP_ENV } ' "
mkdir -m 0755 -p " ${ PUPPET_TMP_ENV } "
case " ${ PUPPET_RESCUE_DRIVE } " in
auto)
echo " Searching for Hiera rescue device by label ' ${ PUPPET_RESCUE_LABEL } '... "
@ -2156,8 +2172,8 @@ puppet_install_from_git () {
echo " Copying data from device ' ${ PUPPET_RESCUE_DRIVE } ' (mounted into ' ${ PUPPET_RESCUE_PATH } ', type ' ${ device_type } ') "
mkdir -p " ${ PUPPET_RESCUE_PATH } "
mount -t " ${ device_type } " -o ro " ${ PUPPET_RESCUE_DRIVE } " " ${ PUPPET_RESCUE_PATH } "
mkdir -m 0700 -p " ${ TARGET } /etc/puppet /hieradata/"
cp -a " ${ PUPPET_RESCUE_PATH } " /hieradata/* " ${ TARGET } /etc/puppet /hieradata/"
mkdir -m 0700 -p " ${ TARGET } /etc/puppet labs/code /hieradata/"
cp -a " ${ PUPPET_RESCUE_PATH } " /hieradata/* " ${ TARGET } /etc/puppet labs/code /hieradata/"
umount -f " ${ PUPPET_RESCUE_PATH } "
rmdir " ${ PUPPET_RESCUE_PATH } "
; ;
@ -2169,50 +2185,30 @@ puppet_install_from_git () {
; ;
esac
case " ${ DEBIAN_RELEASE } " in
jessie| stretch)
echo " Supported Debian release ${ DEBIAN_RELEASE } detected, continue... "
if " ${ PUPPET_INIT_HIERA } " ; then
echo "Initializing Hiera config..."
grml-chroot $TARGET puppet apply --test -e "include puppet::hiera" 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
fi
grml-chroot $TARGET puppet apply --test --tags core /etc/puppet/manifests/site.pp 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
if [ -f " ${ TARGET } /etc/profile.d/puppet-agent.sh " ] ; then
echo "Exporting Puppet 4 new PATH (otherwise /opt/puppetlabs/bin/puppet is not found)"
source " ${ TARGET } /etc/profile.d/puppet-agent.sh "
fi
grml-chroot $TARGET puppet apply --test /etc/puppet/manifests/site.pp 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
; ;
*)
die " ERROR: Unsupported Debian release ${ DEBIAN_RELEASE } detected, cannot continue! "
; ;
esac
if " ${ PUPPET_INIT_HIERA } " ; then
echo "Initializing Hiera config..."
grml-chroot $TARGET puppet apply --test --modulepath= " ${ PUPPET_CODE_PATH } /modules " \
-e "include puppet::hiera" 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
fi
grml-chroot $TARGET puppet apply --test --modulepath= " ${ PUPPET_CODE_PATH } /modules " --tags core \
" ${ PUPPET_CODE_PATH } /manifests/site.pp " 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
grml-chroot $TARGET puppet apply --test --modulepath= " ${ PUPPET_CODE_PATH } /modules " \
" ${ PUPPET_CODE_PATH } /manifests/site.pp " 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
rm -rf " ${ TARGET } / ${ PUPPET_CODE_PATH } "
}
puppet_install_from_puppet ( ) {
case " ${ DEBIAN_RELEASE } " in
squeeze| wheezy)
echo " Supported Debian release ${ DEBIAN_RELEASE } detected, continue... "
chroot $TARGET sed -i 's/START=.*/START=yes/' /etc/default/puppet
grml-chroot $TARGET puppet agent --test --waitforcert 30 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
; ;
jessie| stretch)
echo " Supported Debian release ${ DEBIAN_RELEASE } detected, continue... "
grml-chroot $TARGET puppet agent --enable 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "0"
grml-chroot $TARGET puppet agent --test --tags core --waitforcert 30 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
grml-chroot $TARGET puppet agent --test 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
; ;
*)
die " ERROR: Unsupported Debian release ${ DEBIAN_RELEASE } detected, cannot continue! "
; ;
esac
grml-chroot $TARGET puppet agent --test --tags core 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
grml-chroot $TARGET puppet agent --test 2>& 1 | tee -a /tmp/puppet.log
check_puppet_rc " ${ PIPESTATUS [0] } " "2"
}
set_deploy_status "puppet"
@ -2236,26 +2232,18 @@ EOF
chroot $TARGET apt-get -y install resolvconf libnss-myhostname
cat > ${ TARGET } /etc/puppet/puppet.conf << EOF
# Deployed via deployment.sh
cat > ${ TARGET } /etc/puppetlabs/puppet /puppet.conf<< EOF
# This file has been created by deployment.sh
[ main]
logdir = /var/log/puppet
vardir = /var/lib/puppet
ssldir = /var/lib/puppet/ssl
rundir = /var/run/puppet
factpath = \$ vardir/lib/facter
prerun_command = /etc/puppet/etckeeper-commit-pre
postrun_command = /etc/puppet/etckeeper-commit-post
server = ${ PUPPET_SERVER }
[ master]
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
[ agent]
environment = $PUPPET
environment = ${ PUPPET }
EOF
if [ -f " ${ TARGET } /etc/profile.d/puppet-agent.sh " ] ; then
echo "Exporting Puppet 4 new PATH (otherwise /opt/puppetlabs/bin/puppet is not found)"
source " ${ TARGET } /etc/profile.d/puppet-agent.sh "
fi
if [ -n " ${ PUPPET_GIT_REPO } " ] ; then
echo "Installing from Puppet Git repository using 'puppet apply'"
puppet_install_from_git