r3boot / collective-herder

A GoLang based server orchestration and parallel job execution framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Collective-herder is a framework for building server orchestration or parallel job execution. It is designed to let users run commands on a diverse set of servers based on the presence of facts. The transport between the client and server is provided by AMQP using a publish-subscribe model.

Building

First, download the code

go get -v github.com/r3boot/collective-herder

Then, proceed into the build directory and build the various commands

cd $GOPATH/src/github.com/r3boot/collective-herder
make

Usage

To start a server, run the following command:

./build/chd -d

To use the client, see the examples below:

$ ./build/ch ping
PONG response from alita.local in 3.285842ms
PONG response from alita.local in 3.860543ms
PONG response from alita.local in 4.000727ms
PONG response from alita.local in 4.103193ms

Summary: min/avg/max = 3.285842ms/3.812576ms/4.103193ms

$ ./build/ch run uname -r
alita.local         stdout: 4.9.11-1-ARCH
alita.local         stdout: 4.9.11-1-ARCH
alita.local         stdout: 4.9.11-1-ARCH
alita.local         stdout: 4.9.11-1-ARCH

$ ./build/ch facts service_mgr
Discovered the following values for service_mgr:

alita.local         systemd
alita.local         systemd
alita.local         systemd
alita.local         systemd

Writing custom plugins

TODO

About

A GoLang based server orchestration and parallel job execution framework


Languages

Language:Go 97.1%Language:Makefile 1.9%Language:Shell 1.0%