Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
61 lines (50 sloc)
1.9 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# This bootstraps Puppet on Ubuntu 12.04 LTS. | |
# | |
# To try puppet 4 --> PUPPET_COLLECTION=pc1 ./ubuntu.sh | |
# | |
set -e | |
# Load up the release information | |
. /etc/lsb-release | |
# if PUPPET_COLLECTION is not prepended with a dash "-", add it | |
[[ "${PUPPET_COLLECTION}" == "" ]] || [[ "${PUPPET_COLLECTION:0:1}" == "-" ]] || \ | |
PUPPET_COLLECTION="-${PUPPET_COLLECTION}" | |
[[ "${PUPPET_COLLECTION}" == "" ]] && PINST="puppet" || PINST="puppet-agent" | |
REPO_DEB_URL="http://apt.puppetlabs.com/puppetlabs-release${PUPPET_COLLECTION}-${DISTRIB_CODENAME}.deb" | |
#-------------------------------------------------------------------- | |
# NO TUNABLES BELOW THIS POINT | |
#-------------------------------------------------------------------- | |
if [ "$(id -u)" != "0" ]; then | |
echo "This script must be run as root." >&2 | |
exit 1 | |
fi | |
if which puppet > /dev/null 2>&1 && apt-cache policy | grep --quiet apt.puppetlabs.com; then | |
echo "Puppet is already installed." | |
exit 0 | |
fi | |
# Do the initial apt-get update | |
echo "Initial apt-get update..." | |
apt-get update >/dev/null | |
# Install wget if we have to (some older Ubuntu versions) | |
echo "Installing wget..." | |
apt-get --yes install wget >/dev/null | |
# Install the PuppetLabs repo | |
echo "Configuring PuppetLabs repo..." | |
repo_deb_path=$(mktemp) | |
wget --output-document="${repo_deb_path}" "${REPO_DEB_URL}" 2>/dev/null | |
dpkg -i "${repo_deb_path}" >/dev/null | |
apt-get update >/dev/null | |
# Install Puppet | |
echo "Installing Puppet..." | |
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install ${PINST} >/dev/null | |
echo "Puppet installed!" | |
# Install RubyGems for the provider, unless using puppet collections | |
if [ "$DISTRIB_CODENAME" != "trusty" ]; then | |
echo "Installing RubyGems..." | |
apt-get --yes install rubygems >/dev/null | |
fi | |
if [[ "${PUPPET_COLLECTION}" == "" ]]; then | |
gem install --no-ri --no-rdoc rubygems-update | |
update_rubygems >/dev/null | |
fi |