Skip to content

Instantly share code, notes, and snippets.

@anveo
Created August 21, 2011 21:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anveo/1161161 to your computer and use it in GitHub Desktop.
Save anveo/1161161 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# This script assumes 'deploy' user already exists
RUBY_19_RELEASE='ruby-1.9.2-p290' # if this changes, change the /etc/puppet/puppet.conf below
PUPPET_VERSION='2.7.3'
apt-get update
apt-get install -y linux-headers-`uname -r`
apt-get install -y ntp openssh-server
apt-get install -y build-essential binutils-doc gcc autoconf flex bison git-core
apt-get install -y libreadline5-dev zlib1g-dev libssl-dev libxml2-dev libxslt1-dev
apt-get install -y debconf-utils python-software-properties
apt-get install -y bash-completion curl dnsutils htop iotop ncurses-term nmap strace tmux tree sysstat unzip vim-nox
# Setup RVM
bash < <( curl -L https://rvm.beginrescueend.com/install/rvm )
# Load rvm
source /etc/profile && rvm reload
# ruby info prompt
echo '[[ -s "/usr/local/rvm/contrib/ps1_functions" ]] && source "/usr/local/rvm/contrib/ps1_functions"' >> ~/.bashrc
echo 'ps1_set --prompt ∴' >> ~/.bashrc
# add root to rvm
usermod -a -G rvm root
# add deploy to rvm
usermod -a -G rvm deploy
# (logout for group change to occur)
rvm install $RUBY_19_RELEASE
# Set default ruby
rvm use $RUBY_19_RELEASE --default
# Create gemset for system utilities
rvm use --create $RUBY_19_RELEASE@system
## Setup puppet
# puppet user/group
adduser --system puppet
addgroup puppet
usermod -a -G puppet puppet
gem install puppet --version $PUPPET_VERSION --no-ri --no-rdoc
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppet
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppetca
rvm wrapper $RUBY_19_RELEASE@system --no-prefix facter
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppetd
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppetdoc
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppetmasterd
rvm wrapper $RUBY_19_RELEASE@system --no-prefix puppetrun
mkdir -p /etc/puppet
mkdir -p /var/lib/puppet/bucket
mkdir -p /var/lib/puppet/reports
mkdir -p /var/lib/puppet/rrd
mkdir -p /var/lib/puppet/server_data
mkdir -p /var/lib/puppet/ssl
mkdir -p /var/lib/puppet/yaml
mkdir -p /var/log/puppet
mkdir -p /var/run/puppet
chown -R puppet:puppet /var/lib/puppet
(
cat <<'EOP'
[main]
pluginsync = true
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=/usr/local/rvm/gems/ruby-1.9.2-p290@system/gems/facter-1.6.0/lib/facter
templatedir=$confdir/templates
manifest = /usr/share/puppet/configuration/development/current/manifests/site.pp
modulepath = /usr/share/puppet/configuration/development/current/modules
[agent]
server=puppet
EOP
) > /etc/puppet/puppet.conf
mkdir -p /usr/share/puppet/configuration/development
chown -R deploy:deploy /usr/share/puppet
# run with: puppet master --no-daemonize --debug --verbose
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment