Configure Ubuntu and CentOS Webserver using Puppet
4 November 2008
As I’m playing with the EC2 Puppet setup, here’s my simple web server in CentOS and Ubuntu puppet recipe. (need to edit more the Ubuntu installed packages ex. add php_mysql etc)
Tested in CentOS 5.0 and Ubuntu 8.04 AMI by Eric Hammond found at http://alestic.com.
class apache {
# CentOS v.5 only
case $operatingsystem {
"CentOS": {
$wantedpackages = [ "httpd","php","php-mysql","php-mcrypt","php-mhash","php-mbstring" ]
package { $wantedpackages:
ensure => installed
}
service { "httpd":
ensure => running,
hasstatus => true,
hasrestart => true,
require => Package["httpd"],
restart => true;
}
}
"Debian": {
# assume Debian base..
$wantedpackages = [ "apache2" ]
package { $wantedpackages:
ensure => installed
}
service { "apache2":
hasstatus => true,
hasrestart => true,
ensure => running,
require => Package["apache2"]
}
}
} # end case
}
Obviously a web node will have the config:
node webA.sample.org {
include apache
}
Running it on EC2, pass a user-data script to the AMI during launch. A script that will set the hostname, adds default puppet master for the current instance and installs the puppetd. The puppetd program will then connect to the puppet server, and get all it’s needed configurations.
Thanks to Reductive labs.
There are 3 responses to this post. Join the discussion:
How can start puppet in an AWS instance ?
In order to run it in AWS you have to install the puppetmaster daemon on you puppet server instance and install puppet on the client machines instances.
See the links for more info:
http://www.howtoforge.com/installing_puppet_on_ubuntu
http://ifireball.wordpress.com/docs/howto-install-puppet-on-centos-50
http://reductivelabs.com/trac/puppet/wiki/InstallationGuide#InstallPuppet
Let me know how it goes
[...] the last blog which features creating a basic module in Puppet here and here, this is a sample init.pp I’ve created to install, tomcat,mysql,subversion,java1.5 and load a [...]
Leave a comment