public
Description: Airtruk Enterprise Configuration Manager
Homepage:
Clone URL: git://github.com/penguincoder/airtruk.git
airtruk / README
100644 42 lines (32 sloc) 2.226 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Airtruk - The network configuration generator thingey doodad.
 
This is as close of a replication of the 'Overlord' application presented
at RailsConf 2009. Jason LaPorte of Agora Games presented 'PWN Your
Infrastructure Behind Call of Duty: World at War' and gave a few screenshots
of a fantastic looking application that would feed a configuration script
to a machine based on it's hostname.
 
I thought, "hey, i want one of those." So i made one.
 
Airtruk will allow you to configure an arbitrary set of files to be replaced
on a machine. If you omit a filename, those scripts will be executed instead.
 
You configure machines based on their hostname, and you set up shell scripts
based on some arbitrary configuration name (load-balancer-pound, primary-mysql)
Whatever you want, really. On the main page, you click the '+' to add it to a
machine and the '-' to remove it. When the machine asks for it's configuration,
the app will feed it a shell script that it can execute.
 
To install the application, just load it up using your favorite rack
compatible web server and run 'rake db:migrate' to create your database. It
uses Sqlite3 all the time. It doesn't need anything more, really.
 
In the samples/ folder, i included a few suggested scripts that you could
modify to suit your deployment scheme. I use Gentoo for all of my servers and
i use dump/restore to install all of them. Once you get a working machine,
I use RIP Linux to boot off a CD/Thumb drive and use make-production-image.sh
and create a filesystem image. From there, you just dump that image onto each
machine using install-server.sh and then run the setup-production-network.sh
to set up the network. Reboot the machine and run that airtruk-config.sh script
and you're golden. Everything should be as it should on the machine.
 
Thanks to Jason, he had no idea i was writing this, nor have i seen any bits
of the code of his application. In fact, i never even went to his presentation
(sorry!). For more information, see:
http://en.oreilly.com/rails2009/public/schedule/detail/7879
 
One more thing. Why Airtruk, you ask? Because it saved everyone from the
ThunderDome. (That's my proprietary application for managing my enterprise
application). It fits.