Skip to content

FarmRadioHangar/coaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coaster

NAME:
   coaster - manages ansible playbooks on a host machine

USAGE:
   coaster [global options] command [command options] [arguments...]

VERSION:
   0.1.2

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --config value    path to the configuration file
   --book value      the name of the playbook to run
   --tags value      a list of playbook tags to run
   --force           will force the operation
   --ensure          this will rerun the play forever until it succeeds
   --interval value  the interval to retry running the playbook in minutes (default: 0s)
   --timeout value   the time  to stop retrying running the playbook in minutes (default: 0s)
   --help, -h        show help
   --version, -v     print the version

Example usage

$ coaster  --config tmp/play.json --book voxbox-playbook --tags fconf,fastc --force true

The configuration file looks like this

{
    "playbookPath":"tmp/playbooks",
    "manifestDir":"tmp/",
    "inventoryFile":"local.hosts"
}
  • playbookPath tells the binary to look for ansible playbooks in this diretcory

  • manifestFir tells the binary to look/store manifest file in this directory. The name of the manifest file is voxbox-manifest.json

  • inventoryFile tells the binary to use this file as inventory, if you want to run the playbook in localhost( the same machine as the binary is in) set this to local.hosts

sample manifest file

{
	"version": "0.1.0",
	"components": [
		{
			"name": "fastc",
			"version": "0.1.5"
		},
		{
			"name": "fconf",
			"version": "0.4.10"
		},
		{
			"name": "fconf-node",
			"version": ""
		},
		{
			"name": "fconf-polymer",
			"version": ""
		},
		{
			"name": "fdevices",
			"version": "0.1.9"
		},
		{
			"name": "fessbox",
			"version": "0.2.0"
		},
		{
			"name": "metrics",
			"version": ""
		},
		{
			"name": "redis",
			"version": "3.2"
		},
		{
			"name": "voxbox-ui",
			"version": ""
		}
	],
	"created_at": "2017-03-31T10:02:45.177193137+03:00",
	"updated_at": "2017-03-31T10:08:51.779628732+03:00"
}

This file lives in {manifestDir}/voxbox-manifest.json and is autogenerated by this tool.

--ensure flag will do retries based on --interval flag and will terminate based on --timeout flag

Both --timeout and --interval are durations so you specify them by e.g 1m,2s,10ms

Example of command with ensure

$ coaster --config tmp/play.json --book voxbox-playbook --ensure  --timeout=10000ms --interval=5ms