Urknall Opinionated provisioning for clever developers

Urknall is the basic building block for creating go
based tools for the administration of complex infrastructure. It
provides the mechanisms to access resources and keep a cache of
executed tasks. Description of tasks is done using a mix of
explicit shell commands and abstractions for more complex actions
being pragmatic, but readable.

Features

Automate provisioning: Urknall provides automated
provisioning, so that resources can be set up reproducibly and
easily. Thereby Urknall helps with scaling infrastructure to
the required size.

Agentless tool that only relies on common UNIX tools
and provides decent caching: As Urknall works agentless
on UNIX based systems, adding new resources to the
infrastructure is effortless. The caching keeps track of
performed tasks and makes repeated provisioning with thoughtful
changes possible.

Template mechanism that helps at the start, but get’s
out of the way later on: Urknall provides some basic
templates to execute common tasks, but lets users modify those
or add new ones to solve the specific problem at hand. They
have no intent to be the generic solution for each use case on
each platform.

Templates use shell commands with small
abstractions: Create solutions using a familiar
language, with pragmatic helpers to simplify common tasks and
have type safety. No need to learn some fancy new abstractions
from the core problem.

Go
based: This provides the benefits of a compiler,
helping to catch bugs early and making refatctoring easy,
decent tooling and single binary infrastructure management
tools, having no depedencies and enabling all team member to
perform tasks like deployment.

Installation

To install urknall a proper go setup is required. See
go for further information on
how to do so. This page has a helpful
tour on the language itself that
might be a good quick introduction, when you haven't use go yet.

Installation of urknall is as easy as running the following command:

$ go get github.com/dynport/urknall/urknall

This will download the source to $GOPATH/src/github.com/dynport/urknall and
install the urknall binary to $GOPATH/bin (which should be in your
$PATH environment for best experience) and urknall library to the
subtree in $GOPATH/pkg.

Documentation

The following pages provides a quickstart guide and extensive
documentation for different aspects and concepts of urknall. For
the technical API documentation on how to use urknall, see the
godoc page.

QuickStart

Understand how to use the different parts of urknall to build a
basic provisioning tool.