Created
October 26, 2013 20:30
-
-
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.
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
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