Releases: namshi/godo
v1.3.0 - Bugfixes, small improvements
A few small tweaks, so this could have probably be a minor release as well, as it's focused on polishing weird behaviors rather than addition new features.
Everyone is invited to upgrade :)
List of servers (#25)
Now godo will output a list of groups / servers if none matches your input:
Terminating SSH sessions (#23)
Due to a glitch in the way we were istantiating the SSH sessions, remote commands would not be terminated after a ctrl + c
. By using a PTY, everything looks good :)
Catching "exceptions" (#10)
Earlier, godo will epically panic
if an error would happen while connecting via SSH. Now it simply reports the error and proceed with its job (ie. keep executing the command on the other servers).
v1.2.0 - Upgrade to Go 1.4
bumped version
v1.1.0 - Local execution
This release introduce the local
alias for servers. When you run a command with @ local
you will be executing it on the local machine where godo is running.
This means that you can use godo
as a simple wrapper for system commands or other remote execution tools like salt. We have a couple ideas on how to take advantage of this, will address this later on.
v1.0.0 - First release
With this first release godo
is born :)
~/projects/namshi/godo (master ✔) ᐅ ./build/godo-v1.0.0-linux_amd64
NAME:
godo - Stop SSHing into your server and run the same old commands. Automate. Automate. Automate.
USAGE:
godo [global options] command [command options] [arguments...]
VERSION:
v1.0.0
AUTHOR(S):
COMMANDS:
help, h Shows a list of commands or help for one command
uptime Retrieves uptime info for all machines
slow-queries mysql-log -n 10
nginx-logs sudo tail -10f /var/log/nginx/access.log
GLOBAL OPTIONS:
--config, -c "./godo.yml" configuration file to be used for running godo [$GODO_CONFIG]
--help, -h show help
--version, -v print the version
We can currently do most of the stuff we need to implement, and other things are noted down in the issues.
You can already define your configuration
servers:
web1:
address: "xxx.xxx.xx.xxx:22"
user: "me"
web2:
address: "xxx.xxx.xx.xxx:22"
user: "me"
db:
address: "xxx.xxx.xx.xxx:22"
tunnel: "tunnel.yourcompany.com:22"
user: "me"
groups:
all: [web, db]
web: [web1, web2]
commands:
uptime:
target: all
exec: "uptime"
description: "Retrieves uptime info for all machines"
nginx-logs:
target: web
exec: "sudo tail -10f /var/log/nginx/access.log"
hostfile: "/home/YOU/.ssh/known_hosts"
timeout: 5
and then run godo:
godo uptime
godo uptime @ web
godo uptime @ web1
godo uptime @ all
Feel free to open an issue, but have a look at the gotchas section first ;-)