anchor

command module
v0.0.0-...-7f9fb7b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2015 License: MIT Imports: 14 Imported by: 0

README

Anchor is a script-based configuration management tool that adheres to UNIX philosophy.

Anchor CM is just a tool

By itself, Anchor does not do anything. The secret sauce is in the cmdfile. Anchor CM is just a script preprocessor which enables you to process data beforehand and feed it as flags to corresponding CLI software.

Use interface, not leaky abstraction

Anchor CM tool invokes the command-line interface of the remote node (physical or virtual machine).

Chef, Puppet, Ansible and Salt are leaky abstractions like ORM, forever chasing a moving target which is the CLI of programs that actually matter.

Push-based workflow

A push-based workflow of configuration management is easier to reason about. Once you have gathered your artifacts like source code, binaries, files, images, etc to your control machine, for example a local computer or VM in public cloud, those artifacts can be pushed to your remote node (the one being configured) through SSH.

Pushing artifacts to multiple hosts in an efficient manner is left to the user or can be delegated to another project as separate orchestration tool.

Simple error handling

The CM tool must stop execution at the first occurrence of error.

Anchor on server-side, easyssh on client-side

Anchor is used to configure remote servers, easyssh is used to scp files to remote server and run ssh command on the client side

Usage

Assuming you have already uploaded anchor executable to remote servers as well as the corresponding cmdfile, you may also use Anchor on the client side to batch execute commands on the remote servers.

uptime will be executed on remote servers
#cmd.txt

[code]
RUN easyssh -user root -server 192.168.56.101 -keypath id_rsa -cmd uptime
RUN easyssh -user root -server 192.168.56.102 -keypath id_rsa -cmd uptime
On client side (Windows or Linux)
C:\mygo\src\github.com\ibmendoza\easyssh\example>anchor cmd.txt
Output
C:\mygo\src\github.com\ibmendoza\easyssh\example>anchor cmd.txt
RUN
easyssh -user root -server 192.168.56.101 -keypath id_rsa -cmd uptime
==> OUTPUT:  03:39:03 up 4 min,  0 users,  load average: 0.01, 0.05, 0.04


RUN
easyssh -user root -server 192.168.56.102 -keypath id_rsa -cmd uptime
==> OUTPUT:  03:39:03 up 3 min,  0 users,  load average: 0.01, 0.03, 0.02



If any error appears, cmdfile run is not completed

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL