Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/geekq/devops-toolbox


https://github.com/geekq/devops-toolbox

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        

Do you know the situation? You get a new server, start installing and
configuring stuff, then install additional services every couple of
month. And after some years decide to relocate to a new server or to
split: move *some* services to a new server. And then you think: "What a mess, how
long will it take until it perfectly configured and runs again - should
I better stay with the old one as long as possible?" ;-)

What about Zero day exploits? You think, you system could have been
compromised and need to reinstall everything as soon as possible.

Approaches I have already used:

* **Document every configuration step in wiki.** Can be a big help, but does
not work automatically on the next installation - you still need to
interpret and manually run single steps. No automatic testing.
* **Use [etckeeper]() with git to record the configuration changes.**
Gives you later a clue, what has been changed. But the diffs are not
automatically applicable on new installation, for example for a newer
version

Now I decided to use [puppet]() for all newer installations.

Assumptions/prerequisites

* we will use a script for bootstraping, after that - puppet 3.0.
Puppet supports multiple (almost all) Linux distributions. For the
bootstrap scripts I'll start with Ubuntu/Debian and add Fedora/RedHat
later.
* **Ruby 1.9** Bash programming can be cumbersome - so use Ruby and nice
DSLs like Rake, Capistrano with their easy readable syntax for all non trivial
tasks. 1.9 is now available in all recent Linux distributions - so use
that. In Ruby 1.9 the rubygems is included - makes easy to install
additional libraries (gems). Some libraries will be "vendored" though.
E.g. `trollop` for nice command line tools.