Skip to content
Andrew Kesterson edited this page Aug 24, 2012 · 9 revisions

Installing DISCO

Disco NOOP

Disco Node Configuration (Parameters, ENC)

Disco Balls - How to Deploy Stuff

Disco Balls - Shrink-Wrapped (Built-In) Disco Balls

How to use Disco - A complete example

Why disco?

Because puppet, chef, cfengine, etc, are all great tools, but they all fall short of the mark, in terms of simplicity, ease of use, and reliability. None of them really follow the UNIX philosophy of "do one thing, do it well, and don't reinvent the wheel".

No, really, why did you name it "disco"?

I wanted an acronym based off of "Dead Simple Continuous Integration", and this was the closest I found.

Requirements

DISCO assumes that you:

- have at least one server capable of running rsyncd, sshd and a recent GNU
- have one or more clients capable of running ssh, rsync, fuse-unionfs, and recent GNU

While that's a very simple requirements list, it currently restricts it to recent Linux systems. You may or may not be able to use this tool on FreeBSD or Mac OS X, I haven't tried. Due to the way it executes, this tool will probably never, ever execute properly on Windows.

Why focus so much on linux?

Because if we try to do everything and the kitchen sink, for every OS out there, we run the risk of falling short in the same ways the other CI tools have. By limiting our scope and problem space to recent GNU/Linux systems, we can write a much simpler tool in a much shorter amount of time that is much simpler to understand.

How do you establish the trust relationship between server and client?

DISCO uses rsync(+ssh) with SSH keys, so the answer is, "we don't establish it" - SSH handles that for us by the server allowing or denying the key. The only issue with this, vs the puppet model of auto signing keys, is that clients can't auto-register themselves. At least, not currently. Perhaps there will be such a mechanism in the near future.

Clone this wiki locally