Skip to content

Releases: namshi/godo

v1.3.0 - Bugfixes, small improvements

07 May 21:06
Compare
Choose a tag to compare

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:

available

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).

panic

v1.2.0 - Upgrade to Go 1.4

02 May 17:25
Compare
Choose a tag to compare

v1.1.0 - Local execution

30 Apr 08:22
Compare
Choose a tag to compare

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

17 Apr 23:35
Compare
Choose a tag to compare

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 ;-)