Chef-runner v0.3.0

Ohai Chefs!

chef-runner version 0.3.0 is out!

The goal of this release is to “ssh all the things” in order to
support any system reachable over SSH. In addition to local Vagrant
machines, chef-runner can now provision remote machines like EC2
instances. To achieve this, I made the following changes:

  • The argument passed to -H now has the format
    [user@]hostname[:port], allowing you to optionally change SSH user
    and port. (Other SSH settings can be set via ~/.ssh/config.)

  • rsync over SSH is used to transfer files to /tmp/chef-runner on
    the target machine. chef-runner no longer depends on /vagrant being
    mounted.

  • With Vagrant, instead of running commands via vagrant ssh, feed
    the output of vagrant ssh-config into OpenSSH. The same SSH
    configuration is used to upload files with rsync.

Other changes:

  • Introduce flexible driver concept (inspired by Test Kitchen). A
    driver is responsible for running commands on and uploading files to a
    machine using whatever mechanism is available. chef-runner currently
    contains drivers for Vagrant and SSH, but more can – and will – be
    added.

  • Always transfer files with rsync --compress to speed things up.

  • Remove Cucumber scenarios. They didn’t add much value to the Go
    tests and were very slow. Now Travis builds are much faster.

  • More and better Go tests.

  • More and better log messages.

  • Option -h outputs more useful usage text (the one shown in the README).

Hope you enjoy this release!

-Mathias

PS: The next release will delight users of Test Kitchen. :wink: