tricorder
This is the executable. Here, you can control which hosts are affected by the subcommand.
You can select host from an inventory file by using the flag --inventory.
Flags:
| Flag | Description |
|---|---|
| -i –inventory <FILE> | Path to TOML inventory file or program producing JSON inventory |
| -H –host_id <STR> | Identifier of the host to connect to |
| -t –host_tags <STR> | Comma-separated list of tags identifying the hosts to connect to |
info (Subcommand)
Gather information on hosts
Examples:
$ tricorder -i inventory info
Flags:
| Flag | Description |
|---|---|
| -p –parallel | If set, the task will be executed concurrently |
do (Subcommand)
Execute a command on multiple hosts.
Examples:
$ tricorder -i inventory do -- echo "run on all hosts"
$ tricorder -i inventory -H foo do -- echo "run only on host 'foo'"
$ tricorder -i inventory -t myapp do -- echo "run only on hosts tagged with 'myapp'"
Commands can be templated with data from the host as defined in the inventory:
$ tricorder -i inventory do -- echo "{host.id} says {host.vars.msg}"
Flags
| Flags | Description |
|---|---|
| -p –parallel | If set, the task will be executed concurrently |
upload (Subcommand)
Upload a file to multiple remote hosts.
Examples:
$ tricorder -i inventory upload LOCAL_PATH REMOTE_PATH [FILE_MODE]
$ tricorder -i inventory upload -T LOCAL_PATH REMOTE_PATH [FILE_MODE]
Flags:
| Flags | Description |
|---|---|
| -p –parallel | If set, the task will be executed concurrently |
| -T –template | If set, the task will be executed concurrently |
| [LOCAL_PATH] | Path on local host to the file to be uploaded |
| [REMOTE_PATH] | Path on remote host to upload the file |
| [MODE] (default: 0644) | UNIX file mode to set on the uploaded file |
download (Subcommand)
Download a file from multiple remote hosts.
The files will be downloaded to: {pwd}/{host.id}/{local_path}
Examples:
$ tricorder -i inventory download REMOTE_PATH LOCAL_PATH
Flags:
| Flags | Description |
|---|---|
| -p –parallel | If set, the task will be executed concurrently |
| [LOCAL_PATH] | Path on local host to the file to be uploaded |
| [REMOTE_PATH] | Path on remote host to upload the file |
module (Subcommand)
Upload a module to the remote host and call it with data.
Data can be a specified JSON data file.
The data in the file will be overwritten by variables in host.vars.module_<modulename>.
A module is an executable, that gets uploaded to ~/.local/tricorder/<modulename>. The Module reads the supplied data from stdin.
You could also create a Module, that calls external sources like APIs or a database to get its data.
Examples:
$ tricorder -i inventory module --data <DATA_FILE_PATH> --module <MODULE_PATH>
$ tricorder -i inventory module --module <MODULE_PATH>
Flags:
| Flags | Description |
|---|---|
| -p –parallel | If set, the task will be executed concurrently |
| -d –data [DATA_PATH] | Path to the file containing the data in JSON-format |
| -m –module [MODULE_PATH] | Path to the executable that should be run |