Created
August 21, 2011 21:02
-
-
Save anveo/1161161 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 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