Command Reference
sake
sake is a task runner for local and remote hosts
Synopsis
sake is a task runner for local and remote hosts.
You define servers and tasks in a sake.yaml config file and then run the tasks on the servers.
Options
-c, --config string specify config
-u, --user-config string specify user config
--ssh-config string specify ssh config
--no-color disable color
-h, --help help for sake
check
Validate config
Synopsis
Validate config.
check [flags]
Examples
# Validate config
sake check
Options
-h, --help help for check
run
Run tasks
Synopsis
Run tasks specified in a sake.yaml file.
run <task> [flags]
Examples
# Run task <task> for all servers
sake run <task> --all
# Run task <task> for servers <server>
sake run <task> --servers <server>
# Run task <task> for all servers that have tags <tag>
sake run <task> --tags <tag>
Options
--dry-run print the task to see what will be executed
--describe print task information
--list-hosts print hosts that will be targetted
-V, --verbose enable all diagnostics
-S, --strategy string set execution strategy [linear|host_pinned|free]
-f, --forks uint32 max number of concurrent processes (default 10000)
-b, --batch uint32 set number of hosts to run in parallel
-B, --batch-p uint8 set percentage of hosts to run in parallel [0-100]
-a, --all target all hosts
-v, --invert invert matching on hosts
-r, --regex string target hosts on host regex
-s, --servers strings target servers by names
-t, --tags strings target hosts by tags
-T, --target string target hosts by target name
--order string order hosts
-l, --limit uint32 set limit of servers to target
-L, --limit-p uint8 set percentage of servers to target [0-100]
--ignore-unreachable ignore unreachable hosts
-M, --max-fail-percentage uint8 stop task execution on all servers when threshold reached
--any-errors-fatal stop task execution on all servers on error
--ignore-errors continue task execution on errors
-J, --spec string set spec
-o, --output string set task output [text|table|table-2|table-3|table-4|html|markdown|json|csv|none]
-p, --print string set print [all|stdout|stderr]
--omit-empty-rows omit empty row for table output
--omit-empty-columns omit empty column for table output
-q, --silent omit showing loader when running tasks
--confirm confirm root task before running
--step confirm each task before running
--tty replace the current process
--attach ssh to server after command
--local run task on localhost
--theme string set theme (default "default")
-e, --edit edit task
-R, --report strings reports to show (default [recap])
-i, --identity-file string set identity file
-U, --user string set ssh user
--password string set ssh password
--known-hosts-file string set known hosts file
-h, --help help for run
exec
Execute arbitrary commands
Synopsis
Execute arbitrary commands.
Single quote your command if you don't want the file globbing and environments variables expansion to take place before the command gets executed in each directory.
exec <command> [flags]
Examples
# List files in all servers
sake exec --all ls
# List git files that have markdown suffix for all servers
sake exec --all 'git ls-files | grep -e ".md"'
Options
--dry-run prints the command to see what will be executed
--describe print task information
--list-hosts print hosts that will be targetted
-V, --verbose enable all diagnostics
-S, --strategy string set execution strategy [linear|host_pinned|free]
-f, --forks uint32 max number of concurrent processes (default 10000)
-b, --batch uint32 set number of hosts to run in parallel
-B, --batch-p uint8 set percentage of servers to run in parallel [0-100]
-a, --all target all servers
-v, --invert invert matching on servers
-r, --regex string filter servers on host regex
-s, --servers strings target servers by names
-t, --tags strings target servers by tags
-T, --target string target servers by target name
--order string order hosts
-l, --limit uint32 set limit of servers to target
-L, --limit-p uint8 set percentage of servers to target
--ignore-unreachable ignore unreachable hosts
-M, --max-fail-percentage uint8 stop task execution on all servers when threshold reached
--any-errors-fatal stop task execution on all servers on error
--ignore-errors continue task execution on errors
-J, --spec string set spec
-o, --output string set task output [text|table|table-2|table-3|table-4|html|markdown|json|csv|none]
-p, --print string set print [all|stdout|stderr]
--omit-empty-rows omit empty row for table output
--omit-empty-columns omit empty column for table output
-q, --silent omit showing loader when running tasks
--confirm confirm root task before running
--step confirm each task before running
--tty replace the current process
--attach ssh to server after command
--local run command on localhost
--theme string set theme (default "default")
-R, --report strings reports to show (default [recap])
-i, --identity-file string set identity file for all servers
-U, --user string set ssh user
--password string set ssh password for all servers
--known-hosts-file string set known hosts file
-h, --help help for exec
init
Initialize sake in the current directory
Synopsis
Initialize sake in the current directory.
init [flags]
Examples
# Basic example
sake init
Options
-h, --help help for init
edit
Open up sake config file in $EDITOR
Synopsis
Open up sake config file in $EDITOR.
edit [flags]
Examples
# Edit current context
sake edit
Options
-h, --help help for edit
edit server
Edit server
Synopsis
Open up sake config file in $EDITOR and go to servers section.
edit server [server] [flags]
Examples
# Edit servers
sake edit server
# Edit server <server>
sake edit server <server>
Options
-h, --help help for server
edit spec
Edit spec
Synopsis
Open up sake config file in $EDITOR and go to specs section.
edit spec [spec] [flags]
Examples
# Edit specs
sake edit spec
# Edit spec <spec>
sake edit spec <spec>
Options
-h, --help help for spec
edit target
Edit target
Synopsis
Open up sake config file in $EDITOR and go to targets section.
edit target [target] [flags]
Examples
# Edit targets
sake edit target
# Edit target <target>
sake edit target <target>
Options
-h, --help help for target
edit task
Edit task
Synopsis
Open up sake config file in $EDITOR and go to tasks section.
edit task [task] [flags]
Examples
# Edit tasks
sake edit task
# Edit task <task>
sake edit task <task>
Options
-h, --help help for task
list servers
List servers
Synopsis
List servers.
list servers [servers] [flags]
Examples
# List all servers
sake list servers
# List servers <server>
sake list servers <server>
# List servers that have tag <tag>
sake list servers --tags <tag>
Options
-v, --invert invert matching on servers
-r, --regex string filter servers on host regex
-t, --tags strings filter servers by tags
-H, --all-headers select all server headers
--headers strings set headers (default [server,host,tags,desc])
-h, --help help for servers
Options inherited from parent commands
-o, --output string set table output [table|table-2|table-3|table-4|html|markdown|json|csv] (default "table")
--theme string set theme (default "default")
list tasks
List tasks
Synopsis
List tasks.
list tasks [tasks] [flags]
Examples
# List all tasks
sake list tasks
# List task <task>
sake list task <task>
Options
-H, --all-headers select all task headers
--headers strings set headers (default [task,desc])
-h, --help help for tasks
Options inherited from parent commands
-o, --output string set table output [table|table-2|table-3|table-4|html|markdown|json|csv] (default "table")
--theme string set theme (default "default")
list tags
List tags
Synopsis
List tags.
list tags [tags] [flags]
Examples
# List all tags
sake list tags
Options
--headers strings set headers (default [tag,server])
-h, --help help for tags
Options inherited from parent commands
-o, --output string set table output [table|table-2|table-3|table-4|html|markdown|json|csv] (default "table")
--theme string set theme (default "default")
list targets
List targets
Synopsis
List targets.
list targets [targets] [flags]
Examples
# List all targets
sake list targets
Options
--headers strings set headers. Available headers: name, regex (default [target,desc,all,servers,tags,regex,invert,limit,limit_p])
-h, --help help for targets
Options inherited from parent commands
-o, --output string set table output [table|table-2|table-3|table-4|html|markdown|json|csv] (default "table")
--theme string set theme (default "default")
list specs
List specs
Synopsis
List specs.
list specs [specs] [flags]
Examples
# List all specs
sake list specs
Options
--headers strings set headers (default [spec,desc,describe,list_hosts,order,silent,hidden,strategy,batch,batch_p,forks,output,print,any_errors_fatal,max_fail_percentage,ignore_errors,ignore_unreachable,omit_empty,report,verbose,confirm,step])
-h, --help help for specs
Options inherited from parent commands
-o, --output string set table output [table|table-2|table-3|table-4|html|markdown|json|csv] (default "table")
--theme string set theme (default "default")
describe servers
Describe servers
Synopsis
Describe servers.
describe servers [servers] [flags]
Examples
# Describe all servers
sake describe servers
# Describe servers that have tag <tag>
sake describe servers --tags <tag>
Options
-t, --tags strings filter servers by their tag
-r, --regex string filter servers on host regex
-v, --invert invert matching on servers
-e, --edit edit server
-h, --help help for servers
describe tasks
Describe tasks
Synopsis
Describe tasks.
describe tasks [tasks] [flags]
Examples
# Describe all tasks
sake describe tasks
# Describe task <task>
sake describe task <task>
Options
-e, --edit edit task
-h, --help help for tasks
describe targets
Describe targets
Synopsis
Describe targets.
describe targets [targets] [flags]
Examples
# Describe all targets
sake describe targets
Options
-e, --edit edit target
-h, --help help for targets
describe specs
Describe specs
Synopsis
Describe specs.
describe specs [specs] [flags]
Examples
# Describe all specs
sake describe specs
Options
-e, --edit edit spec
-h, --help help for specs
ssh
ssh to server
Synopsis
ssh to server.
ssh <server> [flags]
Examples
# ssh to server
sake ssh <server>
Options
-i, --identity-file string set identity file for all servers
--password string set ssh password for all servers
-h, --help help for ssh
gen
Generate man page
Synopsis
Generate man page
gen [flags]
Options
-d, --dir string directory to save manpage to (default "./")
-h, --help help for gen