Ever heard of test driven development? What about test driven administration? Take a look around examples/ folder for example tests that you can run agains your server.

The general configuration should be done through the test-server.yaml and should be managable by any non Perl awear admin (are there any?). Of course you are free to put any other test that make sence for your server.

The idea behind this is following: You run prove /etc/t and everything is fine. Server is up and running. Life is nice. Then somebody calls you at 3am... Oups! What went wrong? You login to the server (if possible of course) and run the prove /etc/t friend. Something failed? => fix it. Nothing failed? => write a test that will reveal that something is wrong && fix the problem of course ;). And then at 6am go happily to sleep again...

To be the administration really test drive ;) you should be writing your tests before you install the server...

Any other benefits? What about migration || reinstalation of the server? Do you always remember what services || purpouses is the server used for? You just scp the /etc/t folder to the new machine and prove /etc/t will tell you. If not you'll write a test ;).

Or are you writing firewall rules and need to check if you didn't close some ports that you should not? Check out the 03_open-ports.t.

I hope you'll enjoy the idea as I do. (until I find that there are 30 other similar solutions like this...)

I have tried to organize examples/ a little bit. Tests with 01_* should be run directly on the server. The other should run also remotely. Than there can be a central "test" server that will collect all /etc/t folders (without 01_*) and the test could be run also remotely. Testing remote access to the services. Store the collected test in /folder/server_name, run prove -r /folder and watch how everything works(?)!.

The tests starting with 02_* should be essential but short running tests that should work in all cases and the rest of the tests will most likely fail if they do.

After given number of days a fail test will occure. The purpose is to make sure monitoring team is receiving alarms properly. If the admins finds out that this test fails for couple of days without anyone notice then there is something wrong.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.