Commands
The yaml top-level map can be any string.
The top-level name must be unique.
commands:
stop-docker-container:
cmd: docker
Args:
- compose
- -f /some/path/to/docker-compose.yaml
- down
# if host is not defined, command will be run locally
host: some-host
backup-docker-container-script:
cmd: /path/to/script
# The host has to be defined in either the config file or the SSH Config files
host: some-host
environment:
- FOO=BAR
- APP=$VAR
Values available for this section:
name | description | type | required |
---|---|---|---|
cmd |
Defines the command to execute | string |
yes |
args |
Defines the arguments to the command | []string |
no |
environment |
Defines evironment variables for the command | []string |
no |
host |
If not specified, the command will execute locally. | string |
no |
shell |
Only applicable when host is not specified | string |
no |
cmd
cmd must be a valid command or script to execute.
args
args must be arguments to cmd as they would be on the command-line:
cmd [arg1 arg2 ...]
Define them in an array:
args:
- arg1
- arg2
- arg3
host
If any host
is not defined or left blank, the command will run on the local machine.
Host may or may not be defined in the hosts
section.
If any host
from the commands section does not match any object in the hosts
section, the Host
is assumed to be this value. This value will be used to search in the default SSH config files.
For example, say that I have a host defined in my SSH config with the Host
defined as web-prod
.
If I assign a value to host as host: web-prod
and don’t specify this value in the hosts
object, web-prod will be used as the Host
in searching the SSH config files.
shell
If shell is defined and host is NOT defined, the command will run in the specified shell. Make sure to escape any shell input.
environment
The environment variables support expansion:
- using escaped values
$VAR
or${VAR}
For now the variables have to be defined in an .env
file in the same directory as the config file.
If using it with host specified, the SSH server has to be configured to accept those env variables.
If the command is run locally, the OS’s environment is added.