Copyright 2012 Georgia Tech Research Institute
Author: Lance Gatlin [[email protected]]
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Puppet modules for configuring a basic single-website CentOS webserver. (apache module can be configured to support multi-site webservers)
- See wiki (here) for instructions on creating a CentOS 6.X VirtualBox VM
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
* x86_64:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
* Install required packages for puppet:
yum install puppet facter ruby ruby-libs ruby-shadow rubygems rubygem-activesupport cronie
* Install GIT:
yum install git
* Check-out puppet modules:
git clone https://github.com/gtri-iead/puppet-centos-webserver.git /usr/share/puppet/modules/
* Edit ~/site.pp to the following:
node default {
class { webserver1 :
ensure => latest,
password => 'YOUR_PASSWORD_HERE',
}
# Other modules (such as mediawiki) go here!
}
- Get a fresh repo db for yum (important!):
yum clean all
* Apply the manifest:
puppet apply ~/site.pp
* The wwwadmin utility provides access to web-accessible admin utilities such as phpmyadmin or phppgadmin
* The module provides an apache URL (/admin) that accepts connection ONLY from the localhost
* This URL is inaccessible to normal http/https requests
* To access /admin, an SSH session connecting to the server from a remote machine should be started
* The ports 80,443 and 8080 should be tunneled so that the remote machine's localhost maps to the server's localhost (127.0.0.1)
* Example using putty:
[[Image:wwwadmin-putty-tunnel-config.png|300px]]
* After enabling tunneling, to access /admin on the remote machine, navigate a browser to http://localhost/admin (this connects to the server as if it were from the server itself)
[[Image:wwwadmin-test.png|300px]]