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 isvoxbox-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 tolocal.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