Minimum configuration management tool written in Go.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
cmd/cofu
cofu
docs
infra
resource
support
test
.editorconfig
.envrc
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
Makefile
README.md
glide.lock
glide.yaml

README.md

Cofu Build Status

Minimum configuration management tool written in Go.

This software is highly inspired by itamae-kitchen/itamae.

Installation

Cofu is provided as a single binary. You can download it and drop it in your $PATH.

Download latest version

Usage

$ echo '
software_package "nginx" {
    action = "install",
}

service "nginx" {
    action = {"enable", "start"},
}' > recipe.lua
$ sudo cofu recipe.lua

Usage is covered in more detail in the Documentation.

Documentation

See Documentation

Notable Limitation!

I am testing Cofu on only el6 and el7 (CentOS6, CentOS7) in development. Therefore, Cofu does not officially support running on the other platforms.

But, to support running on multi platforms in future, Cofu is designed to execute different code by each platforms. This code is inspired by mizzy/specinfra. If you want Cofu to support other platforms, try to port mizzy/specinfra code to Go code: https://github.com/kohkimakimoto/cofu/tree/master/infra

Developing Cofu

Requirements

  • Go 1.8 or later (my development env)
  • Glide
  • gox

Installing dependences

$ make deps

Building dev binary.

$ make dev

Building distributed binaries.

$ make dist

Building packages (now support only RPM)

$ make dist
$ make packaging

Author

Kohki Makimoto kohki.makimoto@gmail.com

License

The MIT License (MIT)