Code Monkey home page Code Monkey logo

hotomata's Introduction

Hotomata

Lightweight configuration management tool written in Go (yaml+ssh)

Hotomata is hopefully easy to use and candidate for serious projects but in all cases a great learning experience and fun project.

For simpler use cases it is more approachable than bigger players in the field.

The biggest differentiator with other CM tools out there is that Hotomata really embodies simplicity by promoting small commands doing one thing well that can be composed in complex operations by composing them together. Unix and Golang concepts yes, yes. All that without writing custom plugins once and still using your beloved YAML popular for Ansible or SaltStack folks, no funky DSL to learn.

Hotomata draws inspiration from Ansible and SaltStack but also from few open source, not widely popular projects like dynport/urknall or sudharsh/henchman and even few SaaSes out there like commando.io

Hotomata masterplans end up being conceptually close to this:

masterplan db
  machines db-master
  vars [...]
  plans
    - common
        vars [...]
        plans
          - hostname
              run: "echo '{{.varx}}' >> /etc/hostname"
          - lang
              vars [...]
              plans
                - upload
                    vars [...]
                    run "scp ..."
                    local true
                - service_reboot
                    vars [...]
                    run "sudo service {{.service}} restart"
    - db
        vars [...]
        plans
          - ...
    - upload
        vars [...]
        run "rsync {{.localDir}} {{.remoteDir}}"
        local true

Getting started

go get github.com/merd/hotomata/cmd/hotomata
hotomata -h

Documentation

There is plenty of documentation being written, even before code sometimes. Reading them is a good introduction to what hotomata does but mostly how it solves it:

CLI Tools

hotomata

Main tool used for execution of masterplans against remotes and remote execution facilities.

hotomata-vault

Tool used to decrypt, encrypt, view, edit, create and rekey vaults of var files. Those are the place you can store your secrets safely and commit them source control with less worry than with plaintext.

hotomata-inventory

A simple tool to inspect (print) an inventory file's contents as seen and parsed by hotomata and to validate (check) that an inventory file is syntactically valid.

Contributions

... are welcomed, hoping the docs are giving you a good idea of what's going on, if not I hope the code is clear enough to understand what's happening, in any case drop me a line if you want to help or know more

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.