Skip to content

Instantly share code, notes, and snippets.

@spjmurray
Last active August 29, 2015 14:04
Show Gist options
  • Save spjmurray/e7e50ce334e5f7948e08 to your computer and use it in GitHub Desktop.
Save spjmurray/e7e50ce334e5f7948e08 to your computer and use it in GitHub Desktop.
#!/bin/bash
PUPPET_REPO='deb http://apt.puppetlabs.com trusty main dependencies'
REPO='[email protected]:datacentred/datacentred-myrepo'
ENVDIR='/etc/puppet/environments'
PRODENV="${ENVDIR}/production"
## We need a recent version of puppet so force bleeding edge
wget -q http://apt.puppetlabs.com/pubkey.gpg -O- | apt-key add -
echo $PUPPET_REPO > /etc/apt/sources.list.d/puppetlabs.list
apt-get update
## Install required packages
apt-get -y install puppet git
gem install r10k
## Install the production environment
mkdir -p /root/.ssh
cat > /root/.ssh/id_rsa.deploy <<EOF
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAvdpFOOLSLtERnqlSvky2q2BGR2udqJYIRCAW5un1NNQmlHRD
+lDX9jQeU0a0CiVk372BEb7FrfJKuiszBSxQ3rnQELa/qmj1HL6krNo4F37L2q0W
WqyeB10olTfE1cKr8uyLkKzX0b7C4w54gG5Rc0Md6mW6Yf+28GVn9m6Zq7N63hzJ
UP02D6/4lRLF0Yut1Fh0Ij6lIyxsXGP/9jISyrPGOSr1kfpVLaN9/X57svizTkCQ
IalipjlxsomqQWmqT6JeIO82iQFnGXPQ80KC8UYgNzX4jAspnFQO2KlTMRCcDOPN
8HUrf5e0ToOveym4/7wL0I2C0eiIUmVvCuSzbQIDAQABAoIBAQCwbm919hQtvc0K
DYD/qHr5uHaXWMMjMIpuBQRDg5iEh8NyormpngeUncqwyTv3Udj0tD+GJiu/AzO+
3vaDEDP3R+a8IZjs3K0tEV4n5IPMEeGQTto/WbtiTIiyYylhHZB+KKVqxbWrDgQ+
zeveLqcy3mSmt/MFr4Zq0VJUCWR10rPS6vO34XKw/oe/FKBwY3wHhE2eI+QeiX5a
P1yNPblLK5BAQuHwftm18fe0yhrWqpBFKFkgA7vjRrhejYdGrAUUOyPo12r8aIfc
ao0EvjoqFfGNmFxlsGLViTirbt1e1aL2jSCae7KbHerdyZ/Nzz71bZiHNL8qhJLP
m4VkCfhhAoGBANzDw1pcbHTvJZLuexGgp1C1a3saaHX6EFfwnnxwa91cXH/OaC62
Im/cCe/qeUz/tX4fdWHYEbIulffff7MOiXjx1oD4N1IP6iEs8ePU5VL1L2iwnPi2
Vu6Ud6qTyYSpjsIFAZSamm7gH7AsPEgERHrBdQr1fMTNdM4+EodJ07tnAoGBANwn
eAoY07G/29Z6dLvwCxVIFVY7yJbsHvN8FxBDuMw+M2GJpo4D9OgFuPjgvaBa76Zf
FDmm2kD3I9jmA2JINwBN0p9NhovIiTdPH91iYI4A7jcOk3FMp7ghd6dVsIY1PmOU
efwaUS6n8Mcvz8VAbJqp1Hq7d79mMGre9x32VWoLAoGBAIrT/LyNVJLwdOOCXxhF
vBIQFGgUwk42lCKJKVE97UcGNxEUPwXo+Zz4dbNO8zsNrxeCNvHxy6cOjraS8R4r
7R2Gj4sJDNjpMyXruq24iwHxOAAQ2JW7LM3ZxasaRubLLgAq38SQuL8y6BqEpt/u
9xVvJOhgWjb0sRilhkdXkPPPAoGBALxgNVGGbtVgUm5SN8J8Ii+ij0dLPlcNUWqM
Gnv7RovVCUgDbXWFIzDJfL3QJ9GnHfpgzsCJ6aS/E3hLUEfvfMiQzpEq196Rx/+A
f8aBoBbB6xNHMJg4vCZM1MJlCve7ZVf1uu8hYaenYdo+Ke0hNAyfFsWx1UP736AC
irajifCDAoGAWiolXpPwZ8MQ1xNAQ4zgUxxsuPy9cyiy245BRlqybCrPfkOqL0ut
21qTz7ZG+Wz7wwuAxE9dykj390QupXficLG7XAFB13AhZ6y8sblIgkmt8tvN2TSS
ZGCz4FRFB1V3L1DJOhvQpEln39nMeQI5xWm1IeVAUNoNa4bluhVIkf8=
-----END RSA PRIVATE KEY-----
EOF
chmod 400 /root/.ssh/id_rsa.deploy
cat >> /root/.ssh/config <<EOF
Host github.com
StrictHostKeyChecking no
IdentityFile /root/.ssh/id_rsa.deploy
EOF
mkdir -p ${ENVDIR}
git clone ${REPO} ${PRODENV}
pushd ${PRODENV}
r10k puppetfile install
popd
# Enable hiera data
cp ${PRODENV}/modules/puppet/files/master/hiera.yaml /etc/puppet
# Provision!
puppet apply --modulepath ${PRODENV}/modules:${PRODENV}/site ${PRODENV}/manifests
# Update DNS
cat > /etc/dhcp/dhclient.conf <<EOF
prepend domain-name-servers 10.0.0.3;
EOF
ifdown eth0 && ifup eth0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment