Whyrun mode - how-to


Ohai again Chef devs!

The last couple of weeks have been busy. Aside from ChefConf, many of
us here have been cleaning, testing the heck out of, and otherwise
polishing the whyrun changes that I wrote about a earlier this month.
It’s looking good for a ‘tech preview’ inclusion in the upcoming Chef
10.14 release.

The other thing previewed in the whyrun branch is output formatters -
providing a way to replace or supplement the usual Chef logging output
with semantically aware formatted output. Formatters and the
underlying new event model is another feature we (actually, mostly
Dan@opscode) have been hard at work on over the last few weeks.

The whyrun branch is now in sync with master and will be kept
synchronized until we merge whyrun into master ahead of 10.14. Output
formatters will initially be disabled, except for whyrun mode where
usage is automatic. You can tell chef to use an output formatter with
the "-F " flag.

Attached is a screen capture showing a segment of whyrun mode
execution, using the new “doc” output formatter.

If you want to try whyrun mode ahead of release*, you can follow these
steps from your nearest neighborhood shell:

  1. git clone git@github.com:opscode/chef.git
  2. cd chef/chef
  3. git checkout whyrun
  4. rake gem; gem install pkg/chef-0.10.11.gem **
  5. Then for any given convergence: chef-client --why-run -l fatal ***, ****
  6. To check out the new doc formatter: chef-client -l fatal -F doc
  • Initial focus for whyrun mode is for the *nix OS’s - it may not
    behave well on Windows boxes.
    ** version number will change as we update master and whyrun branches.
    *** -l fatal is recommended to suppress the standard logging output –
    it gets messy when combined with formatted output.
    **** chef-solo also supports --why-run and -F options.

Any early feedback you can provide would be greatly appreciated.


Marc Paradise
Software Development Engineer

Twitter: @MarcParadise
irc: mparadise
Skype: marc.paradise