Skip to content

comotion/gone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gone configuration management

basic idea:

  • rsync + shell scripts + git. ... and I didn't even need rsync!

Puppet exists. Chef exists. CFEngine exists. Slaughter exists. However: I want to depend on nothing but git. I want to decentralise the "master". I want my scripts to be standalone.

Introducing the gone system:

Install and run

git clone git://github.com/comotion/gone.git && cd gone && ./gone apply

Works by having several packages that can be applied to a system. Each package contains atleast a ./apply script or some files to sync. To make life easier each package is contained within a catalog, by default only the modules catalog is distributed with gone. You can add any catalog you want, typically you will have one catalog containing host specific configuration or roles.

Example

Install a base system and some host specific configurations:

./apply
--------------------------------------------------------------------
#!/bin/sh
# All the files you need to sync is in `modules/base` and host
# specifics are in `host/<hostnane>`. You can run ./apply to run the
applicances.

# Catalogs is read by ./gone script
./gone apply ${@:-modules/base host/$(hostname)}

Any appliance can be one of 1) a script, 2) a folder containing any one of ./files/ or ./apply. It can be structured any way you like.

Todo

Idempotence. "do $foo only when $bar got updated" libs for: package installation on any distro service initscript installation checking configuration .. might make it easier to write scripts, but scripts will no longer stand alone!

About

the zero-impact configuration system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages