Skip to content

Instantly share code, notes, and snippets.

@anuaimi
Created October 26, 2013 20:30
Show Gist options
  • Save anuaimi/7174174 to your computer and use it in GitHub Desktop.
Save anuaimi/7174174 to your computer and use it in GitHub Desktop.
will create a puppet master on ubuntu 12.04 LTS with apache/passenger front-ending it. uses latest puppet packages from puppetlabs and latest passenger package from phusion.
ROOT_DOMAIN="devfoundry.com"
HOSTNAME=puppet.${ROOT_DOMAIN}
DISTRIBUTION='precise'
set_hostname() {
# set hostname
sudo sh -c "echo '127.0.0.1 ${HOSTNAME} puppet localhost' >> /etc/hosts"
sudo sh -c "echo '${HOSTNAME}' > /etc/hostname"
sudo hostname ${HOSTNAME}
}
add_puppetlabs_repo() {
# download, install & remove
wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo rm puppetlabs-release-precise.deb
}
add_phusion_repo() {
# add phusions key
gpg --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
gpg --armor --export 561F9B9CAC40B2F7 | sudo apt-key add -
# add their repo to the list
sudo sh -c "echo 'deb https://oss-binaries.phusionpassenger.com/apt/passenger ${DISTRIBUTION} main' > /etc/apt/sources.list.d/passenger.list"
sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list
# make sure apt can use https
sudo apt-get install -y apt-transport-https
}
install_ruby_193() {
sudo apt-get install -y ruby1.9.1-full
sudo update-alternatives --set ruby /usr/bin/ruby1.9.1
sudo update-alternatives --set gem /usr/bin/gem1.9.1
sudo gem install bundler --no-ri --no-rdoc
}
install_puppetmaster() {
sudo apt-get install -y puppetmaster-passenger
# fix issues with apache config file having old entries
# that are not supported with Passenger 4.x
sudo sed -i 's/RackAutoDetect/#RackAutoDetect/g' /etc/apache2/sites-available/puppetmaster
sudo sed -i 's/RailsAutoDetect/#RailsAutoDetect/g' /etc/apache2/sites-available/puppetmaster
sudo sed -i "s/Listen 8140/Listen 8140\nServerName ${HOSTNAME}/g" /etc/apache2/sites-available/puppetmaster
sudo service apache2 restart
#sudo apt-get install -y puppetdb
}
#
# start here
#
set_hostname
# get details on most recent packages
add_puppetlabs_repo
add_phusion_repo
sudo apt-get update
# note, ubuntu puppetmaster defaults to ruby 1.8.7
# if you want ruby 1.9.3, you need the lastest passenger
install_ruby_193
install_puppetmaster
exit
# NEED TO GET PUPPETMASTER WORKING WITH RUBY 1.9.3
# add to puppet.conf
sudo sh -c "echo ' ' >> /etc/puppet/puppet.conf"
sudo sh -c "echo '[agent]' >> /etc/puppet/puppet.conf"
sudo sh -c "echo 'report=true' >> /etc/puppet/puppet.conf"
sudo a2dissite default
sudo mv /etc/apache2/ports.conf /etc/apache2/ports.conf.org
sudo touch /etc/apache2/ports.conf
sudo sh -c "echo 'ServerName puppet.${DOMAIN}' > /etc/apache2/conf.d/server.conf"
sudo service apache2 restart
# create simple manifest
sudo touch /etc/puppet/manifests/node.pp
# verify
sudo puppet agent --test
# postgresql
# sudo apt-get install -y postgresql
# set password
# sudo -u postgres psql postgres
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment