This project attempts to glom together all the various bits and pieces that are involved in server operations.
The general philosophy is use well written bash scripts to get everything up and running for us.
Currently this is being developed only for Arch Linux.
Bringing a Server up
Ideally we'd be using something like puppet or chef for this process. We are not, instead we have a stack of bash scripts and templates. This is due to a bit of momentum down a bad path, but no matter how unpleasant it can be found at https://github.com/patmcnally/webops
Step 1: Provision a Box
Right now this is pretty custom made for Linode. You'll want the latest Arch Linux (currently Arch Linux 2011.08) and I go with Linode's suggestion of sticking to 32 bit. Once the server comes up you need to manually log in via ssh as root.
Step 2: Grab WebOps Project and Copy Cert
The goal is simple, get the webops project onto the server. Ideally this is as simple as downloading the zip from https://github.com/patmcnally/webops/zipball/master. I have been downloading this into the root users home directory for now. > wget https://github.com/patmcnally/webops/zipball/master Copy a certificate or generate one in /home/deploy/certs/staging.gnomium.com.pem > openssl req -new -x509 -keyout staging.gnomium.com.pem -out staging.gnomium.com.pem -days 365 -nodes
**** During Development During development I'm keen on a simple tar / scp (launched from directory containing project).
> tar zcf - webops | ssh email@example.com 'tar zxf -'
Step 3: Push the Big Button
While logged into the newly provisioned box, with a copy of the webops project sitting in /root, it's time to run the script > ./bin/archlinux_init. That script is bash script which should update the system and install the supporting stack of software. It should leave a system ready for the gnomium developed web application and socket.io server to be installed.