Changelog
0.15.1
Fixes
- Fix resolving identity file in ssh config correctly when ~ is used.
- Fix public file not found when using ssh config
0.15.0
Features
- Add support for multiple bastions
Misc
- Update to go 1.20
Fixes
- Fix issue where user/port was not set correctly when using shorthand format for host/user/port definition
0.14.0
Features
- Add ability to modify prefix in text and table themes
- Hide tasks from auto-completion via spec attribute
hidden: true - Add print option to limit output to stdout|stderr
- Default to one of following identity files if no identity specified
~/.ssh/id_rsa,~/.ssh/id_ecdsa,~/.ssh/id_dsa - Add ability to modify default timeout for ssh connections
Fixes
- [BREAKING CHANGE]: No more duplicate tasks, specs, targets, and themes
- Small fix when user config is specified but not found
- Fix some small validation issues with batch and batch-p
- A bunch of smaller fixes
0.13.0
Features
- Add ability to register variables which are available to the next tasks
- Add option to ignore errors for indiviual tasks
- Add flag/spec
--list-hostsoption to list targetted hosts - Support output options
csv/json/none - Add new task strategies: linear, host_pinned, free
linear: execute task for each host before proceeding to the next task (default)host_pinned: executes tasks (serial) for a host before proceeding to the next hostfree: tasks without waiting for other tasks
- Add host ordering
inventory: The order is as provided by the inventoryreverse_inventory: The order is the reverse of the inventorysorted: Hosts are alphabetically sorted by hostreverse_sorted: Hosts are sorted by host in reverse alphabetical orderrandom: Hosts are randomly ordered
- Determine number of hosts to run in parallel
batch: specify number of hostsbatch_p: specify number of hosts in percentageforks: max number of concurrent processes
- Add option to display reports at end of tasks by using
--reportflag or specifying it inspecdefinitionrecap: show basic reportrc: show return code for each host and tasktask: show task status for each host and tasktime: show time report for each host and taskall: show all reports
- Add confirm/step task capability
confirm: for the root taskstep: per task and host
Fixes
- Fix omitting attribute
alignwhen creating a theme - Abort tasks prematurely when running in parallel and AnyErrorsFatal set to true
- Fix server range (previously
[2:100]didn't work as strings were compared) - Fix empty error for non existing working directory and update how work_dir works
Minor
- Add option to omit empty columns via flag
--omit-empty-columnsand specomit_empty_columns - Add option to specify target and spec via flags
--target/--spec - Add description to targets and specs
- Add server identity to environment variables
- Add silent/describe attribute to spec definition
- Add ssh user flag option
Changes
- [BREAKING CHANGE]: Deprecated the parallel flag, use batch/batch_p/forks instead
- [BREAKING CHANGE]: Rename default environment variables from
SAKE_SERVER_*toS_*, and remove task default environment variables - [BREAKING CHANGE]: Shorthand flag for silent is now
Q - Switch to default shell when evaluating inventory
- If no command name is set on nested tasks, assign
task-$iinstead oftask - If
--limitflag is higher than available hosts, then select all hosts filtered - Update flag sorting
- Rename
--omit-emptyto--omit-empty-rows - Building
sakewith go 1.19
0.12.1
Fixes
- Fix port out of range when using shorthand format for hosts
0.12.0
Features
- Add hosts keyword that supports having multiple hosts per server definition
- Specify as a list
- Specify as a string containing range (
192.168.0.[1:10:2]) - Use
inventoryattribute (kubectl get nodes)
- Add silent flag to supress
Running...spinner when running tasks - Support connection string instead of 3 fields:
user@host:port - Support resolving IdentityFile in ssh config (
~/.ssh/config) - Support resolving Includes in ssh config (
~/.ssh/config) - Support glob pattern for Hosts (
Host *) - Add bastion headers to list servers
- Add flags/target config
--limit&--limit-pto limit number of servers task is run on - Add filtering servers on host regex
- Add invert flag on filtering servers
- Add flag
--all-headersfor tasks and servers - Add sub-commands edit/list/describe [specs|targets]
- Add 3 new table outputs (table-2, table-3, table-4)
- [BREAKING CHANGE]: Simplified theme config, now it only accepts manipulation of rows and headers, not specific properties
Fixes
- Use IdentitiesOnly if user specifies a IdentityFile
- Default to
Name, if description is not set, in auto-completion for tasks - Support lowercase ssh config keys (previously they had to be PascalCase)
Deprecated
- [BREAKING CHANGE]: Removed environment variables
SAKE_IDENTITY_FILEandSAKE_PASSWORD, users can use flags instead
0.11.0
Fixes
- Fix not being able to parse ssh config if match keyword found 35
Features
- Support Bastion/jump host 32
0.10.3
Fixes
- Previously known_hosts didn't work correctly when specifying port other than 22
- Fix authentication failures 32
Features
- Resolve hosts from ssh_config
- Support hashing known_host entries
0.10.2
Fixes
- Allow duplicate hosts
- Fix correct exit code on remote/local task errors (#27)
- Fix local WorkDir when it's not explicitly set
0.10.1
Fixes
- Small fix for WorkDir being related to calling file when server is local
0.10.0
Fixes
- Fix issue where ipv6 was not added correctly to known_hosts (brackets without ip)
- Fix TTY in sub-tasks
- Only task or cmd allowed in inline
tasksdefinition
Changes
-
[BREAKING CHANGE]: Updated prefix handling in text output, now supports golang templating
- Old config:
themes:
default:
text:
header: true
header_prefix: "TASK"
header_char: "*"- New config:
themes:
default:
text:
header: '{{ .Style "TASK" "bold" }} {{ .Name }}'
header_filler: "*" -
WorkDir is now relative to the calling task for local commands, previously it was to the users
cwd -
Remove debug flag
Features
- Add sub-command
checkto check for configuration errors - Add
shellproperty to override the default shell
0.1.8
Fixes
- Support ipv6 hosts (#13)
- Fix identity_file when set via config (#7)
- Don't apply work_dir when running local tasks
0.1.7
Fixes
- Use uint16 for port (#4)
0.1.6
This is the initial release. Basic functionality is supported: running tasks over multiple remote servers and localhost.
- Add
known_hosts_fileflag/env/config setting anddisable_verify_hostconfig setting - Add
identity/passwordpair flag/config setting - Add sub-command ssh to easily ssh into servers
- Add
tty/local/attachconfig settings - Support nested tasks and pass down environment variables
- Add flag/config setting
ignore-unreachableflag for ignoring unreachable servers - Add flag/config setting
any-errors-fatalfor stopping all tasks for all servers when error is encountered - Add
work_dirconfig setting for servers and tasks