chef-runner

command module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2015 License: Apache-2.0 Imports: 20 Imported by: 0

README

chef-runner - The fastest way to run Chef cookbooks

Build Status GoDoc Gitter

The goal of chef-runner is to speed up your Chef development and testing workflow by allowing you to change infrastructure code and get immediate feedback.

chef-runner was originally developed as a fast alternative to the painfully slow vagrant provision. The tool has since evolved and can now be used to rapidly provision not only local Vagrant machines but also remote hosts like EC2 instances.

To further shorten the feedback loop, chef-runner integrates with Vim so you don't have to leave your editor while hacking on recipes.

For more background, check out my blog post "Telling people about chef-runner".

Quick Start

Install chef-runner using one of the available installation methods.

Use chef-runner for local cookbook development with Vagrant:

$ cd my-awesome-cookook/
$ vagrant up
$ chef-runner # will run recipes/default.rb inside the Vagrant machine

Compose Chef run list using flexible recipe syntax:

$ chef-runner recipes/foo.rb
$ chef-runner ::foo                        # same as above
$ chef-runner dogs::bar
$ chef-runner dogs                         # same as dogs::default
$ chef-runner recipes/foo.rb bar dogs::baz # will run recipes in given order
$ chef-runner recipe[cats],dogs::bar       # standard Chef syntax

Provision a specific Vagrant machine in a multi-machine environment:

$ chef-runner -M db ...

Provision any Vagrant machine by specifying the machine's UUID:

$ chef-runner -M a748337 ...

Use chef-runner for local cookbook development with Test Kitchen:

$ kitchen converge default-ubuntu-1404
$ chef-runner -K default-ubuntu-1404 ...

Use chef-runner as a general purpose Chef provisioner for any system reachable over SSH:

$ cd directory-with-berksfile/
$ chef-runner -H user@example.local apt::default dogs::bar

(chef-runner automatically resolves cookbook dependencies using tools like Berkshelf or Librarian-Chef.)

Use chef-runner to provision the host system without running commands as root:

$ chef-runner -L --sudo=false

If required, install a specific version of Chef before provisioning:

$ chef-runner -i 11.12.8 ...

More Information

License

Please see LICENSE for licensing details.

Want to help?

See the Development wiki page for details on how to get the source code and build chef-runner locally.

Author

chef-runner is being developed by Mathias Lafeldt.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package bundler helps to run external commands with Bundler if the environment indicates that Bundler should be used.
Package bundler helps to run external commands with Bundler if the environment indicates that Bundler should be used.
chef
cookbook
Package cookbook reads and manipulates data from Chef cookbooks stored on disk.
Package cookbook reads and manipulates data from Chef cookbooks stored on disk.
cookbook/metadata
Package metadata parses Chef cookbook metadata.
Package metadata parses Chef cookbook metadata.
omnibus
Package omnibus allows to install Chef using Omnibus Installer.
Package omnibus allows to install Chef using Omnibus Installer.
runlist
Package runlist builds Chef run lists.
Package runlist builds Chef run lists.
Package cli handles the command line interface of chef-runner.
Package cli handles the command line interface of chef-runner.
Package driver defines the interface that all drivers need to implement.
Package driver defines the interface that all drivers need to implement.
kitchen
Package kitchen implements a driver based on Test Kitchen.
Package kitchen implements a driver based on Test Kitchen.
local
Package local implements a driver that provisions the host system.
Package local implements a driver that provisions the host system.
ssh
Package ssh implements a driver based on OpenSSH.
Package ssh implements a driver based on OpenSSH.
vagrant
Package vagrant implements a driver based on Vagrant.
Package vagrant implements a driver based on Vagrant.
Package exec runs external commands.
Package exec runs external commands.
Package log provides functions for logging debug, informational, warning, and error messages to standard output/error.
Package log provides functions for logging debug, informational, warning, and error messages to standard output/error.
Package openssh provides a wrapper around the ssh command-line tool, allowing to run commands on remote machines.
Package openssh provides a wrapper around the ssh command-line tool, allowing to run commands on remote machines.
Package provisioner defines the interface that all provisioners need to implement.
Package provisioner defines the interface that all provisioners need to implement.
chefsolo
Package chefsolo implements a provisioner using Chef Solo.
Package chefsolo implements a provisioner using Chef Solo.
Package resolver provides a generic cookbook dependency resolver.
Package resolver provides a generic cookbook dependency resolver.
berkshelf
Package berkshelf implements a cookbook dependency resolver based on Berkshelf.
Package berkshelf implements a cookbook dependency resolver based on Berkshelf.
dir
Package dir implements a cookbook dependency resolver that merely copies cookbook directories to the right place.
Package dir implements a cookbook dependency resolver that merely copies cookbook directories to the right place.
librarian
Package librarian implements a cookbook dependency resolver based on Librarian-Chef.
Package librarian implements a cookbook dependency resolver based on Librarian-Chef.
Package rsync provides a wrapper around the fast rsync file copying tool.
Package rsync provides a wrapper around the fast rsync file copying tool.
Package util provides various utility functions.
Package util provides various utility functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL