summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel DeLeo <dan@opscode.com>2011-04-08 10:24:03 -0700
committerDaniel DeLeo <dan@opscode.com>2011-04-08 10:24:03 -0700
commit5bebedbd1230c63feb06bc1621a3c07d8ecaec9c (patch)
tree6595cf72ad881b52d5ffc21b4de8bbb188c75324
parentf5b41b25570ae3e0a37bc7e214d33fd27a0f5e88 (diff)
parent5a0a3b7867d1e23579da8be9132f7be149ba8346 (diff)
downloadchef-5bebedbd1230c63feb06bc1621a3c07d8ecaec9c.tar.gz
Merge branch 'CHEF-2201'
-rw-r--r--chef/Rakefile40
-rw-r--r--chef/distro/common/html/knife-bootstrap.1.html182
-rw-r--r--chef/distro/common/html/knife-client.1.html216
-rw-r--r--chef/distro/common/html/knife-configure.1.html170
-rw-r--r--chef/distro/common/html/knife-cookbook-site.1.html166
-rw-r--r--chef/distro/common/html/knife-cookbook.1.html233
-rw-r--r--chef/distro/common/html/knife-data-bag.1.html234
-rw-r--r--chef/distro/common/html/knife-environment.1.html93
-rw-r--r--chef/distro/common/html/knife-exec.1.html93
-rw-r--r--chef/distro/common/html/knife-index.1.html125
-rw-r--r--chef/distro/common/html/knife-node.1.html268
-rw-r--r--chef/distro/common/html/knife-recipe.1.html92
-rw-r--r--chef/distro/common/html/knife-role.1.html136
-rw-r--r--chef/distro/common/html/knife-search.1.html102
-rw-r--r--chef/distro/common/html/knife-ssh.1.html101
-rw-r--r--chef/distro/common/html/knife-status.1.html97
-rw-r--r--chef/distro/common/html/knife-tag.1.html93
-rw-r--r--chef/distro/common/html/knife.1.html362
-rw-r--r--chef/distro/common/man/man1/chef-indexer.142
-rw-r--r--chef/distro/common/man/man1/chef-solr-indexer.155
-rw-r--r--chef/distro/common/man/man1/knife-bootstrap.1137
-rw-r--r--chef/distro/common/man/man1/knife-client.198
-rw-r--r--chef/distro/common/man/man1/knife-configure.188
-rw-r--r--chef/distro/common/man/man1/knife-cookbook-site.191
-rw-r--r--chef/distro/common/man/man1/knife-cookbook.1242
-rw-r--r--chef/distro/common/man/man1/knife-data-bag.1130
-rw-r--r--chef/distro/common/man/man1/knife-environment.113
-rw-r--r--chef/distro/common/man/man1/knife-exec.113
-rw-r--r--chef/distro/common/man/man1/knife-index.129
-rw-r--r--chef/distro/common/man/man1/knife-node.1153
-rw-r--r--chef/distro/common/man/man1/knife-recipe.113
-rw-r--r--chef/distro/common/man/man1/knife-role.164
-rw-r--r--chef/distro/common/man/man1/knife-search.137
-rw-r--r--chef/distro/common/man/man1/knife-ssh.133
-rw-r--r--chef/distro/common/man/man1/knife-status.117
-rw-r--r--chef/distro/common/man/man1/knife-tag.113
-rw-r--r--chef/distro/common/man/man1/knife.1346
-rw-r--r--chef/distro/common/man/man1/shef.1 (renamed from chef/distro/common/man/man8/shef.8)0
-rw-r--r--chef/distro/common/man/man8/chef-server-webui.8 (renamed from chef/distro/common/man/man1/chef-server-webui.1)0
-rw-r--r--chef/distro/common/man/man8/chef-server.8 (renamed from chef/distro/common/man/man1/chef-server.1)0
-rw-r--r--chef/distro/common/man/man8/chef-solr-rebuild.837
-rw-r--r--chef/distro/common/man/man8/chef-solr.8 (renamed from chef/distro/common/man/man1/chef-solr.1)0
-rw-r--r--chef/distro/common/man/man8/knife.81349
-rw-r--r--chef/distro/common/markdown/knife.mkd865
-rw-r--r--chef/distro/common/markdown/man1/knife-bootstrap.mkd88
-rw-r--r--chef/distro/common/markdown/man1/knife-client.mkd101
-rw-r--r--chef/distro/common/markdown/man1/knife-configure.mkd70
-rw-r--r--chef/distro/common/markdown/man1/knife-cookbook-site.mkd69
-rw-r--r--chef/distro/common/markdown/man1/knife-cookbook.mkd136
-rw-r--r--chef/distro/common/markdown/man1/knife-data-bag.mkd117
-rw-r--r--chef/distro/common/markdown/man1/knife-environment.mkd8
-rw-r--r--chef/distro/common/markdown/man1/knife-exec.mkd9
-rw-r--r--chef/distro/common/markdown/man1/knife-index.mkd30
-rw-r--r--chef/distro/common/markdown/man1/knife-node.mkd147
-rw-r--r--chef/distro/common/markdown/man1/knife-recipe.mkd24
-rw-r--r--chef/distro/common/markdown/man1/knife-role.mkd79
-rw-r--r--chef/distro/common/markdown/man1/knife-search.mkd56
-rw-r--r--chef/distro/common/markdown/man1/knife-ssh.mkd64
-rw-r--r--chef/distro/common/markdown/man1/knife-status.mkd38
-rw-r--r--chef/distro/common/markdown/man1/knife-tag.mkd8
-rw-r--r--chef/distro/common/markdown/man1/knife.mkd261
-rw-r--r--chef/lib/chef/knife/configure.rb4
-rw-r--r--chef/lib/chef/knife/help.rb98
63 files changed, 5723 insertions, 2352 deletions
diff --git a/chef/Rakefile b/chef/Rakefile
index a3a6a6efd5..94045326a2 100644
--- a/chef/Rakefile
+++ b/chef/Rakefile
@@ -28,6 +28,9 @@ GEM_NAME = "chef"
spec = eval(File.read("chef.gemspec"))
+# This has to be here or else the docs get generated *after* the gem is created
+task :gem => 'docs:man'
+
Rake::GemPackageTask.new(spec) do |pkg|
pkg.gem_spec = spec
end
@@ -55,10 +58,39 @@ task :uninstall do
sh %{gem uninstall #{GEM_NAME} -x -v #{Chef::VERSION} }
end
-desc "create a gemspec file"
-task :make_spec do
- File.open("#{GEM_NAME}.gemspec", "w") do |file|
- file.puts spec.to_ruby
+RONN_OPTS = "--manual='Chef Manual' --organization='Chef #{Chef::VERSION}' --date='#{Time.new.strftime('%Y-%m-%d')}'"
+
+namespace :docs do
+ desc "Regenerate manpages from markdown"
+ task :man
+
+ desc "Regenerate HTML manual from markdown"
+ task :html
+
+ if system('which ronn > /dev/null')
+ Dir['distro/common/markdown/man1/*.mkd'].each do |mkd|
+ basename = File.basename(mkd, '.mkd')
+ manfile = "distro/common/man/man1/#{basename}.1"
+ htmlfile = "distro/common/html/#{basename}.1.html"
+ file(manfile => mkd) do
+ sh "ronn -r #{RONN_OPTS} #{mkd} --pipe > #{manfile}"
+ end
+ task :man => manfile
+
+ file(htmlfile => mkd) do
+ sh "ronn -5 #{RONN_OPTS} --style=toc #{mkd} --pipe > #{htmlfile}"
+ end
+
+ task :html => htmlfile
+ end
+ else
+ puts "get with the program and install ronn"
end
+
+ task :all => [:man, :html]
end
+task :docs => "docs:all"
+
+
+
diff --git a/chef/distro/common/html/knife-bootstrap.1.html b/chef/distro/common/html/knife-bootstrap.1.html
new file mode 100644
index 0000000000..7dc83ac2ab
--- /dev/null
+++ b/chef/distro/common/html/knife-bootstrap.1.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-bootrap(1) - Install Chef Client on a remote host</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-bootrap(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-bootrap(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-bootrap</code> - <span class="man-whatis">Install Chef Client on a remote host</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>bootstrap</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-i</code>, <code>--identity-file IDENTITY_FILE</code></dt><dd>The SSH identity file used for authentication</dd>
+<dt><code>-N</code>, <code>--node-name NAME</code></dt><dd>The Chef node name for your new node</dd>
+<dt><code>-P</code>, <code>--ssh-password PASSWORD</code></dt><dd>The ssh password</dd>
+<dt><code>-x</code>, <code>--ssh-user USERNAME</code></dt><dd>The ssh username</dd>
+<dt><code>--prerelease</code></dt><dd>Install pre-release Chef gems</dd>
+<dt><code>-r</code>, <code>--run-list RUN_LIST</code></dt><dd>Comma separated list of roles/recipes to apply</dd>
+<dt><code>-P</code>, <code>--ssh-password PASSWORD</code></dt><dd>The ssh password</dd>
+<dt><code>-x</code>, <code>--ssh-user USERNAME</code></dt><dd>The ssh username</dd>
+<dt><code>--template-file TEMPLATE</code></dt><dd>Full path to location of template to use</dd>
+<dt class="flush"><code>--sudo</code></dt><dd>Execute the bootstrap via sudo</dd>
+<dt><code>-d</code>, <code>--distro DISTRO</code></dt><dd>Bootstrap a distro using a template</dd>
+</dl>
+
+
+<p>Performs a Chef Bootstrap on the target node. The goal of the bootstrap
+is to get Chef installed on the target system so it can run Chef Client
+with a Chef Server. The main assumption is a baseline OS installation
+exists. This sub-command is used internally by some cloud computing
+server create commands and the others will be migrated in a future
+version of Chef.</p>
+
+<p>The bootstrap sub-command supports supplying a template to perform the
+bootstrap steps. If the distro is not specified (via <code>-d</code> or <code>--distro</code>
+option), an Ubuntu 10.04 host bootstrapped with RubyGems is assumed. The
+<strong>DISTRO</strong> value corresponds to the base filename of the template, in
+other words <code>DISTRO</code>.erb. A template file can be specified with the
+<code>--template-file</code> option in which case the <strong>DISTRO</strong> is not used. The
+sub-command looks in the following locations for the template to use:</p>
+
+<ul>
+<li><code>bootstrap</code> directory in the installed Chef Knife library.</li>
+<li><code>bootstrap</code> directory in the <code>$PWD/.chef</code>.</li>
+<li><code>bootstrap</code> directory in the users <code>$HOME/.chef</code>.</li>
+</ul>
+
+
+<p>The default bootstrap templates are scripts that get copied to the target node (FQDN). As of Chef 0.9.8, the following distros are supported:</p>
+
+<ul>
+<li>centos5-gems</li>
+<li>fedora13-gems</li>
+<li>ubuntu10.04-gems</li>
+<li>ubuntu10.04-apt</li>
+</ul>
+
+
+<p>The gems installations will use RubyGems 1.3.6 and Chef installed as a gem. The apt installation will use the Opscode APT repository. The RubyGems installation requires installing gems with native extensions, so development related packages (ruby-dev, build-essential) are installed. These are not installed with the apt installation, as native extensions are already compiled in the required packages.</p>
+
+<p>In addition to handling the software installation, these bootstrap templates do the following:</p>
+
+<ul>
+<li>Write the validation.pem per the local knife configuration.</li>
+<li>Write a default config file for Chef (<code>/etc/chef/client.rb</code>) using values from the <code>knife.rb</code>.</li>
+<li>Create a JSON attributes file containing the specified run list and run Chef.</li>
+</ul>
+
+
+<p>In the case of the RubyGems, the <code>client.rb</code> will be written from scratch with a minimal set of values; see <strong>EXAMPLES</strong>. In the case of APT Package installation, <code>client.rb</code> will have the <code>validation_client_name</code> appended if it is not set to <code>chef-validator</code> (default config value), and the <code>node_name</code> will be added if <code>chef_node_name</code> option is specified.</p>
+
+<p>When this is complete, the bootstrapped node will have:</p>
+
+<ul>
+<li>Latest Chef version installed from RubyGems or APT Packages from Opscode. This may be a later version than the local system.</li>
+<li>Be validated with the configured Chef Server.</li>
+<li>Have run Chef with its default run list if one is specfied.</li>
+</ul>
+
+
+<p>Additional custom bootstrap templates can be created and stored in <code>.chef/bootstrap/DISTRO.erb</code>, replacing <strong>DISTRO</strong> with the value passed with the <code>-d</code> or <code>--distro</code> option. See <strong>EXAMPLES</strong> for more information.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-ssh</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x61;&#x64;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#x6f;&#x6d;" data-bare-link="true">&#97;&#100;&#x61;&#109;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#100;&#101;&#46;&#x63;&#111;&#x6d;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#106;&#111;&#115;&#104;&#x75;&#97;&#x40;&#x6f;&#112;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#111;&#109;" data-bare-link="true">&#106;&#111;&#115;&#x68;&#117;&#97;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#x65;&#x2e;&#99;&#x6f;&#x6d;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-bootrap(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-client.1.html b/chef/distro/common/html/knife-client.1.html
new file mode 100644
index 0000000000..47ae998d1c
--- /dev/null
+++ b/chef/distro/common/html/knife-client.1.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-client(1) - Manage Chef API Clients</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#CLIENT-SUB-COMMANDS">CLIENT SUB-COMMANDS</a>
+ <a href="#BULK-DELETE">BULK DELETE</a>
+ <a href="#CREATE">CREATE</a>
+ <a href="#DELETE">DELETE</a>
+ <a href="#EDIT">EDIT</a>
+ <a href="#LIST">LIST</a>
+ <a href="#REREGISTER">REREGISTER</a>
+ <a href="#SHOW">SHOW</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-client(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-client(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-client</code> - <span class="man-whatis">Manage Chef API Clients</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>client</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Clients are identities used for communication with the Chef Server API,
+roughly equivalent to user accounts on the Chef Server, except that
+clients only communicate with the Chef Server API and are authenticated
+via request signatures.</p>
+
+<p>In the typical case, there will be one client object on the server for
+each node, and the corresponding client and node will have identical
+names.</p>
+
+<p>In the Chef authorization model, there is one special client, the
+"validator", which is authorized to create new non-administrative
+clients but has minimal privileges otherwise. This identity is used as a
+sort of "guest account" to create a client identity when initially
+setting up a host for management with Chef.</p>
+
+<h2 id="CLIENT-SUB-COMMANDS">CLIENT SUB-COMMANDS</h2>
+
+<h2 id="BULK-DELETE">BULK DELETE</h2>
+
+<p><strong>knife client bulk delete</strong> <em>regex</em> <em>(options)</em></p>
+
+<p>Delete clients where the client name matches the regular expression
+<em>regex</em> on the Chef Server. The regular expression should be given as a
+quoted string, and not surrounded by forward slashes.</p>
+
+<h2 id="CREATE">CREATE</h2>
+
+<p><strong>knife client create</strong> <em>client name</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--admin </code></dt><dd>Create the client as an admin</dd>
+<dt><code>-f</code>, <code>--file FILE</code></dt><dd>Write the key to a file</dd>
+</dl>
+
+
+<p>Create a new client. This generates an RSA keypair. The private key will
+be displayed on <em>STDOUT</em> or written to the named file. The public half
+will be stored on the Server. For <em>chef-client</em> systems, the private key
+should be copied to the system as <code>/etc/chef/client.pem</code>.</p>
+
+<p>Admin clients should be created for users that will use <em>knife</em> to
+access the API as an administrator. The private key will generally be
+copied to <code>~/.chef/client\_name.pem</code> and referenced in the <code>knife.rb</code>
+configuration file.</p>
+
+<h2 id="DELETE">DELETE</h2>
+
+<p><strong>knife client delete</strong> <em>client name</em> <em>(options)</em></p>
+
+<p>Deletes a registered client.</p>
+
+<h2 id="EDIT">EDIT</h2>
+
+<p><strong>client edit</strong> <em>client name</em> <em>(options)</em></p>
+
+<p>Edit a registered client.</p>
+
+<h2 id="LIST">LIST</h2>
+
+<p><strong>client list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd> Show corresponding URIs</dd>
+</dl>
+
+
+<p>List all registered clients.</p>
+
+<h2 id="REREGISTER">REREGISTER</h2>
+
+<p><strong>client reregister</strong> <em>client name</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-f</code>, <code>--file FILE</code></dt><dd>Write the key to a file</dd>
+</dl>
+
+
+<p>Regenerate the RSA keypair for a client. The public half will be stored
+on the server and the private key displayed on <em>STDOUT</em> or written to
+the named file. This operation will invalidate the previous keypair used
+by the client, preventing it from authenticating with the Chef Server.
+Use care when reregistering the validator client.</p>
+
+<h2 id="SHOW">SHOW</h2>
+
+<p><strong>client show</strong> <em>client name</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--attribute ATTR</code></dt><dd>Show only one attribute</dd>
+</dl>
+
+
+<p>Show a client. Output format is determined by the --format option.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-node</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x61;&#x64;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#x6f;&#x6d;" data-bare-link="true">&#97;&#100;&#x61;&#109;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#100;&#101;&#46;&#x63;&#111;&#x6d;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#106;&#111;&#115;&#104;&#x75;&#97;&#x40;&#x6f;&#112;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#111;&#109;" data-bare-link="true">&#106;&#111;&#115;&#x68;&#117;&#97;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#x65;&#x2e;&#99;&#x6f;&#x6d;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-client(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-configure.1.html b/chef/distro/common/html/knife-configure.1.html
new file mode 100644
index 0000000000..6c06ad7782
--- /dev/null
+++ b/chef/distro/common/html/knife-configure.1.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-configure(1) - Generate configuration files for knife or Chef Client</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#CONFIGURE-SUBCOMMANDS">CONFIGURE SUBCOMMANDS</a>
+ <a href="#EXAMPLES">EXAMPLES</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-configure(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-configure(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-configure</code> - <span class="man-whatis">Generate configuration files for knife or Chef Client</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>configure</strong> [client] <em>(options)</em></p>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Generates a knife.rb configuration file interactively. When given the
+--initial option, also creates a new administrative user.</p>
+
+<h2 id="CONFIGURE-SUBCOMMANDS">CONFIGURE SUBCOMMANDS</h2>
+
+<p><strong>knife configure</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-i</code>, <code>--initial</code></dt><dd>Create an initial API Client</dd>
+<dt><code>-r</code>, <code>--repository REPO</code></dt><dd>The path to your chef-repo</dd>
+</dl>
+
+
+<p>Create a configuration file for knife. This will prompt for values to
+enter into the file. Default values are listed in square brackets if no
+other entry is typed. See <strong>knife</strong>(1) for a description of
+configuration options.</p>
+
+<p><strong>knife configure client</strong> <em>directory</em></p>
+
+<p>Read the <em>knife.rb</em> config file and generate a config file suitable for
+use in <em>/etc/chef/client.rb</em> and copy the validation certificate into
+the specified <em>directory</em>.</p>
+
+<h2 id="EXAMPLES">EXAMPLES</h2>
+
+<ul>
+<li><p>On a freshly installed Chef Server, use <em>knife configure -i</em> to
+create an administrator and knife configuration file. Leave the
+field blank to accept the default value. On most systems, the
+default values are acceptable.</p>
+
+<p>user@host$ knife configure -i<br />
+Please enter the chef server URL: [http://localhost:4000]<br />
+Please enter a clientname for the new client: [username]<br />
+Please enter the existing admin clientname: [chef-webui]<br />
+Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem]<br />
+Please enter the validation clientname: [chef-validator]<br />
+Please enter the location of the validation key: [/etc/chef/validation.pem]<br />
+Please enter the path to a chef repository (or leave blank):<br />
+Creating initial API user...<br />
+Created (or updated) client[username]<br />
+Configuration file written to /home/username/.chef/knife.rb</p>
+
+<p>This creates a new administrator client named <em>username</em>, writes
+a configuration file to <em>/home/username/.chef/knife.rb</em>, and the
+private key to <em>/home/username/.chef/username.pem</em>. The
+configuration file and private key may be copied to another system
+to facilitate administration of the Chef Server from a remote
+system. Depending on the value given for the Chef Server URL, you
+may need to modify that setting after copying to a remote host.</p></li>
+</ul>
+
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife</strong>(1) <strong>knife-client</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x61;&#x64;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#x6f;&#x6d;" data-bare-link="true">&#97;&#100;&#x61;&#109;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#100;&#101;&#46;&#x63;&#111;&#x6d;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#106;&#111;&#115;&#104;&#x75;&#97;&#x40;&#x6f;&#112;&#x73;&#99;&#x6f;&#x64;&#101;&#x2e;&#99;&#111;&#109;" data-bare-link="true">&#106;&#111;&#115;&#x68;&#117;&#97;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#x65;&#x2e;&#99;&#x6f;&#x6d;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-configure(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-cookbook-site.1.html b/chef/distro/common/html/knife-cookbook-site.1.html
new file mode 100644
index 0000000000..cdbea4a899
--- /dev/null
+++ b/chef/distro/common/html/knife-cookbook-site.1.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-cookbook-site(1) - Install and update open source cookbooks</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#COOKBOOK-SITE-SUB-COMMANDS">COOKBOOK SITE SUB-COMMANDS</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-cookbook-site(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-cookbook-site(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-cookbook-site</code> - <span class="man-whatis">Install and update open source cookbooks</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>cookbook site</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="COOKBOOK-SITE-SUB-COMMANDS">COOKBOOK SITE SUB-COMMANDS</h2>
+
+<p>The following sub-commands are still in the context of cookbooks, but they make use of Opscode's Cookbook Community site, <em>http://cookbooks.opscode.com/</em>. That site has an API, and these sub-commands utilize that API, rather than the Chef Server API.</p>
+
+<p><strong>cookbook site download COOKBOOK [VERSION]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-f</code>, <code>--file FILE</code></dt><dd>The filename to write to</dd>
+</dl>
+
+
+<p>Downloads a specific cookbook from the Community site, optionally specifying a certain version.</p>
+
+<p><strong>cookbook site list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd>Show corresponding URIs</dd>
+</dl>
+
+
+<p>Lists available cookbooks from the Community site.</p>
+
+<p><strong>cookbook site search QUERY</strong> <em>(options)</em></p>
+
+<p>Searches the Community site with the specified query.</p>
+
+<p><strong>cookbook site share COOKBOOK CATEGORY</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-k</code>, <code>--key KEY</code></dt><dd>API Client Key</dd>
+<dt><code>-u</code>, <code>--user USER</code></dt><dd>API Client Username</dd>
+<dt><code>-o</code>, <code>--cookbook-path PATH:PATH</code></dt><dd>A colon-separated path to look for cookbooks in</dd>
+</dl>
+
+
+<p>Uploads the specified cookbook using the given category to the Opscode cookbooks site. Requires a login user and certificate for the Opscode Cookbooks site. See <strong>EXAMPLES</strong> for usage if the Opscode user and certificate pair are not used for authenticating with the Chef Server. In other words, if the Chef Server is not the Opscode Platform.</p>
+
+<p><strong>cookbook site unshare COOKBOOK</strong></p>
+
+<p>Stops sharing the specified cookbook on the Opscode cookbooks site.</p>
+
+<p><strong>cookbook site show COOKBOOK [VERSION]</strong> <em>(options)</em></p>
+
+<p>Shows information from the site about a particular cookbook.</p>
+
+<p><strong>cookbook site vendor COOKBOOK [VERSION]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-d</code>, <code>--dependencies</code></dt><dd>Grab dependencies automatically</dd>
+</dl>
+
+
+<p>Uses <code>git</code> version control in conjunction with the cookbook site to download upstream cookbooks. A new vendor branch is created in git, the cookbook downloaded from the site and untarred, then the master branch is merged. This allows the user to track upstream changes to cookbooks while merging in customizations. If <em>-d</em> is specified, all the cookbooks it depends on (via metadata <em>dependencies</em>) are downloaded and untarred as well, each using their own vendor branch.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-environment</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#111;&#x3a;&#97;&#100;&#x61;&#109;&#64;&#111;&#x70;&#115;&#99;&#111;&#100;&#x65;&#x2e;&#99;&#x6f;&#109;" data-bare-link="true">&#x61;&#x64;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#x63;&#111;&#x64;&#101;&#x2e;&#x63;&#111;&#x6d;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#x61;&#105;&#108;&#x74;&#x6f;&#58;&#x6a;&#111;&#115;&#x68;&#x75;&#97;&#64;&#x6f;&#x70;&#x73;&#x63;&#111;&#100;&#x65;&#46;&#99;&#111;&#109;" data-bare-link="true">&#x6a;&#x6f;&#115;&#104;&#x75;&#x61;&#64;&#111;&#x70;&#115;&#99;&#x6f;&#x64;&#x65;&#x2e;&#x63;&#111;&#109;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-cookbook-site(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-cookbook.1.html b/chef/distro/common/html/knife-cookbook.1.html
new file mode 100644
index 0000000000..01a6d9357b
--- /dev/null
+++ b/chef/distro/common/html/knife-cookbook.1.html
@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-cookbook(1) - Upload and manage Chef cookbooks</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#COOKBOOK-SUB-COMMANDS">COOKBOOK SUB-COMMANDS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-cookbook(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-cookbook(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-cookbook</code> - <span class="man-whatis">Upload and manage Chef cookbooks</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>cookbook</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="COOKBOOK-SUB-COMMANDS">COOKBOOK SUB-COMMANDS</h2>
+
+<p>Cookbooks are the fundamental unit of distribution in Chef. They encapsulate all recipes of resources and assets used to configure a particular aspect of the infrastructure. The following sub-commands can be used to manipulate the cookbooks stored on the Chef Server.</p>
+
+<p><strong>cookbook bulk delete REGEX</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-p</code>, <code>--purge</code></dt><dd>Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.</dd>
+</dl>
+
+
+<p>Delete cookbooks on the Chef Server based on a regular expression. The regular expression (<em>REGEX</em>) should be in quotes, not in //'s.</p>
+
+<p><strong>cookbook create COOKBOOK</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-o</code>, <code>--cookbook-path PATH</code></dt><dd>The directory where the cookbook will be created</dd>
+<dt><code>-r</code>, <code>--readme-format FORMAT</code></dt><dd>Format of the README file</dd>
+<dt><code>-C</code>, <code>--copyright COPYRIGHT</code></dt><dd>Name of Copyright holder</dd>
+<dt><code>-I</code>, <code>--license LICENSE</code></dt><dd>License for cookbook, apachev2 or none</dd>
+<dt><code>-E</code>, <code>--email EMAIL</code></dt><dd>Email address of cookbook maintainer</dd>
+</dl>
+
+
+<p>This is a helper command that creates a new cookbook directory in the <code>cookbook_path</code>. The following directories and files are created for the named cookbook.</p>
+
+<ul>
+<li>COOKBOOK/attributes</li>
+<li>COOKBOOK/definitions</li>
+<li>COOKBOOK/files/default</li>
+<li>COOKBOOK/libraries</li>
+<li>COOKBOOK/metadata.rb</li>
+<li>COOKBOOK/providers</li>
+<li>COOKBOOK/README.rdoc</li>
+<li>COOKBOOK/recipes/default.rb</li>
+<li>COOKBOOK/resources</li>
+<li>COOKBOOK/templates/default</li>
+</ul>
+
+
+<p>Supported README formats are 'rdoc' (default), 'md', 'mkd', 'txt'. The README file will be written with the specified extension and a set of helpful starting headers.</p>
+
+<p>Specify <code>-C</code> or <code>--copyright</code> with the name of the copyright holder as your name or your company/organization name in a quoted string. If this value is not specified an all-caps string <code>YOUR_COMPANY_NAME</code> is used which can be easily changed with find/replace.</p>
+
+<p>Specify <code>-I</code> or <code>--license</code> with the license that the cookbook is distributed under for sharing with other people or posting to the Opscode Cookbooks site. Be aware of the licenses of files you put inside the cookbook and follow any restrictions they describe. When using <code>none</code> (default) or <code>apachev2</code>, comment header text and metadata file are pre-filled. The <code>none</code> license will be treated as non-redistributable.</p>
+
+<p>Specify <code>-E</code> or <code>--email</code> with the email address of the cookbook's maintainer. If this value is not specified, an all-caps string <code>YOUR_EMAIL</code> is used which can easily be changed with find/replace.</p>
+
+<p>The cookbook copyright, license and email settings can be filled in the <code>knife.rb</code>, for example with default values:</p>
+
+<pre><code>cookbook_copyright "YOUR_COMPANY_NAME"
+cookbook_license "none"
+cookbook_email "YOUR_EMAIL"
+</code></pre>
+
+<p><strong>cookbook delete COOKBOOK [VERSION]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--all</code></dt><dd>Delete all versions</dd>
+<dt><code>-p</code>, <code>--purge</code></dt><dd>Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.</dd>
+</dl>
+
+
+<p>Delete the specified <em>VERSION</em> of the named <em>COOKBOOK</em>. If no version is specified, and only one version exists on the server, that version will be deleted. If multiple versions are available on the server, you will be prompted for a version to delete.</p>
+
+<p><strong>cookbook download COOKBOOK [VERSION]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-d</code>, <code>--dir DOWNLOAD_DIRECTORY</code></dt><dd>The directory to download the cookbook into</dd>
+<dt><code>-f</code>, <code>--force</code></dt><dd>Overwrite an existing directory with the download</dd>
+<dt><code>-N</code>, <code>--latest</code></dt><dd>Download the latest version of the cookbook</dd>
+</dl>
+
+
+<p>Download a cookbook from the Chef Server. If no version is specified and only one version exists on the server, that version will be downloaded. If no version is specified and multiple versions are available on the server, you will be prompted for a version to download.</p>
+
+<p><strong>cookbook list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd>Show corresponding URIs</dd>
+</dl>
+
+
+<p>List all the cookbooks.</p>
+
+<p><strong>cookbook metadata COOKBOOK</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--all</code></dt><dd>Generate metadata for all cookbooks, rather than just a single cookbook</dd>
+<dt><code>-o</code>, <code>--cookbook-path PATH:PATH</code></dt><dd>A colon-separated path to look for cookbooks in</dd>
+</dl>
+
+
+<p>Generate cookbook metadata for the named <em>COOKBOOK</em>. The <em>PATH</em> used here specifies where the cookbooks directory is located and corresponds to the <code>cookbook_path</code> configuration option.</p>
+
+<p><strong>cookbook metadata from FILE</strong> <em>(options)</em></p>
+
+<p>Load the cookbook metadata from a specified file.</p>
+
+<p><strong>cookbook show COOKBOOK [VERSION] [PART] [FILENAME]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-f</code>, <code>--fqdn FQDN </code></dt><dd>The FQDN of the host to see the file for</dd>
+<dt><code>-p</code>, <code>--platform PLATFORM </code></dt><dd>The platform to see the file for</dd>
+<dt><code>-V</code>, <code>--platform-version VERSION</code></dt><dd>The platform version to see the file for</dd>
+</dl>
+
+
+<p>Show a particular part of a <em>COOKBOOK</em> for the specified <em>VERSION</em>. <em>PART</em> can be one of:</p>
+
+<ul>
+<li><em>attributes</em></li>
+<li><em>definitions</em></li>
+<li><em>files</em></li>
+<li><em>libraries</em></li>
+<li><em>providers</em></li>
+<li><em>recipes</em></li>
+<li><em>resources</em></li>
+<li><em>templates</em></li>
+</ul>
+
+
+<p><strong>cookbook test [COOKBOOKS...]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--all</code></dt><dd>Test all cookbooks, rather than just a single cookbook</dd>
+<dt><code>-o</code>, <code>--cookbook-path PATH:PATH</code></dt><dd>A colon-separated path to look for cookbooks in</dd>
+</dl>
+
+
+<p>Test the specified cookbooks for syntax errors. This uses the built-in Ruby syntax checking option for files in the cookbook ending in <code>.rb</code>, and the ERB syntax check for files ending in <code>.erb</code> (templates).</p>
+
+<p><strong>cookbook upload [COOKBOOKS...]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--all</code></dt><dd>Upload all cookbooks, rather than just a single cookbook</dd>
+<dt><code>-o</code>, <code>--cookbook-path PATH:PATH</code></dt><dd>A colon-separated path to look for cookbooks in</dd>
+</dl>
+
+
+<p>Uploads the specified cookbooks to the Chef Server. The actual upload executes a number of commands, most of which occur on the local machine. The cookbook is staged in a temporary location. Then the <code>cookbook_path</code> (or <code>-o PATH</code>) is processed to search for the named cookbook, and each occurance is copied in the order specified. A syntax check is performed a la <code>cookbook test</code>, above. The metadata is generated, a la <code>cookbook metadata</code>. A <span class="man-ref">gzip<span class="s">(1)</span></span>'ed, <span class="man-ref">tar<span class="s">(1)</span></span> file is created, and is uploaded to the server.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-cookbook(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-data-bag.1.html b/chef/distro/common/html/knife-data-bag.1.html
new file mode 100644
index 0000000000..8ff901d287
--- /dev/null
+++ b/chef/distro/common/html/knife-data-bag.1.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-data-bag(1) - Store arbitrary data on a Chef Server</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#DATA-BAG-SUB-COMMANDS">DATA BAG SUB-COMMANDS</a>
+ <a href="#CREATE">CREATE</a>
+ <a href="#DELETE">DELETE</a>
+ <a href="#EDIT">EDIT</a>
+ <a href="#FROM-FILE">FROM FILE</a>
+ <a href="#LIST">LIST</a>
+ <a href="#SHOW">SHOW</a>
+ <a href="#ENCRYPTION-SUPPORT">ENCRYPTION SUPPORT</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-data-bag(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-data-bag(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-data-bag</code> - <span class="man-whatis">Store arbitrary data on a Chef Server</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>data bag</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Data bags are stores of arbitrary JSON data. Each data bag is a
+collection that may contain many items. Data Bag Items are indexed by
+the Chef Server and can be searched via <strong>knife-search</strong>(1).</p>
+
+<p>Data bags are available to all nodes configured by <strong>chef-client</strong>(8),
+and are therefore a convenient mechanism to store global information,
+such as lists of administrative accounts that should be configured on
+all hosts.</p>
+
+<h2 id="DATA-BAG-SUB-COMMANDS">DATA BAG SUB-COMMANDS</h2>
+
+<h2 id="CREATE">CREATE</h2>
+
+<p><strong>knife data bag create</strong> <em>bag name</em> [item id] <em>(options)</em></p>
+
+<dl>
+<dt><code>-s</code>, <code>--secret SECRET</code></dt><dd>A secret key used to encrypt the data bag item. See <strong>encryption support</strong> below.</dd>
+<dt><code>--secret-file SECRET_FILE</code></dt><dd>The path to a file containing the secret key to be used to encrypt
+the data bag item.</dd>
+</dl>
+
+
+<p>If <em>item id</em> is given, creates a new, empty data bag item and opens it for
+editing in your editor. The data bag will be created if it does not
+exist.</p>
+
+<p>If <em>item id</em> is not given, the data bag will be created.</p>
+
+<h2 id="DELETE">DELETE</h2>
+
+<p><strong>knife data bag delete</strong> <em>bag name</em> [item id] <em>(options)</em></p>
+
+<p>Delete a data bag, or an item from a data bag.</p>
+
+<h2 id="EDIT">EDIT</h2>
+
+<p><strong>knife data bag edit</strong> <em>bag name</em> <em>item id</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-s</code>, <code>--secret SECRET</code></dt><dd>A secret key used to encrypt the data bag item. See <strong>encryption support</strong> below.</dd>
+<dt><code>--secret-file SECRET_FILE</code></dt><dd>The path to a file containing the secret key to be used to encrypt
+the data bag item.</dd>
+</dl>
+
+
+<p>Edit an item in a data bag.</p>
+
+<h2 id="FROM-FILE">FROM FILE</h2>
+
+<p><strong>knife data bag from file</strong> <em>bag name</em> <em>file</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-s</code>, <code>--secret SECRET</code></dt><dd>A secret key used to encrypt the data bag item. See <strong>encryption support</strong> below.</dd>
+<dt><code>--secret-file SECRET_FILE</code></dt><dd>The path to a file containing the secret key to be used to encrypt
+the data bag item.</dd>
+</dl>
+
+
+<p>Load a data bag item from a JSON file. If <em>file</em> is a relative or
+absolute path to the file, that file will be used. Otherwise, the <em>file</em>
+parameter is treated as the base name of a data bag file in a Chef
+repository, and <code>knife</code> will search for the file in
+<code>./data_bags/bag_name/file</code>. For example <code>knife data bag from file users
+dan.json</code> would attempt to load the file <code>./data_bags/users/dan.json</code>.</p>
+
+<h2 id="LIST">LIST</h2>
+
+<p><strong>knife data bag list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd>Show corresponding URIs</dd>
+</dl>
+
+
+<p>Lists the data bags that exist on the Chef Server.</p>
+
+<h2 id="SHOW">SHOW</h2>
+
+<p><strong>knife data bag show BAG [ITEM]</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-s</code>, <code>--secret SECRET</code></dt><dd>A secret key used to encrypt the data bag item. See <strong>encryption support</strong> below.</dd>
+<dt><code>--secret-file SECRET_FILE</code></dt><dd>The path to a file containing the secret key to be used to encrypt
+the data bag item.</dd>
+</dl>
+
+
+<p>Show a specific data bag or an item in a data bag. The output will be
+formatted according to the --format option.</p>
+
+<h2 id="ENCRYPTION-SUPPORT">ENCRYPTION SUPPORT</h2>
+
+<p>Data Bag Items may be encrypted to keep their contents secret. This may
+be desireable when storing sensitive information such as database
+passwords, API keys, etc.</p>
+
+<p>Data Bag Item encryption uses the AES-256 CBC symmetric key algorithm.</p>
+
+<p><strong>CAVEATS:</strong> Keys are not encrypted; only values are encrypted. The "id"
+of a Data Bag Item is not encrypted, since it is used by Chef Server to
+store the item in its database. For example, given the following data bag item:</p>
+
+<pre><code>{"id": "important_passwords", "secret_password": "opensesame"}
+</code></pre>
+
+<p>The key "secret_password" will be visible to an evesdropper, but the
+value "opensesame" will be protected. Both the key "id" and its value
+"important_passwords" will be visible to an evesdropper.</p>
+
+<p>Chef Server does not provide a secure mechanism for distributing
+encryption keys.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-search</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#109;&#97;&#105;&#108;&#x74;&#111;&#x3a;&#x61;&#100;&#97;&#109;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#101;&#x2e;&#99;&#111;&#x6d;" data-bare-link="true">&#x61;&#x64;&#97;&#x6d;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#x65;&#46;&#x63;&#x6f;&#x6d;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#x6d;&#x61;&#x69;&#108;&#116;&#x6f;&#58;&#106;&#111;&#115;&#104;&#117;&#x61;&#64;&#x6f;&#112;&#x73;&#x63;&#111;&#100;&#x65;&#x2e;&#99;&#111;&#x6d;" data-bare-link="true">&#x6a;&#111;&#x73;&#104;&#x75;&#x61;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#x64;&#x65;&#46;&#99;&#x6f;&#109;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. http://wiki.opscode.com/display/chef/Home</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-data-bag(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-environment.1.html b/chef/distro/common/html/knife-environment.1.html
new file mode 100644
index 0000000000..236478a7f7
--- /dev/null
+++ b/chef/distro/common/html/knife-environment.1.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-environment(1) - Define cookbook policies for the environments in your infrastructure</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#ENVIRONMENT-SUBCOMMANDS">ENVIRONMENT SUBCOMMANDS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-environment(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-environment(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-environment</code> - <span class="man-whatis">Define cookbook policies for the environments in your infrastructure</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>environment</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="ENVIRONMENT-SUBCOMMANDS">ENVIRONMENT SUBCOMMANDS</h2>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-environment(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-exec.1.html b/chef/distro/common/html/knife-exec.1.html
new file mode 100644
index 0000000000..4bc2ad6413
--- /dev/null
+++ b/chef/distro/common/html/knife-exec.1.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-exec(1) - Run user scripts using the Chef API DSL</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#EXEC-SUBCOMMAND">EXEC SUBCOMMAND</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-exec(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-exec(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-exec</code> - <span class="man-whatis">Run user scripts using the Chef API DSL</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>exec</strong> <em>(options)</em></p>
+
+<h2 id="EXEC-SUBCOMMAND">EXEC SUBCOMMAND</h2>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-exec(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-index.1.html b/chef/distro/common/html/knife-index.1.html
new file mode 100644
index 0000000000..b99c0d4890
--- /dev/null
+++ b/chef/distro/common/html/knife-index.1.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-index(1) - Rebuild the search index on a Chef Server</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-index(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-index(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-index</code> - <span class="man-whatis">Rebuild the search index on a Chef Server</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>index rebuild</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-y</code>, <code>--yes</code></dt><dd>don't bother to ask if I'm sure</dd>
+</dl>
+
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Rebuilds all the search indexes on the server. This is accomplished by
+deleting all objects from the search index, and then forwarding each
+item in the database to <strong>chef-expander</strong>(8) via <strong>rabbitmq-server</strong>(1).
+Depending on the number of objects in the database, it may take some
+time for all objects to be indexed and available for search.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-search</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#111;&#x3a;&#x61;&#100;&#97;&#109;&#64;&#x6f;&#112;&#x73;&#x63;&#x6f;&#x64;&#x65;&#46;&#99;&#x6f;&#109;" data-bare-link="true">&#x61;&#100;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#x63;&#x6f;&#100;&#101;&#x2e;&#99;&#111;&#109;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#97;&#x69;&#x6c;&#x74;&#x6f;&#58;&#x6a;&#111;&#x73;&#104;&#117;&#x61;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#100;&#101;&#x2e;&#x63;&#x6f;&#109;" data-bare-link="true">&#106;&#x6f;&#x73;&#104;&#x75;&#97;&#x40;&#111;&#x70;&#115;&#x63;&#111;&#100;&#101;&#46;&#x63;&#111;&#109;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-index(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-node.1.html b/chef/distro/common/html/knife-node.1.html
new file mode 100644
index 0000000000..3489def547
--- /dev/null
+++ b/chef/distro/common/html/knife-node.1.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-node(1) - Manage the hosts in your infrastructure</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#NODE-SUB-COMMANDS">NODE SUB-COMMANDS</a>
+ <a href="#BULK-DELETE">BULK DELETE</a>
+ <a href="#CREATE">CREATE</a>
+ <a href="#DELETE">DELETE</a>
+ <a href="#EDIT">EDIT</a>
+ <a href="#FROM-FILE">FROM FILE</a>
+ <a href="#LIST">LIST</a>
+ <a href="#RUN_LIST-ADD">RUN_LIST ADD</a>
+ <a href="#RUN_LIST-REMOVE">RUN_LIST REMOVE</a>
+ <a href="#SHOW">SHOW</a>
+ <a href="#RUN-LIST-ITEM-FORMAT">RUN LIST ITEM FORMAT</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ <a href="#DOCUMENTATION">DOCUMENTATION</a>
+ <a href="#CHEF">CHEF</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-node(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-node(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-node</code> - <span class="man-whatis">Manage the hosts in your infrastructure</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>node</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Nodes are data structures that represent hosts configured with Chef.
+Nodes have a <strong>name</strong>, a String that uniquely identifies the node,
+<strong>attributes</strong>, a nested Hash of properties that describe how the host
+should be configured, a <strong>chef_environment</strong>, a String representing the
+environment to which the node belongs, and a <strong>run_list</strong>, an ordered
+list of <strong>recipes</strong> or <strong>roles</strong> that chef-client should apply when
+configuring a host.</p>
+
+<p>When a host communicates with a Chef Server, it authenticates using its
+<strong>node_name</strong> for identification and signs its reqests with a private
+key. The Server validates the request by looking up a <strong>client</strong> object
+with a name identical to the <strong>node_name</strong> submitted with the request
+and verifes the signature using the public key for that <strong>client</strong>
+object. <strong>NOTE</strong> that the <strong>client</strong> is a different object in the
+system. It is associated with a node by virtue of having a matching
+name.</p>
+
+<p>By default <strong>chef-client</strong>(8) will create a node using the FQDN of the
+host for the node name, though this may be overridden by configuration
+settings.</p>
+
+<h2 id="NODE-SUB-COMMANDS">NODE SUB-COMMANDS</h2>
+
+<h2 id="BULK-DELETE">BULK DELETE</h2>
+
+<p><strong>knife node bulk delete</strong> <em>regex</em> <em>(options)</em></p>
+
+<p>Deletes nodes for which the name matches the regular expression <em>regex</em>
+on the Chef Server. The regular expression should be given in quotes,
+and should not be surrounded with forward slashes (as is typical of
+regular expression literals in scripting languages).</p>
+
+<h2 id="CREATE">CREATE</h2>
+
+<p><strong>knife node create</strong> <em>name</em> <em>(options)</em></p>
+
+<p>Create a new node. Unless the --no-editor option is given, an empty node
+object will be created and displayed in your text editor. If the editor
+exits with a successful exit status, the node data will be posted to the
+Chef Server to create the node.</p>
+
+<h2 id="DELETE">DELETE</h2>
+
+<p><strong>knife node delete</strong> <em>name</em> <em>(options)</em></p>
+
+<p>Deletes the node identified by <em>name</em> on the Chef Server.</p>
+
+<h2 id="EDIT">EDIT</h2>
+
+<p><strong>knife node edit</strong> <em>name</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--all</code></dt><dd>Display all node data in the editor. By default, default, override,
+and automatic attributes are not shown.</dd>
+</dl>
+
+
+<p>Edit the node identified by <em>name</em>. Like <strong>knife node create</strong>, the node
+will be displayed in your text editor unless the -n option is present.</p>
+
+<h2 id="FROM-FILE">FROM FILE</h2>
+
+<p><strong>knife node from file</strong> <em>file</em> <em>(options)</em></p>
+
+<p>Create a node from a JSON format <em>file</em>.</p>
+
+<h2 id="LIST">LIST</h2>
+
+<p><strong>knife node list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd>Show corresponding URIs</dd>
+</dl>
+
+
+<p>List all nodes.</p>
+
+<h2 id="RUN_LIST-ADD">RUN_LIST ADD</h2>
+
+<p><strong>knife node run_list add</strong> <em>name</em> <em>run list item</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--after ITEM</code></dt><dd>Place the ENTRY in the run list after ITEM</dd>
+</dl>
+
+
+<p>Add the <em>run list item</em> to the node's <code>run_list</code>. See Run list</p>
+
+<h2 id="RUN_LIST-REMOVE">RUN_LIST REMOVE</h2>
+
+<p><strong>knife node run_list remove</strong> <em>node name</em> <em>run list item</em> <em>(options)</em></p>
+
+<p>Remove the <em>run list item</em> from the node's <code>run_list</code>.</p>
+
+<h2 id="SHOW">SHOW</h2>
+
+<p><strong>knife node show</strong> <em>node name</em> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--attribute [ATTR]</code></dt><dd>Show only one attribute</dd>
+<dt><code>-r</code>, <code>--run-list </code></dt><dd>Show only the run list</dd>
+<dt><code>-F</code>, <code>--format FORMAT</code></dt><dd>Display the node in a different format.</dd>
+<dt><code>-m</code>, <code>--medium</code></dt><dd>Display more, but not all, of the node's data when using the default
+<em>summary</em> format</dd>
+</dl>
+
+
+<p>Displays the node identified by <em>node name</em> on stdout. The amount of
+content displayed and the output format are modified by the --format
+option. Valid formats are:</p>
+
+<ul>
+<li>summary:
+displays the node in a custom, summarized format</li>
+<li>text
+displays the node data in its entirety using the colorized tree
+display</li>
+<li>json:
+displays the node in JSON format</li>
+<li>yaml:
+displays the node in YAML format</li>
+<li>pp
+displays the node using Ruby's pretty printer.</li>
+</ul>
+
+
+<p>For brevity, only the first character of the format is required, for
+example, -Fj will produce JSON format output.</p>
+
+<h2 id="RUN-LIST-ITEM-FORMAT">RUN LIST ITEM FORMAT</h2>
+
+<p>Run list items may be either roles or recipes. When adding a role to a
+run list, the correct syntax is "role[ROLE_NAME]"</p>
+
+<p>When adding a recipe to a run list, there are several valid formats:</p>
+
+<dl>
+<dt>Fully Qualified Format</dt><dd>"recipe[COOKBOOK::RECIPE_NAME]", for example, "recipe[chef::client]"</dd>
+<dt>Cookbook Recipe Format</dt><dd>For brevity, the recipe part of the fully qualified format may be omitted, and recipes specified as "COOKBOOK::RECIPE_NAME", e.g., "chef::client"</dd>
+<dt>Default Recipe Format</dt><dd>When adding the default recipe of a cookbook to a run list, the recipe name may be omitted as well, e.g., "chef::default" may be written as just "chef"</dd>
+</dl>
+
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p> <strong>knife-client</strong>(1) <strong>knife-search</strong>(1) <strong>knife-role</strong>(1)</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p> Chef was written by Adam Jacob <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#111;&#x3a;&#x61;&#100;&#97;&#109;&#64;&#x6f;&#112;&#x73;&#x63;&#x6f;&#x64;&#x65;&#46;&#99;&#x6f;&#109;" data-bare-link="true">&#x61;&#100;&#x61;&#x6d;&#x40;&#111;&#x70;&#x73;&#x63;&#x6f;&#100;&#101;&#x2e;&#99;&#111;&#109;</a> with many contributions from the community.</p>
+
+<h2 id="DOCUMENTATION">DOCUMENTATION</h2>
+
+<p> This manual page was written by Joshua Timberman <a href="&#109;&#97;&#x69;&#x6c;&#x74;&#x6f;&#58;&#x6a;&#111;&#x73;&#104;&#117;&#x61;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#100;&#101;&#x2e;&#x63;&#x6f;&#109;" data-bare-link="true">&#106;&#x6f;&#x73;&#104;&#x75;&#97;&#x40;&#111;&#x70;&#115;&#x63;&#111;&#100;&#101;&#46;&#x63;&#111;&#109;</a>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<h2 id="CHEF">CHEF</h2>
+
+<p> Knife is distributed with Chef. <a href="http://wiki.opscode.com/display/chef/Home" data-bare-link="true">http://wiki.opscode.com/display/chef/Home</a></p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-node(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-recipe.1.html b/chef/distro/common/html/knife-recipe.1.html
new file mode 100644
index 0000000000..64d29ff82a
--- /dev/null
+++ b/chef/distro/common/html/knife-recipe.1.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-recipe(1) - List the recipes available on a Chef Server</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-recipe(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-recipe(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-recipe</code> - <span class="man-whatis">List the recipes available on a Chef Server</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>recipe list [PATTERN]</strong></p>
+
+<p>List the recipes available on the server. The results shown can be limited with the optional PATTERN, which is a regular expression. PATTERN should be given in quotes, without slashes.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-recipe(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-role.1.html b/chef/distro/common/html/knife-role.1.html
new file mode 100644
index 0000000000..f43e3d9f80
--- /dev/null
+++ b/chef/distro/common/html/knife-role.1.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-role(1) - Group common configuration settings</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#ROLE-SUB-COMMANDS">ROLE SUB-COMMANDS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-role(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-role(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-role</code> - <span class="man-whatis">Group common configuration settings</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>role</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="ROLE-SUB-COMMANDS">ROLE SUB-COMMANDS</h2>
+
+<p><strong>role bulk delete REGEX</strong> <em>(options)</em></p>
+
+<p>Delete roles on the Chef Server based on a regular expression. The regular expression (<em>REGEX</em>) should be in quotes, not in //'s.</p>
+
+<p><strong>role create ROLE</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-d</code>, <code>--description</code></dt><dd>The role description</dd>
+</dl>
+
+
+<p>Create a new role.</p>
+
+<p><strong>role delete ROLE</strong> <em>(options)</em></p>
+
+<p>Delete a role.</p>
+
+<p><strong>role edit ROLE</strong> <em>(options)</em></p>
+
+<p>Edit a role.</p>
+
+<p><strong>role from file FILE</strong> <em>(options)</em></p>
+
+<p>Create or update a role from a role Ruby DSL (<code>.rb</code>) or JSON file.</p>
+
+<p><strong>role list</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-w</code>, <code>--with-uri</code></dt><dd>Show corresponding URIs</dd>
+</dl>
+
+
+<p>List roles.</p>
+
+<p><strong>role show ROLE</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--attribute ATTR</code></dt><dd>Show only one attribute</dd>
+</dl>
+
+
+<p>Show a specific role.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-role(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-search.1.html b/chef/distro/common/html/knife-search.1.html
new file mode 100644
index 0000000000..9135cacd36
--- /dev/null
+++ b/chef/distro/common/html/knife-search.1.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-search(1) - Find objects on a Chef Server by query</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-search(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-search(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-search</code> - <span class="man-whatis">Find objects on a Chef Server by query</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>search INDEX QUERY</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--attribute ATTR</code></dt><dd>Show only one attribute</dd>
+<dt><code>-i</code>, <code>--id-only</code></dt><dd>Show only the ID of matching objects</dd>
+<dt><code>-R</code>, <code>--rows INT</code></dt><dd>The number of rows to return</dd>
+<dt><code>-r</code>, <code>--run-list</code></dt><dd>Show only the run list</dd>
+<dt><code>-o</code>, <code>--sort SORT</code></dt><dd>The order to sort the results in</dd>
+<dt><code>-b</code>, <code>--start ROW</code></dt><dd>The row to start returning results at</dd>
+</dl>
+
+
+<p>Search indexes are a feature of the Chef Server and the search sub-command allows querying any of the available indexes using SOLR query syntax. The following data types are indexed for search: <em>node</em>, <em>role</em>, <em>client</em>, <em>data bag</em>.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-search(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-ssh.1.html b/chef/distro/common/html/knife-ssh.1.html
new file mode 100644
index 0000000000..671f12c335
--- /dev/null
+++ b/chef/distro/common/html/knife-ssh.1.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-ssh(1) - Run a command or interactive session on multiple remote hosts</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-ssh(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-ssh(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-ssh</code> - <span class="man-whatis">Run a command or interactive session on multiple remote hosts</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>ssh QUERY COMMAND</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-a</code>, <code>--attribute ATTR </code></dt><dd>The attribute to use for opening the connection - default is fqdn</dd>
+<dt><code>-C</code>, <code>--concurrency NUM </code></dt><dd>The number of concurrent connections</dd>
+<dt><code>-m</code>, <code>--manual-list </code></dt><dd>QUERY is a space separated list of servers</dd>
+<dt><code>-P</code>, <code>--ssh-password PASSWORD</code></dt><dd>The ssh password</dd>
+<dt><code>-x</code>, <code>--ssh-user USERNAME </code></dt><dd>The ssh username</dd>
+</dl>
+
+
+<p>The <em>ssh</em> sub-command opens an ssh session to each of the nodes in the search results of the <em>QUERY</em>. This sub-command requires that the net-ssh-multi and highline Ruby libraries are installed. On Debian systems, these are the libnet-ssh-multi-ruby and libhighline-ruby packages. They can also be installed as RubyGems (net-ssh-multi and highline, respectively).</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-ssh(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-status.1.html b/chef/distro/common/html/knife-status.1.html
new file mode 100644
index 0000000000..dd1b3079e2
--- /dev/null
+++ b/chef/distro/common/html/knife-status.1.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-status(1) - Display status information for the nodes in your infrastructure</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-status(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-status(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-status</code> - <span class="man-whatis">Display status information for the nodes in your infrastructure</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>status</strong> <em>(options)</em></p>
+
+<dl>
+<dt><code>-r</code>, <code>--run-list RUN_LIST</code></dt><dd>Show the run list</dd>
+</dl>
+
+
+<p>The <em>status</em> sub-command searches the Chef Server for all nodes and displays information about the last time the node checked into the server and executed a <code>node.save</code>. The fields displayed are the relative checkin time, the node name, it's operating system platform and version, the fully-qualified domain name and the default IP address. If the <code>-r</code> option is given, the node's run list will also be displayed. Note that depending on the configuration of the nodes, the FQDN and IP displayed may not be publicly reachable.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-status(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife-tag.1.html b/chef/distro/common/html/knife-tag.1.html
new file mode 100644
index 0000000000..dfcd9c4be7
--- /dev/null
+++ b/chef/distro/common/html/knife-tag.1.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife-tag(1) - Apply tags to nodes on a Chef Server</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#TAG-SUBCOMMANDS">TAG SUBCOMMANDS</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife-tag(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife-tag(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife-tag</code> - <span class="man-whatis">Apply tags to nodes on a Chef Server</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <strong>tag</strong> <em>subcommand</em> <em>(options)</em></p>
+
+<h2 id="TAG-SUBCOMMANDS">TAG SUBCOMMANDS</h2>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife-tag(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/html/knife.1.html b/chef/distro/common/html/knife.1.html
new file mode 100644
index 0000000000..b5c1d4d2a8
--- /dev/null
+++ b/chef/distro/common/html/knife.1.html
@@ -0,0 +1,362 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
+ <title>knife(1) - Chef Server REST API utility</title>
+ <style type='text/css' media='all'>
+ /* style: man */
+ body#manpage {margin:0}
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
+ .mp h2 {margin:10px 0 0 0}
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
+ .mp h3 {margin:0 0 0 4ex}
+ .mp dt {margin:0;clear:left}
+ .mp dt.flush {float:left;width:8ex}
+ .mp dd {margin:0 0 0 9ex}
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
+ .mp pre {margin-bottom:20px}
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
+ .mp img {display:block;margin:auto}
+ .mp h1.man-title {display:none}
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
+ .mp h2 {font-size:16px;line-height:1.25}
+ .mp h1 {font-size:20px;line-height:2}
+ .mp {text-align:justify;background:#fff}
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
+ .mp u {text-decoration:underline}
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
+ .mp b.man-ref {font-weight:normal;color:#434241}
+ .mp pre {padding:0 4ex}
+ .mp pre code {font-weight:normal;color:#434241}
+ .mp h2+pre,h3+pre {padding-left:0}
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
+ ol.man-decor {width:100%}
+ ol.man-decor li.tl {text-align:left}
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
+ ol.man-decor li.tr {text-align:right;float:right}
+ </style>
+ <style type='text/css' media='all'>
+ /* style: toc */
+ .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
+ .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
+ .man-navigation a:hover {color:#111;text-decoration:underline}
+ </style>
+</head>
+<!--
+ The following styles are deprecated and will be removed at some point:
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
+
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
+ .man-navigation should be used instead.
+-->
+<body id='manpage'>
+ <div class='mp' id='man'>
+
+ <div class='man-navigation' style='display:none'>
+ <a href="#NAME">NAME</a>
+ <a href="#SYNOPSIS">SYNOPSIS</a>
+ <a href="#DESCRIPTION">DESCRIPTION</a>
+ <a href="#GENERAL-OPTIONS">GENERAL OPTIONS</a>
+ <a href="#SUB-COMMANDS">SUB-COMMANDS</a>
+ <a href="#GENERAL-SUB-COMMANDS">GENERAL SUB-COMMANDS</a>
+ <a href="#CONFIGURATION">CONFIGURATION</a>
+ <a href="#FILES">FILES</a>
+ <a href="#CHEF-WORKFLOW">CHEF WORKFLOW</a>
+ <a href="#EXAMPLES">EXAMPLES</a>
+ <a href="#ENVIRONMENT">ENVIRONMENT</a>
+ <a href="#SEE-ALSO">SEE ALSO</a>
+ <a href="#AUTHOR">AUTHOR</a>
+ </div>
+
+ <ol class='man-decor man-head man head'>
+ <li class='tl'>knife(1)</li>
+ <li class='tc'>Chef Manual</li>
+ <li class='tr'>knife(1)</li>
+ </ol>
+
+ <h2 id="NAME">NAME</h2>
+<p class="man-name">
+ <code>knife</code> - <span class="man-whatis">Chef Server REST API utility</span>
+</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<p><strong>knife</strong> <em>sub-command</em> <em>(options)</em></p>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>This manual page documents knife, a command-line utility used to
+interact with a Chef server directly through the RESTful API. Knife uses
+sub-commands to take various actions on different types of Chef objects.
+Some sub-commands take additional options. General options follow
+sub-commands and their options. A configuration file can be created for
+common defaults.</p>
+
+<p>Unless otherwise specified, output is in JSON format, and input files
+are also JSON format.</p>
+
+<p>The Chef class <code>Chef::Config</code> that configures the behavior of how knife
+runs has options that correspond to command-line options. These are
+noted as <code>Chef::Config</code> values.</p>
+
+<h2 id="GENERAL-OPTIONS">GENERAL OPTIONS</h2>
+
+<dl>
+<dt><code>-s</code>, <code>--server-url</code> URL</dt><dd>Chef Server URL, corresponds to <code>Chef::Config</code> <code>chef_server_url</code>.</dd>
+<dt><code>-k</code>, <code>--key</code> KEY</dt><dd>API Client Key, corresponds to <code>Chef::Config</code> <code>client_key</code>.</dd>
+<dt><code>-c</code>, <code>--config</code> CONFIG</dt><dd>The configuration file to use</dd>
+<dt><code>-e</code>, <code>--editor</code> EDITOR</dt><dd>Set the editor to use for interactive commands</dd>
+<dt><code>-F</code>, <code>--format</code> FORMAT</dt><dd>Which format to use for output</dd>
+<dt><code>-l</code>, <code>--log_level</code> LEVEL</dt><dd>Set the log level (debug, info, warn, error, fatal), corresponds to <code>Chef::Config</code> <code>log_level</code>.</dd>
+<dt><code>-L</code>, <code>--logfile</code> LOGLOCATION</dt><dd>Set the log file location, defaults to STDOUT, corresponds to <code>Chef::Config</code> <code>log_location</code>.</dd>
+<dt><code>-n</code>, <code>--no-editor</code></dt><dd>Do not open EDITOR, just accept the data as is</dd>
+<dt><code>-u</code>, <code>--user</code> USER</dt><dd>API Client Username, corresponds to <code>Chef::Config</code> <code>node_name</code>.</dd>
+<dt><code>-p</code>, <code>--print-after</code></dt><dd>Show the data after a destructive operation</dd>
+<dt><code>-v</code>, <code>--version</code></dt><dd>Show chef version</dd>
+<dt><code>-y</code>, <code>--yes</code></dt><dd>Say yes to all prompts for confirmation</dd>
+<dt><code>-h</code>, <code>--help</code></dt><dd>Show this message</dd>
+</dl>
+
+
+<p>Usage information for sub-commands can be displayed with <code>knife SUB-COMMAND --help</code>.</p>
+
+<h2 id="SUB-COMMANDS">SUB-COMMANDS</h2>
+
+<p>Knife sub-commands are structured as <em>NOUN verb NOUN (options)</em>. The
+sub-commands are meant to be intuitively named. Because the Chef Server
+API is RESTful, sub-commands generally utilize CRUD operations.</p>
+
+<ul>
+<li>create (create)</li>
+<li>list and show (read)</li>
+<li>edit (update)</li>
+<li>delete (destroy)</li>
+</ul>
+
+
+<p>Objects stored on the server support these, as described below.</p>
+
+<h2 id="GENERAL-SUB-COMMANDS">GENERAL SUB-COMMANDS</h2>
+
+<p><strong>recipe list [PATTERN]</strong></p>
+
+<p>List available recipes from the server. Specify <em>PATTERN</em> as a regular expression to limit the results.</p>
+
+<h2 id="CONFIGURATION">CONFIGURATION</h2>
+
+<p>The knife configuration file is a Ruby DSL to set configuration
+parameters for Knife's <strong>GENERAL OPTIONS</strong>. The default location for the
+config file is <code>~/.chef/knife.rb</code>. If managing multiple Chef
+repositories, per-repository config files can be created. The file must
+be <code>.chef/knife.rb</code> in the current directory of the repository.</p>
+
+<p>If the config file exists, knife uses these settings for <strong>GENERAL OPTIONS</strong> defaults.</p>
+
+<p><code>log_level</code></p>
+
+<p>A Ruby symbol specifying the log level. Corresponds to <code>-l</code> or <code>--log_level</code> option. Default is <em>:info</em>. Valid values are:</p>
+
+<ul>
+<li>:info</li>
+<li>:debug</li>
+<li>:warn</li>
+<li>:fatal</li>
+</ul>
+
+
+<p><code>log_location</code></p>
+
+<p>Corresponds to the <code>-L</code> or <code>--log-file</code> option. Defaults is <strong>STDOUT</strong>.
+Valid values are <strong>STDOUT</strong> or a filename.</p>
+
+<p><code>node_name</code></p>
+
+<p>User to authenticate to the Chef server. Corresponds to the <code>-u</code> or
+<code>--user</code> option. This is requested from the user when running this
+sub-command.</p>
+
+<p><code>client_key</code></p>
+
+<p>Private key file to authenticate to the Chef server. Corresponds to the
+<code>-k</code> or <code>--key</code> option. This is requested from the user when running
+this sub-command.</p>
+
+<p><code>chef_server_url</code></p>
+
+<p>URL of the Chef server. Corresponds to the <code>-s</code> or <code>--server-url</code>
+option. This is requested from the user when running this sub-command.</p>
+
+<p><code>cache_type</code></p>
+
+<p>The type of cache to use. Default is BasicFile. This can be any type of
+Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper,
+File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant,
+Xattr, YAML.</p>
+
+<p><code>cache_options</code></p>
+
+<p>Specifies various options to use for caching. Default reads the Chef
+client configuration (/etc/chef/checksums).</p>
+
+<p><code>validation_client_name</code></p>
+
+<p>Specifies the name of the client used to validate new clients. This is
+requested from the user when running the configuration sub-command.</p>
+
+<p><code>validation_key</code></p>
+
+<p>Specifies the private key file to use for generating ec2 instance data
+for validating new clients. This is implied from the
+<code>validation_client_name</code>.</p>
+
+<p><code>cookbook_copyright</code>
+<code>cookbook_email</code>
+<code>cookbook_license</code></p>
+
+<p>Used by <code>knife cookbook create</code> sub-command to specify the copyright
+holder, maintainer email and license (respectively) for new cookbooks.
+The copyright holder is listed as the maintainer in the cookbook's
+metadata and as the Copyright in the comments of the default recipe. The
+maintainer email is used in the cookbook metadata. The license
+determines what preamble to put in the comment of the default recipe,
+and is listed as the license in the cookbook metadata. Currently
+supported licenses are "apachev2" and "none". Any other values will
+result in an empty license in the metadata (needs to be filled in by the
+author), and no comment preamble in the default recipe.</p>
+
+<p><code>knife[:aws_access_key_id]</code>
+<code>knife[:aws_secret_access_key]</code></p>
+
+<p>Specifies the Amazon AWS EC2 credentials to use when running the ec2 sub-commands.</p>
+
+<p><code>knife[:rackspace_api_username]</code>
+<code>knife[:rackspace_api_key]</code></p>
+
+<p>Specifies the Rackspace Cloud credentials to use when running the rackspace sub-commands.</p>
+
+<p><code>knife[:terremark_username]</code>
+<code>knife[:terremark_password]</code>
+<code>knife[:terremark_service]</code></p>
+
+<p>Specifies the Terremark vCloud credentials to use when running the terremark sub-commands.</p>
+
+<p><code>knife[:slicehost_password]</code></p>
+
+<p>Specifies the Slicehost password to use when running the slicdehost sub-commands.</p>
+
+<h2 id="FILES">FILES</h2>
+
+<p><em>~/.chef/knife.rb</em></p>
+
+<p>Ruby DSL configuration file for knife. See <strong>CONFIGURATION</strong>.</p>
+
+<h2 id="CHEF-WORKFLOW">CHEF WORKFLOW</h2>
+
+<p>When working with Chef and Knife in the local repository, the recommended workflow outline looks like:</p>
+
+<ul>
+<li>Create repository. A skeleton sample is provided at <em>http://github.com/opscode/chef-repo/</em>.</li>
+<li>Configure knife, see <strong>CONFIGURATION</strong>.</li>
+<li>Download cookbooks from the Opscode cookbooks site, see <strong>COOKBOOK SITE SUB-COMMANDS</strong>.</li>
+<li>Or, create new cookbooks, see <code>cookbook create</code> sub-command.</li>
+<li>Commit changes to the version control system. See your tool's documentation.</li>
+<li>Upload cookbooks to the Chef Server, see <strong>COOKBOOK SUB-COMMANDS</strong>.</li>
+<li>Launch instances in the Cloud, OR provision new hosts; see <strong>CLOUD COMPUTING SUB-COMMANDS</strong> and <strong>BOOTSTRAP SUB-COMMANDS</strong>.</li>
+<li>Watch Chef configure systems!</li>
+</ul>
+
+
+<p>A note about git: Opscode and many folks in the Chef community use git,
+but it is not required, except in the case of the <code>cookbook site vendor</code>
+sub-command, as it uses git directly. Version control is strongly
+recommended though, and git fits with a lot of the workflow paradigms.</p>
+
+<h2 id="EXAMPLES">EXAMPLES</h2>
+
+<p>Example client config (<code>/etc/chef/client.rb</code>) from <code>knife configure
+client</code>. The same configuration is used when using the <code>knife bootstrap</code>
+command with the default <code>gem</code> templates that come with Chef.</p>
+
+<pre><code>log_level :info
+log_location STDOUT
+chef_server_url 'https://api.opscode.com/organizations/ORGNAME'
+validation_client_name 'ORGNAME-validator'
+</code></pre>
+
+<p>Setting up a custom bootstrap is fairly straightforward. Create
+<code>.chef/bootstrap</code> in your Chef Repository directory or in
+<code>$HOME/.chef/bootstrap</code>. Then create the ERB template file.</p>
+
+<pre><code>mkdir ~/.chef/bootstrap
+vi ~/.chef/bootstrap/debian5.0-apt.erb
+</code></pre>
+
+<p>For example, to create a new bootstrap template that should be used when
+setting up a new Debian node. Edit the template to run the commands, set
+up the validation certificate and the client configuration file, and
+finally to run chef-client on completion. The bootstrap template can be
+called with:</p>
+
+<pre><code>knife bootstrap mynode.example.com --template-file ~/.chef/bootstrap/debian5.0-apt.erb
+</code></pre>
+
+<p>Or,</p>
+
+<pre><code>knife bootstrap mynode.example.com --distro debian5.0-apt
+</code></pre>
+
+<p>The <code>--distro</code> parameter will automatically look in the
+<code>~/.chef/bootstrap</code> directory for a file named <code>debian5.0-apt.erb</code>.</p>
+
+<p>Templates provided by the Chef installation are located in
+<code>BASEDIR/lib/chef/knife/bootstrap/*.erb</code>, where <em>BASEDIR</em> is the
+location where the package or Gem installed the Chef client libraries.</p>
+
+<p>Uploading cookbooks to the Opscode cookbooks site using the user/certificate specifically:</p>
+
+<pre><code>knife cookbook site share example Other -k ~/.chef/USERNAME.pem -u USERNAME
+</code></pre>
+
+<h2 id="ENVIRONMENT">ENVIRONMENT</h2>
+
+<dl>
+<dt class="flush"><code>EDITOR</code></dt><dd>The text editor to use for editing data. The --editor option takes
+precedence over this value, and the --no-editor option supresses
+data editing entirely.</dd>
+</dl>
+
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<p>Full documentation for Chef is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home/.</p>
+
+<p>JSON is JavaScript Object Notation and more information can be found at http://json.org/.</p>
+
+<p>SOLR is an open source search engine. The Chef Server includes a SOLR installation. More information about SOLR, including the search query syntax, can be found at http://lucene.apache.org/solr/.</p>
+
+<p>Git is a version control system and documented at http://git-scm.com/.</p>
+
+<p>This manual page was generated in nroff from Markdown with ronn. Ryan Tomayko wrote ronn and more information can be found at http://rtomayko.github.com/ronn/ronn.5.html.</p>
+
+<h2 id="AUTHOR">AUTHOR</h2>
+
+<p>Chef was written by Adam Jacob <a href="&#109;&#97;&#105;&#108;&#x74;&#111;&#x3a;&#x61;&#100;&#97;&#109;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#101;&#x2e;&#99;&#111;&#x6d;" data-bare-link="true">&#x61;&#x64;&#97;&#x6d;&#x40;&#x6f;&#x70;&#115;&#x63;&#x6f;&#100;&#x65;&#46;&#x63;&#x6f;&#x6d;</a> of Opscode (<a href="http://www.opscode.com" data-bare-link="true">http://www.opscode.com</a>), with contributions from the community. This manual page was written by Joshua Timberman <a href="&#x6d;&#x61;&#x69;&#108;&#116;&#x6f;&#58;&#106;&#111;&#115;&#104;&#117;&#x61;&#64;&#x6f;&#112;&#x73;&#x63;&#111;&#100;&#x65;&#x2e;&#99;&#111;&#x6d;" data-bare-link="true">&#x6a;&#111;&#x73;&#104;&#x75;&#x61;&#x40;&#111;&#112;&#x73;&#x63;&#x6f;&#x64;&#x65;&#46;&#99;&#x6f;&#109;</a>. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.</p>
+
+<p>On Debian systems, the complete text of the Apache 2.0 License can be found in <code>/usr/share/common-licenses/Apache-2.0</code>.</p>
+
+
+ <ol class='man-decor man-foot man foot'>
+ <li class='tl'>Chef 0.10.0.beta.7</li>
+ <li class='tc'>April 2011</li>
+ <li class='tr'>knife(1)</li>
+ </ol>
+
+ </div>
+</body>
+</html>
diff --git a/chef/distro/common/man/man1/chef-indexer.1 b/chef/distro/common/man/man1/chef-indexer.1
deleted file mode 100644
index e6dea91883..0000000000
--- a/chef/distro/common/man/man1/chef-indexer.1
+++ /dev/null
@@ -1,42 +0,0 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
-.TH CHEF-INDEXER: "1" "August 2009" "chef-indexer 0.7.8" "User Commands"
-.SH NAME
-chef-indexer: \- Runs the search index process.
-.SH SYNOPSIS
-.B chef-indexer
-\fI(options)\fR
-.SH DESCRIPTION
-.TP
-chef-indexer requires that the stompserver be started but at this time the stompserver package does not install a startup script, let alone start the daemon. I am working with the package maintainer for stompserver to include a startup script.
-\fB\-c\fR, \fB\-\-config\fR CONFIG
-The configuration file to use
-.TP
-\fB\-d\fR, \fB\-\-daemonize\fR
-Daemonize the process
-.TP
-\fB\-g\fR, \fB\-\-group\fR GROUP
-Group to change gid to before daemonizing
-.TP
-\fB\-l\fR, \fB\-\-log_level\fR LEVEL
-Set the log level (debug, info, warn, error, fatal)
-.TP
-\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
-Set the log file location, defaults to STDOUT \- recommended for daemonizing
-.TP
-\fB\-u\fR, \fB\-\-user\fR USER
-User to change uid to before daemonizing
-.TP
-\fB\-v\fR, \fB\-\-version\fR
-Show chef version
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Show this message
-.SH "SEE ALSO"
-Full documentation for Chef and chef-indexer is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
-.SH AUTHOR
-Chef was written by Adam Jacob <adam@ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
-This manual page was written by Joshua Timberman <joshua@opscode.com> with help2man. Permission is granted
-to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
-
-On Debian systems, the complete text of the Apache 2.0 License can be found in
-/usr/share/common-licenses/Apache-2.0.
diff --git a/chef/distro/common/man/man1/chef-solr-indexer.1 b/chef/distro/common/man/man1/chef-solr-indexer.1
deleted file mode 100644
index 3f5b37555d..0000000000
--- a/chef/distro/common/man/man1/chef-solr-indexer.1
+++ /dev/null
@@ -1,55 +0,0 @@
-.TH CHEF-SOLR-INDEXER: "1" "March 2010" "chef-solr-indexer" "User Commands"
-.SH NAME
-chef-solr-indexer: \- manual page for chef-solr-indexer
-.SH SYNOPSIS
-.B chef-solr-indexer
-\fI(options)\fR
-.SH DESCRIPTION
-.TP
-\fB\-\-amqp\-host\fR HOST
-The amqp host
-.TP
-\fB\-\-amqp\-pass\fR PASS
-The amqp password
-.TP
-\fB\-\-amqp\-port\fR PORT
-The amqp port
-.TP
-\fB\-\-amqp\-user\fR USER
-The amqp user
-.TP
-\fB\-\-amqp\-vhost\fR VHOST
-The amqp vhost
-.TP
-\fB\-c\fR, \fB\-\-config\fR CONFIG
-The configuration file to use
-.TP
-\fB\-d\fR, \fB\-\-daemonize\fR
-Daemonize the process
-.TP
-\fB\-g\fR, \fB\-\-group\fR GROUP
-Group to set privilege to
-.TP
-\fB\-l\fR, \fB\-\-log_level\fR LEVEL
-Set the log level (debug, info, warn, error, fatal)
-.TP
-\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
-Set the log file location, defaults to STDOUT \- recommended for daemonizing
-.TP
-\fB\-u\fR, \fB\-\-user\fR USER
-User to set privilege to
-.TP
-\fB\-v\fR, \fB\-\-version\fR
-Show chef\-solr\-indexer version
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Show this message
-.SH "SEE ALSO"
-Full documentation for Chef and chef-solr is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
-.SH AUTHOR
-chef-solr-indexer was written by Adam Jacob <adam@ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
-This manual page was written by Joshua Timberman <joshua@opscode.com> with help2man. Permission is granted
-to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
-
-On Debian systems, the complete text of the Apache 2.0 License can be found in
-/usr/share/common-licenses/Apache-2.0.
diff --git a/chef/distro/common/man/man1/knife-bootstrap.1 b/chef/distro/common/man/man1/knife-bootstrap.1
new file mode 100644
index 0000000000..187f2ff0e8
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-bootstrap.1
@@ -0,0 +1,137 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-BOOTRAP" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-bootrap\fR \- Install Chef Client on a remote host
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBbootstrap\fR \fI(options)\fR
+.
+.TP
+\fB\-i\fR, \fB\-\-identity\-file IDENTITY_FILE\fR
+The SSH identity file used for authentication
+.
+.TP
+\fB\-N\fR, \fB\-\-node\-name NAME\fR
+The Chef node name for your new node
+.
+.TP
+\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
+The ssh password
+.
+.TP
+\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
+The ssh username
+.
+.TP
+\fB\-\-prerelease\fR
+Install pre\-release Chef gems
+.
+.TP
+\fB\-r\fR, \fB\-\-run\-list RUN_LIST\fR
+Comma separated list of roles/recipes to apply
+.
+.TP
+\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
+The ssh password
+.
+.TP
+\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
+The ssh username
+.
+.TP
+\fB\-\-template\-file TEMPLATE\fR
+Full path to location of template to use
+.
+.TP
+\fB\-\-sudo\fR
+Execute the bootstrap via sudo
+.
+.TP
+\fB\-d\fR, \fB\-\-distro DISTRO\fR
+Bootstrap a distro using a template
+.
+.P
+Performs a Chef Bootstrap on the target node\. The goal of the bootstrap is to get Chef installed on the target system so it can run Chef Client with a Chef Server\. The main assumption is a baseline OS installation exists\. This sub\-command is used internally by some cloud computing server create commands and the others will be migrated in a future version of Chef\.
+.
+.P
+The bootstrap sub\-command supports supplying a template to perform the bootstrap steps\. If the distro is not specified (via \fB\-d\fR or \fB\-\-distro\fR option), an Ubuntu 10\.04 host bootstrapped with RubyGems is assumed\. The \fBDISTRO\fR value corresponds to the base filename of the template, in other words \fBDISTRO\fR\.erb\. A template file can be specified with the \fB\-\-template\-file\fR option in which case the \fBDISTRO\fR is not used\. The sub\-command looks in the following locations for the template to use:
+.
+.IP "\(bu" 4
+\fBbootstrap\fR directory in the installed Chef Knife library\.
+.
+.IP "\(bu" 4
+\fBbootstrap\fR directory in the \fB$PWD/\.chef\fR\.
+.
+.IP "\(bu" 4
+\fBbootstrap\fR directory in the users \fB$HOME/\.chef\fR\.
+.
+.IP "" 0
+.
+.P
+The default bootstrap templates are scripts that get copied to the target node (FQDN)\. As of Chef 0\.9\.8, the following distros are supported:
+.
+.IP "\(bu" 4
+centos5\-gems
+.
+.IP "\(bu" 4
+fedora13\-gems
+.
+.IP "\(bu" 4
+ubuntu10\.04\-gems
+.
+.IP "\(bu" 4
+ubuntu10\.04\-apt
+.
+.IP "" 0
+.
+.P
+The gems installations will use RubyGems 1\.3\.6 and Chef installed as a gem\. The apt installation will use the Opscode APT repository\. The RubyGems installation requires installing gems with native extensions, so development related packages (ruby\-dev, build\-essential) are installed\. These are not installed with the apt installation, as native extensions are already compiled in the required packages\.
+.
+.P
+In addition to handling the software installation, these bootstrap templates do the following:
+.
+.IP "\(bu" 4
+Write the validation\.pem per the local knife configuration\.
+.
+.IP "\(bu" 4
+Write a default config file for Chef (\fB/etc/chef/client\.rb\fR) using values from the \fBknife\.rb\fR\.
+.
+.IP "\(bu" 4
+Create a JSON attributes file containing the specified run list and run Chef\.
+.
+.IP "" 0
+.
+.P
+In the case of the RubyGems, the \fBclient\.rb\fR will be written from scratch with a minimal set of values; see \fBEXAMPLES\fR\. In the case of APT Package installation, \fBclient\.rb\fR will have the \fBvalidation_client_name\fR appended if it is not set to \fBchef\-validator\fR (default config value), and the \fBnode_name\fR will be added if \fBchef_node_name\fR option is specified\.
+.
+.P
+When this is complete, the bootstrapped node will have:
+.
+.IP "\(bu" 4
+Latest Chef version installed from RubyGems or APT Packages from Opscode\. This may be a later version than the local system\.
+.
+.IP "\(bu" 4
+Be validated with the configured Chef Server\.
+.
+.IP "\(bu" 4
+Have run Chef with its default run list if one is specfied\.
+.
+.IP "" 0
+.
+.P
+Additional custom bootstrap templates can be created and stored in \fB\.chef/bootstrap/DISTRO\.erb\fR, replacing \fBDISTRO\fR with the value passed with the \fB\-d\fR or \fB\-\-distro\fR option\. See \fBEXAMPLES\fR for more information\.
+.
+.SH "SEE ALSO"
+\fBknife\-ssh\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-client.1 b/chef/distro/common/man/man1/knife-client.1
new file mode 100644
index 0000000000..234fd61236
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-client.1
@@ -0,0 +1,98 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-CLIENT" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-client\fR \- Manage Chef API Clients
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBclient\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "DESCRIPTION"
+Clients are identities used for communication with the Chef Server API, roughly equivalent to user accounts on the Chef Server, except that clients only communicate with the Chef Server API and are authenticated via request signatures\.
+.
+.P
+In the typical case, there will be one client object on the server for each node, and the corresponding client and node will have identical names\.
+.
+.P
+In the Chef authorization model, there is one special client, the "validator", which is authorized to create new non\-administrative clients but has minimal privileges otherwise\. This identity is used as a sort of "guest account" to create a client identity when initially setting up a host for management with Chef\.
+.
+.SH "CLIENT SUB\-COMMANDS"
+.
+.SH "BULK DELETE"
+\fBknife client bulk delete\fR \fIregex\fR \fI(options)\fR
+.
+.P
+Delete clients where the client name matches the regular expression \fIregex\fR on the Chef Server\. The regular expression should be given as a quoted string, and not surrounded by forward slashes\.
+.
+.SH "CREATE"
+\fBknife client create\fR \fIclient name\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-admin\fR
+Create the client as an admin
+.
+.TP
+\fB\-f\fR, \fB\-\-file FILE\fR
+Write the key to a file
+.
+.P
+Create a new client\. This generates an RSA keypair\. The private key will be displayed on \fISTDOUT\fR or written to the named file\. The public half will be stored on the Server\. For \fIchef\-client\fR systems, the private key should be copied to the system as \fB/etc/chef/client\.pem\fR\.
+.
+.P
+Admin clients should be created for users that will use \fIknife\fR to access the API as an administrator\. The private key will generally be copied to \fB~/\.chef/client\e_name\.pem\fR and referenced in the \fBknife\.rb\fR configuration file\.
+.
+.SH "DELETE"
+\fBknife client delete\fR \fIclient name\fR \fI(options)\fR
+.
+.P
+Deletes a registered client\.
+.
+.SH "EDIT"
+\fBclient edit\fR \fIclient name\fR \fI(options)\fR
+.
+.P
+Edit a registered client\.
+.
+.SH "LIST"
+\fBclient list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+List all registered clients\.
+.
+.SH "REREGISTER"
+\fBclient reregister\fR \fIclient name\fR \fI(options)\fR
+.
+.TP
+\fB\-f\fR, \fB\-\-file FILE\fR
+Write the key to a file
+.
+.P
+Regenerate the RSA keypair for a client\. The public half will be stored on the server and the private key displayed on \fISTDOUT\fR or written to the named file\. This operation will invalidate the previous keypair used by the client, preventing it from authenticating with the Chef Server\. Use care when reregistering the validator client\.
+.
+.SH "SHOW"
+\fBclient show\fR \fIclient name\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-attribute ATTR\fR
+Show only one attribute
+.
+.P
+Show a client\. Output format is determined by the \-\-format option\.
+.
+.SH "SEE ALSO"
+\fBknife\-node\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-configure.1 b/chef/distro/common/man/man1/knife-configure.1
new file mode 100644
index 0000000000..fba822cdf7
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-configure.1
@@ -0,0 +1,88 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-CONFIGURE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-configure\fR \- Generate configuration files for knife or Chef Client
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBconfigure\fR [client] \fI(options)\fR
+.
+.SH "DESCRIPTION"
+Generates a knife\.rb configuration file interactively\. When given the \-\-initial option, also creates a new administrative user\.
+.
+.SH "CONFIGURE SUBCOMMANDS"
+\fBknife configure\fR \fI(options)\fR
+.
+.TP
+\fB\-i\fR, \fB\-\-initial\fR
+Create an initial API Client
+.
+.TP
+\fB\-r\fR, \fB\-\-repository REPO\fR
+The path to your chef\-repo
+.
+.P
+Create a configuration file for knife\. This will prompt for values to enter into the file\. Default values are listed in square brackets if no other entry is typed\. See \fBknife\fR(1) for a description of configuration options\.
+.
+.P
+\fBknife configure client\fR \fIdirectory\fR
+.
+.P
+Read the \fIknife\.rb\fR config file and generate a config file suitable for use in \fI/etc/chef/client\.rb\fR and copy the validation certificate into the specified \fIdirectory\fR\.
+.
+.SH "EXAMPLES"
+.
+.IP "\(bu" 4
+On a freshly installed Chef Server, use \fIknife configure \-i\fR to create an administrator and knife configuration file\. Leave the field blank to accept the default value\. On most systems, the default values are acceptable\.
+.
+.IP
+user@host$ knife configure \-i
+.
+.br
+Please enter the chef server URL: [http://localhost:4000]
+.
+.br
+Please enter a clientname for the new client: [username]
+.
+.br
+Please enter the existing admin clientname: [chef\-webui]
+.
+.br
+Please enter the location of the existing admin client\'s private key: [/etc/chef/webui\.pem]
+.
+.br
+Please enter the validation clientname: [chef\-validator]
+.
+.br
+Please enter the location of the validation key: [/etc/chef/validation\.pem]
+.
+.br
+Please enter the path to a chef repository (or leave blank):
+.
+.br
+Creating initial API user\.\.\.
+.
+.br
+Created (or updated) client[username]
+.
+.br
+Configuration file written to /home/username/\.chef/knife\.rb
+.
+.IP
+This creates a new administrator client named \fIusername\fR, writes a configuration file to \fI/home/username/\.chef/knife\.rb\fR, and the private key to \fI/home/username/\.chef/username\.pem\fR\. The configuration file and private key may be copied to another system to facilitate administration of the Chef Server from a remote system\. Depending on the value given for the Chef Server URL, you may need to modify that setting after copying to a remote host\.
+.
+.IP "" 0
+.
+.SH "SEE ALSO"
+\fBknife\fR(1) \fBknife\-client\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-cookbook-site.1 b/chef/distro/common/man/man1/knife-cookbook-site.1
new file mode 100644
index 0000000000..45c1aa4305
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-cookbook-site.1
@@ -0,0 +1,91 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-COOKBOOK\-SITE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-cookbook\-site\fR \- Install and update open source cookbooks
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBcookbook site\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "COOKBOOK SITE SUB\-COMMANDS"
+The following sub\-commands are still in the context of cookbooks, but they make use of Opscode\'s Cookbook Community site, \fIhttp://cookbooks\.opscode\.com/\fR\. That site has an API, and these sub\-commands utilize that API, rather than the Chef Server API\.
+.
+.P
+\fBcookbook site download COOKBOOK [VERSION]\fR \fI(options)\fR
+.
+.TP
+\fB\-f\fR, \fB\-\-file FILE\fR
+The filename to write to
+.
+.P
+Downloads a specific cookbook from the Community site, optionally specifying a certain version\.
+.
+.P
+\fBcookbook site list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+Lists available cookbooks from the Community site\.
+.
+.P
+\fBcookbook site search QUERY\fR \fI(options)\fR
+.
+.P
+Searches the Community site with the specified query\.
+.
+.P
+\fBcookbook site share COOKBOOK CATEGORY\fR \fI(options)\fR
+.
+.TP
+\fB\-k\fR, \fB\-\-key KEY\fR
+API Client Key
+.
+.TP
+\fB\-u\fR, \fB\-\-user USER\fR
+API Client Username
+.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
+A colon\-separated path to look for cookbooks in
+.
+.P
+Uploads the specified cookbook using the given category to the Opscode cookbooks site\. Requires a login user and certificate for the Opscode Cookbooks site\. See \fBEXAMPLES\fR for usage if the Opscode user and certificate pair are not used for authenticating with the Chef Server\. In other words, if the Chef Server is not the Opscode Platform\.
+.
+.P
+\fBcookbook site unshare COOKBOOK\fR
+.
+.P
+Stops sharing the specified cookbook on the Opscode cookbooks site\.
+.
+.P
+\fBcookbook site show COOKBOOK [VERSION]\fR \fI(options)\fR
+.
+.P
+Shows information from the site about a particular cookbook\.
+.
+.P
+\fBcookbook site vendor COOKBOOK [VERSION]\fR \fI(options)\fR
+.
+.TP
+\fB\-d\fR, \fB\-\-dependencies\fR
+Grab dependencies automatically
+.
+.P
+Uses \fBgit\fR version control in conjunction with the cookbook site to download upstream cookbooks\. A new vendor branch is created in git, the cookbook downloaded from the site and untarred, then the master branch is merged\. This allows the user to track upstream changes to cookbooks while merging in customizations\. If \fI\-d\fR is specified, all the cookbooks it depends on (via metadata \fIdependencies\fR) are downloaded and untarred as well, each using their own vendor branch\.
+.
+.SH "SEE ALSO"
+\fBknife\-environment\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-cookbook.1 b/chef/distro/common/man/man1/knife-cookbook.1
new file mode 100644
index 0000000000..316bef8def
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-cookbook.1
@@ -0,0 +1,242 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-COOKBOOK" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-cookbook\fR \- Upload and manage Chef cookbooks
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBcookbook\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "COOKBOOK SUB\-COMMANDS"
+Cookbooks are the fundamental unit of distribution in Chef\. They encapsulate all recipes of resources and assets used to configure a particular aspect of the infrastructure\. The following sub\-commands can be used to manipulate the cookbooks stored on the Chef Server\.
+.
+.P
+\fBcookbook bulk delete REGEX\fR \fI(options)\fR
+.
+.TP
+\fB\-p\fR, \fB\-\-purge\fR
+Purge files from backing store\. This will disable any cookbook that contains any of the same files as the cookbook being purged\.
+.
+.P
+Delete cookbooks on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
+.
+.P
+\fBcookbook create COOKBOOK\fR \fI(options)\fR
+.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path PATH\fR
+The directory where the cookbook will be created
+.
+.TP
+\fB\-r\fR, \fB\-\-readme\-format FORMAT\fR
+Format of the README file
+.
+.TP
+\fB\-C\fR, \fB\-\-copyright COPYRIGHT\fR
+Name of Copyright holder
+.
+.TP
+\fB\-I\fR, \fB\-\-license LICENSE\fR
+License for cookbook, apachev2 or none
+.
+.TP
+\fB\-E\fR, \fB\-\-email EMAIL\fR
+Email address of cookbook maintainer
+.
+.P
+This is a helper command that creates a new cookbook directory in the \fBcookbook_path\fR\. The following directories and files are created for the named cookbook\.
+.
+.IP "\(bu" 4
+COOKBOOK/attributes
+.
+.IP "\(bu" 4
+COOKBOOK/definitions
+.
+.IP "\(bu" 4
+COOKBOOK/files/default
+.
+.IP "\(bu" 4
+COOKBOOK/libraries
+.
+.IP "\(bu" 4
+COOKBOOK/metadata\.rb
+.
+.IP "\(bu" 4
+COOKBOOK/providers
+.
+.IP "\(bu" 4
+COOKBOOK/README\.rdoc
+.
+.IP "\(bu" 4
+COOKBOOK/recipes/default\.rb
+.
+.IP "\(bu" 4
+COOKBOOK/resources
+.
+.IP "\(bu" 4
+COOKBOOK/templates/default
+.
+.IP "" 0
+.
+.P
+Supported README formats are \'rdoc\' (default), \'md\', \'mkd\', \'txt\'\. The README file will be written with the specified extension and a set of helpful starting headers\.
+.
+.P
+Specify \fB\-C\fR or \fB\-\-copyright\fR with the name of the copyright holder as your name or your company/organization name in a quoted string\. If this value is not specified an all\-caps string \fBYOUR_COMPANY_NAME\fR is used which can be easily changed with find/replace\.
+.
+.P
+Specify \fB\-I\fR or \fB\-\-license\fR with the license that the cookbook is distributed under for sharing with other people or posting to the Opscode Cookbooks site\. Be aware of the licenses of files you put inside the cookbook and follow any restrictions they describe\. When using \fBnone\fR (default) or \fBapachev2\fR, comment header text and metadata file are pre\-filled\. The \fBnone\fR license will be treated as non\-redistributable\.
+.
+.P
+Specify \fB\-E\fR or \fB\-\-email\fR with the email address of the cookbook\'s maintainer\. If this value is not specified, an all\-caps string \fBYOUR_EMAIL\fR is used which can easily be changed with find/replace\.
+.
+.P
+The cookbook copyright, license and email settings can be filled in the \fBknife\.rb\fR, for example with default values:
+.
+.IP "" 4
+.
+.nf
+
+cookbook_copyright "YOUR_COMPANY_NAME"
+cookbook_license "none"
+cookbook_email "YOUR_EMAIL"
+.
+.fi
+.
+.IP "" 0
+.
+.P
+\fBcookbook delete COOKBOOK [VERSION]\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Delete all versions
+.
+.TP
+\fB\-p\fR, \fB\-\-purge\fR
+Purge files from backing store\. This will disable any cookbook that contains any of the same files as the cookbook being purged\.
+.
+.P
+Delete the specified \fIVERSION\fR of the named \fICOOKBOOK\fR\. If no version is specified, and only one version exists on the server, that version will be deleted\. If multiple versions are available on the server, you will be prompted for a version to delete\.
+.
+.P
+\fBcookbook download COOKBOOK [VERSION]\fR \fI(options)\fR
+.
+.TP
+\fB\-d\fR, \fB\-\-dir DOWNLOAD_DIRECTORY\fR
+The directory to download the cookbook into
+.
+.TP
+\fB\-f\fR, \fB\-\-force\fR
+Overwrite an existing directory with the download
+.
+.TP
+\fB\-N\fR, \fB\-\-latest\fR
+Download the latest version of the cookbook
+.
+.P
+Download a cookbook from the Chef Server\. If no version is specified and only one version exists on the server, that version will be downloaded\. If no version is specified and multiple versions are available on the server, you will be prompted for a version to download\.
+.
+.P
+\fBcookbook list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+List all the cookbooks\.
+.
+.P
+\fBcookbook metadata COOKBOOK\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Generate metadata for all cookbooks, rather than just a single cookbook
+.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
+A colon\-separated path to look for cookbooks in
+.
+.P
+Generate cookbook metadata for the named \fICOOKBOOK\fR\. The \fIPATH\fR used here specifies where the cookbooks directory is located and corresponds to the \fBcookbook_path\fR configuration option\.
+.
+.P
+\fBcookbook metadata from FILE\fR \fI(options)\fR
+.
+.P
+Load the cookbook metadata from a specified file\.
+.
+.P
+\fBcookbook show COOKBOOK [VERSION] [PART] [FILENAME]\fR \fI(options)\fR
+.
+.TP
+\fB\-f\fR, \fB\-\-fqdn FQDN\fR
+The FQDN of the host to see the file for
+.
+.TP
+\fB\-p\fR, \fB\-\-platform PLATFORM\fR
+The platform to see the file for
+.
+.TP
+\fB\-V\fR, \fB\-\-platform\-version VERSION\fR
+The platform version to see the file for
+.
+.P
+Show a particular part of a \fICOOKBOOK\fR for the specified \fIVERSION\fR\. \fIPART\fR can be one of:
+.
+.IP "\(bu" 4
+\fIattributes\fR
+.
+.IP "\(bu" 4
+\fIdefinitions\fR
+.
+.IP "\(bu" 4
+\fIfiles\fR
+.
+.IP "\(bu" 4
+\fIlibraries\fR
+.
+.IP "\(bu" 4
+\fIproviders\fR
+.
+.IP "\(bu" 4
+\fIrecipes\fR
+.
+.IP "\(bu" 4
+\fIresources\fR
+.
+.IP "\(bu" 4
+\fItemplates\fR
+.
+.IP "" 0
+.
+.P
+\fBcookbook test [COOKBOOKS\.\.\.]\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Test all cookbooks, rather than just a single cookbook
+.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
+A colon\-separated path to look for cookbooks in
+.
+.P
+Test the specified cookbooks for syntax errors\. This uses the built\-in Ruby syntax checking option for files in the cookbook ending in \fB\.rb\fR, and the ERB syntax check for files ending in \fB\.erb\fR (templates)\.
+.
+.P
+\fBcookbook upload [COOKBOOKS\.\.\.]\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Upload all cookbooks, rather than just a single cookbook
+.
+.TP
+\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
+A colon\-separated path to look for cookbooks in
+.
+.P
+Uploads the specified cookbooks to the Chef Server\. The actual upload executes a number of commands, most of which occur on the local machine\. The cookbook is staged in a temporary location\. Then the \fBcookbook_path\fR (or \fB\-o PATH\fR) is processed to search for the named cookbook, and each occurance is copied in the order specified\. A syntax check is performed a la \fBcookbook test\fR, above\. The metadata is generated, a la \fBcookbook metadata\fR\. A gzip(1)\'ed, tar(1) file is created, and is uploaded to the server\.
diff --git a/chef/distro/common/man/man1/knife-data-bag.1 b/chef/distro/common/man/man1/knife-data-bag.1
new file mode 100644
index 0000000000..0c8b587f80
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-data-bag.1
@@ -0,0 +1,130 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-DATA\-BAG" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-data\-bag\fR \- Store arbitrary data on a Chef Server
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBdata bag\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "DESCRIPTION"
+Data bags are stores of arbitrary JSON data\. Each data bag is a collection that may contain many items\. Data Bag Items are indexed by the Chef Server and can be searched via \fBknife\-search\fR(1)\.
+.
+.P
+Data bags are available to all nodes configured by \fBchef\-client\fR(8), and are therefore a convenient mechanism to store global information, such as lists of administrative accounts that should be configured on all hosts\.
+.
+.SH "DATA BAG SUB\-COMMANDS"
+.
+.SH "CREATE"
+\fBknife data bag create\fR \fIbag name\fR [item id] \fI(options)\fR
+.
+.TP
+\fB\-s\fR, \fB\-\-secret SECRET\fR
+A secret key used to encrypt the data bag item\. See \fBencryption support\fR below\.
+.
+.TP
+\fB\-\-secret\-file SECRET_FILE\fR
+The path to a file containing the secret key to be used to encrypt the data bag item\.
+.
+.P
+If \fIitem id\fR is given, creates a new, empty data bag item and opens it for editing in your editor\. The data bag will be created if it does not exist\.
+.
+.P
+If \fIitem id\fR is not given, the data bag will be created\.
+.
+.SH "DELETE"
+\fBknife data bag delete\fR \fIbag name\fR [item id] \fI(options)\fR
+.
+.P
+Delete a data bag, or an item from a data bag\.
+.
+.SH "EDIT"
+\fBknife data bag edit\fR \fIbag name\fR \fIitem id\fR \fI(options)\fR
+.
+.TP
+\fB\-s\fR, \fB\-\-secret SECRET\fR
+A secret key used to encrypt the data bag item\. See \fBencryption support\fR below\.
+.
+.TP
+\fB\-\-secret\-file SECRET_FILE\fR
+The path to a file containing the secret key to be used to encrypt the data bag item\.
+.
+.P
+Edit an item in a data bag\.
+.
+.SH "FROM FILE"
+\fBknife data bag from file\fR \fIbag name\fR \fIfile\fR \fI(options)\fR
+.
+.TP
+\fB\-s\fR, \fB\-\-secret SECRET\fR
+A secret key used to encrypt the data bag item\. See \fBencryption support\fR below\.
+.
+.TP
+\fB\-\-secret\-file SECRET_FILE\fR
+The path to a file containing the secret key to be used to encrypt the data bag item\.
+.
+.P
+Load a data bag item from a JSON file\. If \fIfile\fR is a relative or absolute path to the file, that file will be used\. Otherwise, the \fIfile\fR parameter is treated as the base name of a data bag file in a Chef repository, and \fBknife\fR will search for the file in \fB\./data_bags/bag_name/file\fR\. For example \fBknife data bag from file users dan\.json\fR would attempt to load the file \fB\./data_bags/users/dan\.json\fR\.
+.
+.SH "LIST"
+\fBknife data bag list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+Lists the data bags that exist on the Chef Server\.
+.
+.SH "SHOW"
+\fBknife data bag show BAG [ITEM]\fR \fI(options)\fR
+.
+.TP
+\fB\-s\fR, \fB\-\-secret SECRET\fR
+A secret key used to encrypt the data bag item\. See \fBencryption support\fR below\.
+.
+.TP
+\fB\-\-secret\-file SECRET_FILE\fR
+The path to a file containing the secret key to be used to encrypt the data bag item\.
+.
+.P
+Show a specific data bag or an item in a data bag\. The output will be formatted according to the \-\-format option\.
+.
+.SH "ENCRYPTION SUPPORT"
+Data Bag Items may be encrypted to keep their contents secret\. This may be desireable when storing sensitive information such as database passwords, API keys, etc\.
+.
+.P
+Data Bag Item encryption uses the AES\-256 CBC symmetric key algorithm\.
+.
+.P
+\fBCAVEATS:\fR Keys are not encrypted; only values are encrypted\. The "id" of a Data Bag Item is not encrypted, since it is used by Chef Server to store the item in its database\. For example, given the following data bag item:
+.
+.IP "" 4
+.
+.nf
+
+{"id": "important_passwords", "secret_password": "opensesame"}
+.
+.fi
+.
+.IP "" 0
+.
+.P
+The key "secret_password" will be visible to an evesdropper, but the value "opensesame" will be protected\. Both the key "id" and its value "important_passwords" will be visible to an evesdropper\.
+.
+.P
+Chef Server does not provide a secure mechanism for distributing encryption keys\.
+.
+.SH "SEE ALSO"
+\fBknife\-search\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. http://wiki\.opscode\.com/display/chef/Home
diff --git a/chef/distro/common/man/man1/knife-environment.1 b/chef/distro/common/man/man1/knife-environment.1
new file mode 100644
index 0000000000..c8857684d1
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-environment.1
@@ -0,0 +1,13 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-ENVIRONMENT" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-environment\fR \- Define cookbook policies for the environments in your infrastructure
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBenvironment\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "ENVIRONMENT SUBCOMMANDS"
+
diff --git a/chef/distro/common/man/man1/knife-exec.1 b/chef/distro/common/man/man1/knife-exec.1
new file mode 100644
index 0000000000..b67b6aea6e
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-exec.1
@@ -0,0 +1,13 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-EXEC" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-exec\fR \- Run user scripts using the Chef API DSL
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBexec\fR \fI(options)\fR
+.
+.SH "EXEC SUBCOMMAND"
+
diff --git a/chef/distro/common/man/man1/knife-index.1 b/chef/distro/common/man/man1/knife-index.1
new file mode 100644
index 0000000000..a08322961a
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-index.1
@@ -0,0 +1,29 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-INDEX" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-index\fR \- Rebuild the search index on a Chef Server
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBindex rebuild\fR \fI(options)\fR
+.
+.TP
+\fB\-y\fR, \fB\-\-yes\fR
+don\'t bother to ask if I\'m sure
+.
+.SH "DESCRIPTION"
+Rebuilds all the search indexes on the server\. This is accomplished by deleting all objects from the search index, and then forwarding each item in the database to \fBchef\-expander\fR(8) via \fBrabbitmq\-server\fR(1)\. Depending on the number of objects in the database, it may take some time for all objects to be indexed and available for search\.
+.
+.SH "SEE ALSO"
+\fBknife\-search\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-node.1 b/chef/distro/common/man/man1/knife-node.1
new file mode 100644
index 0000000000..b6f81eb7f6
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-node.1
@@ -0,0 +1,153 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-NODE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-node\fR \- Manage the hosts in your infrastructure
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBnode\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "DESCRIPTION"
+Nodes are data structures that represent hosts configured with Chef\. Nodes have a \fBname\fR, a String that uniquely identifies the node, \fBattributes\fR, a nested Hash of properties that describe how the host should be configured, a \fBchef_environment\fR, a String representing the environment to which the node belongs, and a \fBrun_list\fR, an ordered list of \fBrecipes\fR or \fBroles\fR that chef\-client should apply when configuring a host\.
+.
+.P
+When a host communicates with a Chef Server, it authenticates using its \fBnode_name\fR for identification and signs its reqests with a private key\. The Server validates the request by looking up a \fBclient\fR object with a name identical to the \fBnode_name\fR submitted with the request and verifes the signature using the public key for that \fBclient\fR object\. \fBNOTE\fR that the \fBclient\fR is a different object in the system\. It is associated with a node by virtue of having a matching name\.
+.
+.P
+By default \fBchef\-client\fR(8) will create a node using the FQDN of the host for the node name, though this may be overridden by configuration settings\.
+.
+.SH "NODE SUB\-COMMANDS"
+.
+.SH "BULK DELETE"
+\fBknife node bulk delete\fR \fIregex\fR \fI(options)\fR
+.
+.P
+Deletes nodes for which the name matches the regular expression \fIregex\fR on the Chef Server\. The regular expression should be given in quotes, and should not be surrounded with forward slashes (as is typical of regular expression literals in scripting languages)\.
+.
+.SH "CREATE"
+\fBknife node create\fR \fIname\fR \fI(options)\fR
+.
+.P
+Create a new node\. Unless the \-\-no\-editor option is given, an empty node object will be created and displayed in your text editor\. If the editor exits with a successful exit status, the node data will be posted to the Chef Server to create the node\.
+.
+.SH "DELETE"
+\fBknife node delete\fR \fIname\fR \fI(options)\fR
+.
+.P
+Deletes the node identified by \fIname\fR on the Chef Server\.
+.
+.SH "EDIT"
+\fBknife node edit\fR \fIname\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Display all node data in the editor\. By default, default, override, and automatic attributes are not shown\.
+.
+.P
+Edit the node identified by \fIname\fR\. Like \fBknife node create\fR, the node will be displayed in your text editor unless the \-n option is present\.
+.
+.SH "FROM FILE"
+\fBknife node from file\fR \fIfile\fR \fI(options)\fR
+.
+.P
+Create a node from a JSON format \fIfile\fR\.
+.
+.SH "LIST"
+\fBknife node list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+List all nodes\.
+.
+.SH "RUN_LIST ADD"
+\fBknife node run_list add\fR \fIname\fR \fIrun list item\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-after ITEM\fR
+Place the ENTRY in the run list after ITEM
+.
+.P
+Add the \fIrun list item\fR to the node\'s \fBrun_list\fR\. See Run list
+.
+.SH "RUN_LIST REMOVE"
+\fBknife node run_list remove\fR \fInode name\fR \fIrun list item\fR \fI(options)\fR
+.
+.P
+Remove the \fIrun list item\fR from the node\'s \fBrun_list\fR\.
+.
+.SH "SHOW"
+\fBknife node show\fR \fInode name\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-attribute [ATTR]\fR
+Show only one attribute
+.
+.TP
+\fB\-r\fR, \fB\-\-run\-list\fR
+Show only the run list
+.
+.TP
+\fB\-F\fR, \fB\-\-format FORMAT\fR
+Display the node in a different format\.
+.
+.TP
+\fB\-m\fR, \fB\-\-medium\fR
+Display more, but not all, of the node\'s data when using the default \fIsummary\fR format
+.
+.P
+Displays the node identified by \fInode name\fR on stdout\. The amount of content displayed and the output format are modified by the \-\-format option\. Valid formats are:
+.
+.IP "\(bu" 4
+summary: displays the node in a custom, summarized format
+.
+.IP "\(bu" 4
+text displays the node data in its entirety using the colorized tree display
+.
+.IP "\(bu" 4
+json: displays the node in JSON format
+.
+.IP "\(bu" 4
+yaml: displays the node in YAML format
+.
+.IP "\(bu" 4
+pp displays the node using Ruby\'s pretty printer\.
+.
+.IP "" 0
+.
+.P
+For brevity, only the first character of the format is required, for example, \-Fj will produce JSON format output\.
+.
+.SH "RUN LIST ITEM FORMAT"
+Run list items may be either roles or recipes\. When adding a role to a run list, the correct syntax is "role[ROLE_NAME]"
+.
+.P
+When adding a recipe to a run list, there are several valid formats:
+.
+.TP
+Fully Qualified Format
+"recipe[COOKBOOK::RECIPE_NAME]", for example, "recipe[chef::client]"
+.
+.TP
+Cookbook Recipe Format
+For brevity, the recipe part of the fully qualified format may be omitted, and recipes specified as "COOKBOOK::RECIPE_NAME", e\.g\., "chef::client"
+.
+.TP
+Default Recipe Format
+When adding the default recipe of a cookbook to a run list, the recipe name may be omitted as well, e\.g\., "chef::default" may be written as just "chef"
+.
+.SH "SEE ALSO"
+\fBknife\-client\fR(1) \fBknife\-search\fR(1) \fBknife\-role\fR(1)
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR with many contributions from the community\.
+.
+.SH "DOCUMENTATION"
+This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.SH "CHEF"
+Knife is distributed with Chef\. \fIhttp://wiki\.opscode\.com/display/chef/Home\fR
diff --git a/chef/distro/common/man/man1/knife-recipe.1 b/chef/distro/common/man/man1/knife-recipe.1
new file mode 100644
index 0000000000..3d15408705
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-recipe.1
@@ -0,0 +1,13 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-RECIPE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-recipe\fR \- List the recipes available on a Chef Server
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBrecipe list [PATTERN]\fR
+.
+.P
+List the recipes available on the server\. The results shown can be limited with the optional PATTERN, which is a regular expression\. PATTERN should be given in quotes, without slashes\.
diff --git a/chef/distro/common/man/man1/knife-role.1 b/chef/distro/common/man/man1/knife-role.1
new file mode 100644
index 0000000000..6dba91a4c4
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-role.1
@@ -0,0 +1,64 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-ROLE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-role\fR \- Group common configuration settings
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBrole\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "ROLE SUB\-COMMANDS"
+\fBrole bulk delete REGEX\fR \fI(options)\fR
+.
+.P
+Delete roles on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
+.
+.P
+\fBrole create ROLE\fR \fI(options)\fR
+.
+.TP
+\fB\-d\fR, \fB\-\-description\fR
+The role description
+.
+.P
+Create a new role\.
+.
+.P
+\fBrole delete ROLE\fR \fI(options)\fR
+.
+.P
+Delete a role\.
+.
+.P
+\fBrole edit ROLE\fR \fI(options)\fR
+.
+.P
+Edit a role\.
+.
+.P
+\fBrole from file FILE\fR \fI(options)\fR
+.
+.P
+Create or update a role from a role Ruby DSL (\fB\.rb\fR) or JSON file\.
+.
+.P
+\fBrole list\fR \fI(options)\fR
+.
+.TP
+\fB\-w\fR, \fB\-\-with\-uri\fR
+Show corresponding URIs
+.
+.P
+List roles\.
+.
+.P
+\fBrole show ROLE\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-attribute ATTR\fR
+Show only one attribute
+.
+.P
+Show a specific role\.
diff --git a/chef/distro/common/man/man1/knife-search.1 b/chef/distro/common/man/man1/knife-search.1
new file mode 100644
index 0000000000..3f3a5a0a08
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-search.1
@@ -0,0 +1,37 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-SEARCH" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-search\fR \- Find objects on a Chef Server by query
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBsearch INDEX QUERY\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-attribute ATTR\fR
+Show only one attribute
+.
+.TP
+\fB\-i\fR, \fB\-\-id\-only\fR
+Show only the ID of matching objects
+.
+.TP
+\fB\-R\fR, \fB\-\-rows INT\fR
+The number of rows to return
+.
+.TP
+\fB\-r\fR, \fB\-\-run\-list\fR
+Show only the run list
+.
+.TP
+\fB\-o\fR, \fB\-\-sort SORT\fR
+The order to sort the results in
+.
+.TP
+\fB\-b\fR, \fB\-\-start ROW\fR
+The row to start returning results at
+.
+.P
+Search indexes are a feature of the Chef Server and the search sub\-command allows querying any of the available indexes using SOLR query syntax\. The following data types are indexed for search: \fInode\fR, \fIrole\fR, \fIclient\fR, \fIdata bag\fR\.
diff --git a/chef/distro/common/man/man1/knife-ssh.1 b/chef/distro/common/man/man1/knife-ssh.1
new file mode 100644
index 0000000000..0f5c472f1a
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-ssh.1
@@ -0,0 +1,33 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-SSH" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-ssh\fR \- Run a command or interactive session on multiple remote hosts
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBssh QUERY COMMAND\fR \fI(options)\fR
+.
+.TP
+\fB\-a\fR, \fB\-\-attribute ATTR\fR
+The attribute to use for opening the connection \- default is fqdn
+.
+.TP
+\fB\-C\fR, \fB\-\-concurrency NUM\fR
+The number of concurrent connections
+.
+.TP
+\fB\-m\fR, \fB\-\-manual\-list\fR
+QUERY is a space separated list of servers
+.
+.TP
+\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
+The ssh password
+.
+.TP
+\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
+The ssh username
+.
+.P
+The \fIssh\fR sub\-command opens an ssh session to each of the nodes in the search results of the \fIQUERY\fR\. This sub\-command requires that the net\-ssh\-multi and highline Ruby libraries are installed\. On Debian systems, these are the libnet\-ssh\-multi\-ruby and libhighline\-ruby packages\. They can also be installed as RubyGems (net\-ssh\-multi and highline, respectively)\.
diff --git a/chef/distro/common/man/man1/knife-status.1 b/chef/distro/common/man/man1/knife-status.1
new file mode 100644
index 0000000000..cced0789c6
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-status.1
@@ -0,0 +1,17 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-STATUS" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-status\fR \- Display status information for the nodes in your infrastructure
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBstatus\fR \fI(options)\fR
+.
+.TP
+\fB\-r\fR, \fB\-\-run\-list RUN_LIST\fR
+Show the run list
+.
+.P
+The \fIstatus\fR sub\-command searches the Chef Server for all nodes and displays information about the last time the node checked into the server and executed a \fBnode\.save\fR\. The fields displayed are the relative checkin time, the node name, it\'s operating system platform and version, the fully\-qualified domain name and the default IP address\. If the \fB\-r\fR option is given, the node\'s run list will also be displayed\. Note that depending on the configuration of the nodes, the FQDN and IP displayed may not be publicly reachable\.
diff --git a/chef/distro/common/man/man1/knife-tag.1 b/chef/distro/common/man/man1/knife-tag.1
new file mode 100644
index 0000000000..ebef20e314
--- /dev/null
+++ b/chef/distro/common/man/man1/knife-tag.1
@@ -0,0 +1,13 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE\-TAG" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\-tag\fR \- Apply tags to nodes on a Chef Server
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fBtag\fR \fIsubcommand\fR \fI(options)\fR
+.
+.SH "TAG SUBCOMMANDS"
+
diff --git a/chef/distro/common/man/man1/knife.1 b/chef/distro/common/man/man1/knife.1
new file mode 100644
index 0000000000..193002671a
--- /dev/null
+++ b/chef/distro/common/man/man1/knife.1
@@ -0,0 +1,346 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "KNIFE" "1" "April 2011" "Chef 0.10.0.beta.7" "Chef Manual"
+.
+.SH "NAME"
+\fBknife\fR \- Chef Server REST API utility
+.
+.SH "SYNOPSIS"
+\fBknife\fR \fIsub\-command\fR \fI(options)\fR
+.
+.SH "DESCRIPTION"
+This manual page documents knife, a command\-line utility used to interact with a Chef server directly through the RESTful API\. Knife uses sub\-commands to take various actions on different types of Chef objects\. Some sub\-commands take additional options\. General options follow sub\-commands and their options\. A configuration file can be created for common defaults\.
+.
+.P
+Unless otherwise specified, output is in JSON format, and input files are also JSON format\.
+.
+.P
+The Chef class \fBChef::Config\fR that configures the behavior of how knife runs has options that correspond to command\-line options\. These are noted as \fBChef::Config\fR values\.
+.
+.SH "GENERAL OPTIONS"
+.
+.TP
+\fB\-s\fR, \fB\-\-server\-url\fR URL
+Chef Server URL, corresponds to \fBChef::Config\fR \fBchef_server_url\fR\.
+.
+.TP
+\fB\-k\fR, \fB\-\-key\fR KEY
+API Client Key, corresponds to \fBChef::Config\fR \fBclient_key\fR\.
+.
+.TP
+\fB\-c\fR, \fB\-\-config\fR CONFIG
+The configuration file to use
+.
+.TP
+\fB\-e\fR, \fB\-\-editor\fR EDITOR
+Set the editor to use for interactive commands
+.
+.TP
+\fB\-F\fR, \fB\-\-format\fR FORMAT
+Which format to use for output
+.
+.TP
+\fB\-l\fR, \fB\-\-log_level\fR LEVEL
+Set the log level (debug, info, warn, error, fatal), corresponds to \fBChef::Config\fR \fBlog_level\fR\.
+.
+.TP
+\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
+Set the log file location, defaults to STDOUT, corresponds to \fBChef::Config\fR \fBlog_location\fR\.
+.
+.TP
+\fB\-n\fR, \fB\-\-no\-editor\fR
+Do not open EDITOR, just accept the data as is
+.
+.TP
+\fB\-u\fR, \fB\-\-user\fR USER
+API Client Username, corresponds to \fBChef::Config\fR \fBnode_name\fR\.
+.
+.TP
+\fB\-p\fR, \fB\-\-print\-after\fR
+Show the data after a destructive operation
+.
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show chef version
+.
+.TP
+\fB\-y\fR, \fB\-\-yes\fR
+Say yes to all prompts for confirmation
+.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this message
+.
+.P
+Usage information for sub\-commands can be displayed with \fBknife SUB\-COMMAND \-\-help\fR\.
+.
+.SH "SUB\-COMMANDS"
+Knife sub\-commands are structured as \fINOUN verb NOUN (options)\fR\. The sub\-commands are meant to be intuitively named\. Because the Chef Server API is RESTful, sub\-commands generally utilize CRUD operations\.
+.
+.IP "\(bu" 4
+create (create)
+.
+.IP "\(bu" 4
+list and show (read)
+.
+.IP "\(bu" 4
+edit (update)
+.
+.IP "\(bu" 4
+delete (destroy)
+.
+.IP "" 0
+.
+.P
+Objects stored on the server support these, as described below\.
+.
+.SH "GENERAL SUB\-COMMANDS"
+\fBrecipe list [PATTERN]\fR
+.
+.P
+List available recipes from the server\. Specify \fIPATTERN\fR as a regular expression to limit the results\.
+.
+.SH "CONFIGURATION"
+The knife configuration file is a Ruby DSL to set configuration parameters for Knife\'s \fBGENERAL OPTIONS\fR\. The default location for the config file is \fB~/\.chef/knife\.rb\fR\. If managing multiple Chef repositories, per\-repository config files can be created\. The file must be \fB\.chef/knife\.rb\fR in the current directory of the repository\.
+.
+.P
+If the config file exists, knife uses these settings for \fBGENERAL OPTIONS\fR defaults\.
+.
+.P
+\fBlog_level\fR
+.
+.P
+A Ruby symbol specifying the log level\. Corresponds to \fB\-l\fR or \fB\-\-log_level\fR option\. Default is \fI:info\fR\. Valid values are:
+.
+.IP "\(bu" 4
+:info
+.
+.IP "\(bu" 4
+:debug
+.
+.IP "\(bu" 4
+:warn
+.
+.IP "\(bu" 4
+:fatal
+.
+.IP "" 0
+.
+.P
+\fBlog_location\fR
+.
+.P
+Corresponds to the \fB\-L\fR or \fB\-\-log\-file\fR option\. Defaults is \fBSTDOUT\fR\. Valid values are \fBSTDOUT\fR or a filename\.
+.
+.P
+\fBnode_name\fR
+.
+.P
+User to authenticate to the Chef server\. Corresponds to the \fB\-u\fR or \fB\-\-user\fR option\. This is requested from the user when running this sub\-command\.
+.
+.P
+\fBclient_key\fR
+.
+.P
+Private key file to authenticate to the Chef server\. Corresponds to the \fB\-k\fR or \fB\-\-key\fR option\. This is requested from the user when running this sub\-command\.
+.
+.P
+\fBchef_server_url\fR
+.
+.P
+URL of the Chef server\. Corresponds to the \fB\-s\fR or \fB\-\-server\-url\fR option\. This is requested from the user when running this sub\-command\.
+.
+.P
+\fBcache_type\fR
+.
+.P
+The type of cache to use\. Default is BasicFile\. This can be any type of Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper, File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant, Xattr, YAML\.
+.
+.P
+\fBcache_options\fR
+.
+.P
+Specifies various options to use for caching\. Default reads the Chef client configuration (/etc/chef/checksums)\.
+.
+.P
+\fBvalidation_client_name\fR
+.
+.P
+Specifies the name of the client used to validate new clients\. This is requested from the user when running the configuration sub\-command\.
+.
+.P
+\fBvalidation_key\fR
+.
+.P
+Specifies the private key file to use for generating ec2 instance data for validating new clients\. This is implied from the \fBvalidation_client_name\fR\.
+.
+.P
+\fBcookbook_copyright\fR \fBcookbook_email\fR \fBcookbook_license\fR
+.
+.P
+Used by \fBknife cookbook create\fR sub\-command to specify the copyright holder, maintainer email and license (respectively) for new cookbooks\. The copyright holder is listed as the maintainer in the cookbook\'s metadata and as the Copyright in the comments of the default recipe\. The maintainer email is used in the cookbook metadata\. The license determines what preamble to put in the comment of the default recipe, and is listed as the license in the cookbook metadata\. Currently supported licenses are "apachev2" and "none"\. Any other values will result in an empty license in the metadata (needs to be filled in by the author), and no comment preamble in the default recipe\.
+.
+.P
+\fBknife[:aws_access_key_id]\fR \fBknife[:aws_secret_access_key]\fR
+.
+.P
+Specifies the Amazon AWS EC2 credentials to use when running the ec2 sub\-commands\.
+.
+.P
+\fBknife[:rackspace_api_username]\fR \fBknife[:rackspace_api_key]\fR
+.
+.P
+Specifies the Rackspace Cloud credentials to use when running the rackspace sub\-commands\.
+.
+.P
+\fBknife[:terremark_username]\fR \fBknife[:terremark_password]\fR \fBknife[:terremark_service]\fR
+.
+.P
+Specifies the Terremark vCloud credentials to use when running the terremark sub\-commands\.
+.
+.P
+\fBknife[:slicehost_password]\fR
+.
+.P
+Specifies the Slicehost password to use when running the slicdehost sub\-commands\.
+.
+.SH "FILES"
+\fI~/\.chef/knife\.rb\fR
+.
+.P
+Ruby DSL configuration file for knife\. See \fBCONFIGURATION\fR\.
+.
+.SH "CHEF WORKFLOW"
+When working with Chef and Knife in the local repository, the recommended workflow outline looks like:
+.
+.IP "\(bu" 4
+Create repository\. A skeleton sample is provided at \fIhttp://github\.com/opscode/chef\-repo/\fR\.
+.
+.IP "\(bu" 4
+Configure knife, see \fBCONFIGURATION\fR\.
+.
+.IP "\(bu" 4
+Download cookbooks from the Opscode cookbooks site, see \fBCOOKBOOK SITE SUB\-COMMANDS\fR\.
+.
+.IP "\(bu" 4
+Or, create new cookbooks, see \fBcookbook create\fR sub\-command\.
+.
+.IP "\(bu" 4
+Commit changes to the version control system\. See your tool\'s documentation\.
+.
+.IP "\(bu" 4
+Upload cookbooks to the Chef Server, see \fBCOOKBOOK SUB\-COMMANDS\fR\.
+.
+.IP "\(bu" 4
+Launch instances in the Cloud, OR provision new hosts; see \fBCLOUD COMPUTING SUB\-COMMANDS\fR and \fBBOOTSTRAP SUB\-COMMANDS\fR\.
+.
+.IP "\(bu" 4
+Watch Chef configure systems!
+.
+.IP "" 0
+.
+.P
+A note about git: Opscode and many folks in the Chef community use git, but it is not required, except in the case of the \fBcookbook site vendor\fR sub\-command, as it uses git directly\. Version control is strongly recommended though, and git fits with a lot of the workflow paradigms\.
+.
+.SH "EXAMPLES"
+Example client config (\fB/etc/chef/client\.rb\fR) from \fBknife configure client\fR\. The same configuration is used when using the \fBknife bootstrap\fR command with the default \fBgem\fR templates that come with Chef\.
+.
+.IP "" 4
+.
+.nf
+
+log_level :info
+log_location STDOUT
+chef_server_url \'https://api\.opscode\.com/organizations/ORGNAME\'
+validation_client_name \'ORGNAME\-validator\'
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Setting up a custom bootstrap is fairly straightforward\. Create \fB\.chef/bootstrap\fR in your Chef Repository directory or in \fB$HOME/\.chef/bootstrap\fR\. Then create the ERB template file\.
+.
+.IP "" 4
+.
+.nf
+
+mkdir ~/\.chef/bootstrap
+vi ~/\.chef/bootstrap/debian5\.0\-apt\.erb
+.
+.fi
+.
+.IP "" 0
+.
+.P
+For example, to create a new bootstrap template that should be used when setting up a new Debian node\. Edit the template to run the commands, set up the validation certificate and the client configuration file, and finally to run chef\-client on completion\. The bootstrap template can be called with:
+.
+.IP "" 4
+.
+.nf
+
+knife bootstrap mynode\.example\.com \-\-template\-file ~/\.chef/bootstrap/debian5\.0\-apt\.erb
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Or,
+.
+.IP "" 4
+.
+.nf
+
+knife bootstrap mynode\.example\.com \-\-distro debian5\.0\-apt
+.
+.fi
+.
+.IP "" 0
+.
+.P
+The \fB\-\-distro\fR parameter will automatically look in the \fB~/\.chef/bootstrap\fR directory for a file named \fBdebian5\.0\-apt\.erb\fR\.
+.
+.P
+Templates provided by the Chef installation are located in \fBBASEDIR/lib/chef/knife/bootstrap/*\.erb\fR, where \fIBASEDIR\fR is the location where the package or Gem installed the Chef client libraries\.
+.
+.P
+Uploading cookbooks to the Opscode cookbooks site using the user/certificate specifically:
+.
+.IP "" 4
+.
+.nf
+
+knife cookbook site share example Other \-k ~/\.chef/USERNAME\.pem \-u USERNAME
+.
+.fi
+.
+.IP "" 0
+.
+.SH "ENVIRONMENT"
+.
+.TP
+\fBEDITOR\fR
+The text editor to use for editing data\. The \-\-editor option takes precedence over this value, and the \-\-no\-editor option supresses data editing entirely\.
+.
+.SH "SEE ALSO"
+Full documentation for Chef is located on the Chef wiki, http://wiki\.opscode\.com/display/chef/Home/\.
+.
+.P
+JSON is JavaScript Object Notation and more information can be found at http://json\.org/\.
+.
+.P
+SOLR is an open source search engine\. The Chef Server includes a SOLR installation\. More information about SOLR, including the search query syntax, can be found at http://lucene\.apache\.org/solr/\.
+.
+.P
+Git is a version control system and documented at http://git\-scm\.com/\.
+.
+.P
+This manual page was generated in nroff from Markdown with ronn\. Ryan Tomayko wrote ronn and more information can be found at http://rtomayko\.github\.com/ronn/ronn\.5\.html\.
+.
+.SH "AUTHOR"
+Chef was written by Adam Jacob \fIadam@opscode\.com\fR of Opscode (\fIhttp://www\.opscode\.com\fR), with contributions from the community\. This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
+.
+.P
+On Debian systems, the complete text of the Apache 2\.0 License can be found in \fB/usr/share/common\-licenses/Apache\-2\.0\fR\.
diff --git a/chef/distro/common/man/man8/shef.8 b/chef/distro/common/man/man1/shef.1
index 318d345ec0..318d345ec0 100644
--- a/chef/distro/common/man/man8/shef.8
+++ b/chef/distro/common/man/man1/shef.1
diff --git a/chef/distro/common/man/man1/chef-server-webui.1 b/chef/distro/common/man/man8/chef-server-webui.8
index 94c6dae98a..94c6dae98a 100644
--- a/chef/distro/common/man/man1/chef-server-webui.1
+++ b/chef/distro/common/man/man8/chef-server-webui.8
diff --git a/chef/distro/common/man/man1/chef-server.1 b/chef/distro/common/man/man8/chef-server.8
index 4d4501f355..4d4501f355 100644
--- a/chef/distro/common/man/man1/chef-server.1
+++ b/chef/distro/common/man/man8/chef-server.8
diff --git a/chef/distro/common/man/man8/chef-solr-rebuild.8 b/chef/distro/common/man/man8/chef-solr-rebuild.8
deleted file mode 100644
index 0359a91b16..0000000000
--- a/chef/distro/common/man/man8/chef-solr-rebuild.8
+++ /dev/null
@@ -1,37 +0,0 @@
-.TH CHEF-SOLR-REBUILD: "1" "March 2010" "chef-solr-rebuild" "User Commands"
-.SH NAME
-chef-solr-rebuild: \- manual page for chef-solr-rebuild
-.SH SYNOPSIS
-.B chef-solr-rebuild
-\fI(options)\fR
-.SH DESCRIPTION
-.TP
-\fB\-c\fR, \fB\-\-config\fR CONFIG
-The configuration file to use
-.TP
-\fB\-d\fR, \fB\-\-couchdb\-database\fR DB
-The CouchDB Database to re\-index
-.TP
-\fB\-u\fR, \fB\-\-couchdb\-url\fR URL
-The CouchDB URL
-.TP
-\fB\-l\fR, \fB\-\-log_level\fR LEVEL
-Set the log level (debug, info, warn, error, fatal)
-.TP
-\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
-Set the log file location, defaults to STDOUT \- recommended for daemonizing
-.TP
-\fB\-v\fR, \fB\-\-version\fR
-Show chef\-solr\-rebuild version
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Show this message
-.SH "SEE ALSO"
-Full documentation for Chef and chef-solr is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
-.SH AUTHOR
-chef-solr-rebuild was written by Adam Jacob <adam@ospcode.com> of Opscode (http://www.opscode.com), with contributions from the community.
-This manual page was written by Joshua Timberman <joshua@opscode.com> with help2man. Permission is granted
-to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
-
-On Debian systems, the complete text of the Apache 2.0 License can be found in
-/usr/share/common-licenses/Apache-2.0.
diff --git a/chef/distro/common/man/man1/chef-solr.1 b/chef/distro/common/man/man8/chef-solr.8
index a2b415b330..a2b415b330 100644
--- a/chef/distro/common/man/man1/chef-solr.1
+++ b/chef/distro/common/man/man8/chef-solr.8
diff --git a/chef/distro/common/man/man8/knife.8 b/chef/distro/common/man/man8/knife.8
deleted file mode 100644
index 4662b69f1f..0000000000
--- a/chef/distro/common/man/man8/knife.8
+++ /dev/null
@@ -1,1349 +0,0 @@
-.\" generated with Ronn/v0.7.3
-.\" http://github.com/rtomayko/ronn/tree/0.7.3
-.
-.TH "KNIFE" "8" "September 2010" "" ""
-.
-.SH "NAME"
-\fBknife\fR \- Chef Server REST API utility
-.
-.SH "SYNOPSIS"
-\fBknife\fR \fIsub\-command\fR \fI(options)\fR
-.
-.SH "DESCRIPTION"
-This manual page documents knife, a command\-line utility used to interact with a Chef server directly through the RESTful API\. Knife uses sub\-commands to take various actions on different types of Chef objects\. Some sub\-commands take additional options\. General options follow sub\-commands and their options\. A configuration file can be created for common defaults\.
-.
-.P
-Unless otherwise specified, output is in JSON format, and input files are also JSON format\.
-.
-.P
-The Chef class \fBChef::Config\fR that configures the behavior of how knife runs has options that correspond to command\-line options\. These are noted as \fBChef::Config\fR values\.
-.
-.SH "GENERAL OPTIONS"
-.
-.TP
-\fB\-s\fR, \fB\-\-server\-url\fR URL
-Chef Server URL, corresponds to \fBChef::Config\fR \fBchef_server_url\fR\.
-.
-.TP
-\fB\-k\fR, \fB\-\-key\fR KEY
-API Client Key, corresponds to \fBChef::Config\fR \fBclient_key\fR\.
-.
-.TP
-\fB\-c\fR, \fB\-\-config\fR CONFIG
-The configuration file to use
-.
-.TP
-\fB\-e\fR, \fB\-\-editor\fR EDITOR
-Set the editor to use for interactive commands
-.
-.TP
-\fB\-F\fR, \fB\-\-format\fR FORMAT
-Which format to use for output
-.
-.TP
-\fB\-l\fR, \fB\-\-log_level\fR LEVEL
-Set the log level (debug, info, warn, error, fatal), corresponds to \fBChef::Config\fR \fBlog_level\fR\.
-.
-.TP
-\fB\-L\fR, \fB\-\-logfile\fR LOGLOCATION
-Set the log file location, defaults to STDOUT, corresponds to \fBChef::Config\fR \fBlog_location\fR\.
-.
-.TP
-\fB\-n\fR, \fB\-\-no\-editor\fR
-Do not open EDITOR, just accept the data as is
-.
-.TP
-\fB\-u\fR, \fB\-\-user\fR USER
-API Client Username, corresponds to \fBChef::Config\fR \fBnode_name\fR\.
-.
-.TP
-\fB\-p\fR, \fB\-\-print\-after\fR
-Show the data after a destructive operation
-.
-.TP
-\fB\-v\fR, \fB\-\-version\fR
-Show chef version
-.
-.TP
-\fB\-y\fR, \fB\-\-yes\fR
-Say yes to all prompts for confirmation
-.
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Show this message
-.
-.P
-Usage information for sub\-commands can be displayed with \fBknife SUB\-COMMAND \-\-help\fR\.
-.
-.SH "SUB\-COMMANDS"
-Knife sub\-commands are structured as \fINOUN verb NOUN (options)\fR\. The sub\-commands are meant to be intuitively named\. Because the Chef Server API is RESTful, sub\-commands generally utilize CRUD operations\.
-.
-.IP "\(bu" 4
-create (create)
-.
-.IP "\(bu" 4
-list and show (read)
-.
-.IP "\(bu" 4
-edit (update)
-.
-.IP "\(bu" 4
-delete (destroy)
-.
-.IP "" 0
-.
-.P
-Objects stored on the server support these, as described below\.
-.
-.SH "GENERAL SUB\-COMMANDS"
-The following are general sub\-commands that do not fit within the other object types utilized in the Chef Server API\.
-.
-.P
-\fBconfigure\fR \fI(options)\fR
-.
-.TP
-\fB\-i\fR, \fB\-\-initial\fR
-Create an initial API Client
-.
-.TP
-\fB\-r\fR, \fB\-\-repository REPO\fR
-The path to your chef\-repo
-.
-.P
-Create a configuration file for knife\. This will prompt for values to enter into the file\. Default values are listed in square brackets if no other entry is typed\. See \fBCONFIGURATION\fR below for available options\.
-.
-.P
-\fBconfigure client DIRECTORY\fR
-.
-.P
-Read the \fBknife\.rb\fR config file and generate a config file suitable for use in \fB/etc/chef/client\.rb\fR and copy the validation certificate into the specified \fIDIRECTORY\fR\.
-.
-.P
-\fBindex rebuild\fR \fI(options)\fR
-.
-.TP
-\fB\-y\fR, \fB\-\-yes\fR
-don\'t bother to ask if I\'m sure
-.
-.P
-Rebuilds all the search indexes on the server\.
-.
-.P
-\fBrecipe list [PATTERN]\fR
-.
-.P
-List available recipes from the server\. Specify \fIPATTERN\fR as a regular expression to limit the results\.
-.
-.P
-\fBsearch INDEX QUERY\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-attribute ATTR\fR
-Show only one attribute
-.
-.TP
-\fB\-i\fR, \fB\-\-id\-only\fR
-Show only the ID of matching objects
-.
-.TP
-\fB\-R\fR, \fB\-\-rows INT\fR
-The number of rows to return
-.
-.TP
-\fB\-r\fR, \fB\-\-run\-list\fR
-Show only the run list
-.
-.TP
-\fB\-o\fR, \fB\-\-sort SORT\fR
-The order to sort the results in
-.
-.TP
-\fB\-b\fR, \fB\-\-start ROW\fR
-The row to start returning results at
-.
-.P
-Search indexes are a feature of the Chef Server and the search sub\-command allows querying any of the available indexes using SOLR query syntax\. The following data types are indexed for search: \fInode\fR, \fIrole\fR, \fIclient\fR, \fIdata bag\fR\.
-.
-.P
-\fBssh QUERY COMMAND\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-attribute ATTR\fR
-The attribute to use for opening the connection \- default is fqdn
-.
-.TP
-\fB\-C\fR, \fB\-\-concurrency NUM\fR
-The number of concurrent connections
-.
-.TP
-\fB\-m\fR, \fB\-\-manual\-list\fR
-QUERY is a space separated list of servers
-.
-.TP
-\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
-The ssh password
-.
-.TP
-\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
-The ssh username
-.
-.P
-The \fIssh\fR sub\-command opens an ssh session to each of the nodes in the search results of the \fIQUERY\fR\. This sub\-command requires that the net\-ssh\-multi and highline Ruby libraries are installed\. On Debian systems, these are the libnet\-ssh\-multi\-ruby and libhighline\-ruby packages\. They can also be installed as RubyGems (net\-ssh\-multi and highline, respectively)\.
-.
-.P
-\fBstatus\fR \fI(options)\fR
-.
-.TP
-\fB\-r\fR, \fB\-\-run\-list RUN_LIST\fR
-Show the run list
-.
-.P
-The \fIstatus\fR sub\-command searches the Chef Server for all nodes and displays information about the last time the node checked into the server and executed a \fBnode\.save\fR\. The fields displayed are the relative checkin time, the node name, it\'s operating system platform and version, the fully\-qualified domain name and the default IP address\. If the \fB\-r\fR option is given, the node\'s run list will also be displayed\. Note that depending on the configuration of the nodes, the FQDN and IP displayed may not be publicly reachable\.
-.
-.SH "BOOTSTRAP SUB\-COMMANDS"
-\fBbootstrap FQDN\fR \fI(options)\fR
-.
-.TP
-\fB\-i\fR, \fB\-\-identity\-file IDENTITY_FILE\fR
-The SSH identity file used for authentication
-.
-.TP
-\fB\-N\fR, \fB\-\-node\-name NAME\fR
-The Chef node name for your new node
-.
-.TP
-\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
-The ssh password
-.
-.TP
-\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
-The ssh username
-.
-.TP
-\fB\-\-prerelease\fR
-Install pre\-release Chef gems
-.
-.TP
-\fB\-r\fR, \fB\-\-run\-list RUN_LIST\fR
-Comma separated list of roles/recipes to apply
-.
-.TP
-\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
-The ssh password
-.
-.TP
-\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
-The ssh username
-.
-.TP
-\fB\-\-template\-file TEMPLATE\fR
-Full path to location of template to use
-.
-.TP
-\fB\-\-sudo\fR
-Execute the bootstrap via sudo
-.
-.TP
-\fB\-d\fR, \fB\-\-distro DISTRO\fR
-Bootstrap a distro using a template
-.
-.P
-Performs a Chef Bootstrap on the target node\. The goal of the bootstrap is to get Chef installed on the target system so it can run Chef Client with a Chef Server\. The main assumption is a baseline OS installation exists\. This sub\-command is used internally by some cloud computing server create commands and the others will be migrated in a future version of Chef\.
-.
-.P
-As of Chef 0\.9\.8, the bootstrap sub\-command supports supplying a template to perform the bootstrap steps\. If the distro is not specified (via \fB\-d\fR or \fB\-\-distro\fR option), an Ubuntu 10\.04 with RubyGems is assumed\. The \fBDISTRO\fR value corresponds to the base filename of the template, in other words \fBDISTRO\fR\.erb\. A template file can be specified with the \fB\-\-template\-file\fR option in which case the \fBDISTRO\fR is not used\. The sub\-command looks in the following locations for the template to use:
-.
-.IP "\(bu" 4
-\fBbootstrap\fR directory in the installed Chef Knife library\.
-.
-.IP "\(bu" 4
-\fBbootstrap\fR directory in the \fB$PWD/\.chef\fR\.
-.
-.IP "\(bu" 4
-\fBbootstrap\fR directory in the users \fB$HOME/\.chef\fR\.
-.
-.IP "" 0
-.
-.P
-The default bootstrap templates are scripts that get copied to the target node (FQDN)\. As of Chef 0\.9\.8, the following distros are supported:
-.
-.IP "\(bu" 4
-centos5\-gems
-.
-.IP "\(bu" 4
-fedora13\-gems
-.
-.IP "\(bu" 4
-ubuntu10\.04\-gems
-.
-.IP "\(bu" 4
-ubuntu10\.04\-apt
-.
-.IP "" 0
-.
-.P
-The gems installations will use RubyGems 1\.3\.6 and Chef installed as a gem\. The apt installation will use the Opscode APT repository\. The RubyGems installation requires installing gems with native extensions, so development related packages (ruby\-dev, build\-essential) are installed\. These are not installed with the apt installation, as native extensions are already compiled in the required packages\.
-.
-.P
-In addition to handling the software installation, these bootstrap templates do the following:
-.
-.IP "\(bu" 4
-Write the validation\.pem per the local knife configuration\.
-.
-.IP "\(bu" 4
-Write a default config file for Chef (\fB/etc/chef/client\.rb\fR) using values from the \fBknife\.rb\fR\.
-.
-.IP "\(bu" 4
-Create a JSON attributes file containing the specified run list and run Chef\.
-.
-.IP "" 0
-.
-.P
-In the case of the RubyGems, the \fBclient\.rb\fR will be written from scratch with a minimal set of values; see \fBEXAMPLES\fR\. In the case of APT Package installation, \fBclient\.rb\fR will have the \fBvalidation_client_name\fR appended if it is not set to \fBchef\-validator\fR (default config value), and the \fBnode_name\fR will be added if \fBchef_node_name\fR option is specified\.
-.
-.P
-When this is complete, the bootstrapped node will have:
-.
-.IP "\(bu" 4
-Latest Chef version installed from RubyGems or APT Packages from Opscode\. This may be a later version than the local system\.
-.
-.IP "\(bu" 4
-Be validated with the configured Chef Server\.
-.
-.IP "\(bu" 4
-Have run Chef with its default run list if one is specfied\.
-.
-.IP "" 0
-.
-.P
-Additional custom bootstrap templates can be created and stored in \fB\.chef/bootstrap/DISTRO\.erb\fR, replacing \fBDISTRO\fR with the value passed with the \fB\-d\fR or \fB\-\-distro\fR option\. See \fBEXAMPLES\fR for more information\.
-.
-.SH "CLIENT SUB\-COMMANDS"
-Clients are entities that communicate with the Chef Server API\.
-.
-.P
-\fBclient bulk delete REGEX\fR \fI(options)\fR
-.
-.P
-Delete clients on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
-.
-.P
-\fBclient create CLIENT\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-admin\fR
-Create the client as an admin
-.
-.TP
-\fB\-f\fR, \fB\-\-file FILE\fR
-Write the key to a file
-.
-.P
-Create a new client\. This generates an RSA keypair\. The private key will be displayed on \fISTDOUT\fR or written to the named file\. The public half will be stored on the Server\. For \fIchef\-client\fR systems, the private key should be copied to the system as \fB/etc/chef/client\.pem\fR\.
-.
-.P
-Admin clients should be created for users that will use \fIknife\fR to access the API as an administrator\. The private key will generally be copied to \fB~/\.chef/CLIENT\.pem\fR and referenced in the \fBknife\.rb\fR configuration file\.
-.
-.P
-\fBclient delete CLIENT\fR \fI(options)\fR
-.
-.P
-Deletes a registered client\.
-.
-.P
-\fBclient edit CLIENT\fR \fI(options)\fR
-.
-.P
-Edit a registered client\.
-.
-.P
-\fBclient list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-List all registered clients\.
-.
-.P
-\fBclient reregister CLIENT\fR \fI(options)\fR
-.
-.TP
-\fB\-f\fR, \fB\-\-file FILE\fR
-Write the key to a file
-.
-.P
-Regenerate the RSA keypair for a client\. The public half will be stored on the server and the private key displayed on \fISTDOUT\fR or written to the named file\.
-.
-.P
-\fBclient show CLIENT\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-attribute ATTR\fR
-Show only one attribute
-.
-.P
-Show a client\.
-.
-.SH "COOKBOOK SUB\-COMMANDS"
-Cookbooks are the fundamental unit of distribution in Chef\. They encapsulate all recipes of resources and assets used to configure a particular aspect of the infrastructure\. The following sub\-commands can be used to manipulate the cookbooks stored on the Chef Server\.
-.
-.P
-\fBcookbook bulk delete REGEX\fR \fI(options)\fR
-.
-.TP
-\fB\-p\fR, \fB\-\-purge\fR
-Purge files from backing store\. This will disable any cookbook that contains any of the same files as the cookbook being purged\.
-.
-.P
-Delete cookbooks on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
-.
-.P
-\fBcookbook create COOKBOOK\fR \fI(options)\fR
-.
-.TP
-\fB\-o\fR, \fB\-\-cookbook\-path PATH\fR
-The directory where the cookbook will be created
-.
-.TP
-\fB\-r\fR, \fB\-\-readme\-format FORMAT\fR
-Format of the README file
-.
-.TP
-\fB\-C\fR, \fB\-\-copyright COPYRIGHT\fR
-Name of Copyright holder
-.
-.TP
-\fB\-I\fR, \fB\-\-license LICENSE\fR
-License for cookbook, apachev2 or none
-.
-.TP
-\fB\-E\fR, \fB\-\-email EMAIL\fR
-Email address of cookbook maintainer
-.
-.P
-This is a helper command that creates a new cookbook directory in the \fBcookbook_path\fR\. The following directories and files are created for the named cookbook\.
-.
-.IP "\(bu" 4
-COOKBOOK/attributes
-.
-.IP "\(bu" 4
-COOKBOOK/definitions
-.
-.IP "\(bu" 4
-COOKBOOK/files/default
-.
-.IP "\(bu" 4
-COOKBOOK/libraries
-.
-.IP "\(bu" 4
-COOKBOOK/metadata\.rb
-.
-.IP "\(bu" 4
-COOKBOOK/providers
-.
-.IP "\(bu" 4
-COOKBOOK/README\.rdoc
-.
-.IP "\(bu" 4
-COOKBOOK/recipes/default\.rb
-.
-.IP "\(bu" 4
-COOKBOOK/resources
-.
-.IP "\(bu" 4
-COOKBOOK/templates/default
-.
-.IP "" 0
-.
-.P
-Supported README formats are \'rdoc\' (default), \'md\', \'mkd\', \'txt\'\. The README file will be written with the specified extension and a set of helpful starting headers\.
-.
-.P
-Specify \fB\-C\fR or \fB\-\-copyright\fR with the name of the copyright holder as your name or your company/organization name in a quoted string\. If this value is not specified an all\-caps string \fBYOUR_COMPANY_NAME\fR is used which can be easily changed with find/replace\.
-.
-.P
-Specify \fB\-I\fR or \fB\-\-license\fR with the license that the cookbook is distributed under for sharing with other people or posting to the Opscode Cookbooks site\. Be aware of the licenses of files you put inside the cookbook and follow any restrictions they describe\. When using \fBnone\fR (default) or \fBapachev2\fR, comment header text and metadata file are pre\-filled\. The \fBnone\fR license will be treated as non\-redistributable\.
-.
-.P
-Specify \fB\-E\fR or \fB\-\-email\fR with the email address of the cookbook\'s maintainer\. If this value is not specified, an all\-caps string \fBYOUR_EMAIL\fR is used which can easily be changed with find/replace\.
-.
-.P
-The cookbook copyright, license and email settings can be filled in the \fBknife\.rb\fR, for example with default values:
-.
-.IP "" 4
-.
-.nf
-
-cookbook_copyright "YOUR_COMPANY_NAME"
-cookbook_license "none"
-cookbook_email "YOUR_EMAIL"
-.
-.fi
-.
-.IP "" 0
-.
-.P
-\fBcookbook delete COOKBOOK [VERSION]\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-all\fR
-Delete all versions
-.
-.TP
-\fB\-p\fR, \fB\-\-purge\fR
-Purge files from backing store\. This will disable any cookbook that contains any of the same files as the cookbook being purged\.
-.
-.P
-Delete the specified \fIVERSION\fR of the named \fICOOKBOOK\fR\. If no version is specified, and only one version exists on the server, that version will be deleted\. If multiple versions are available on the server, you will be prompted for a version to delete\.
-.
-.P
-\fBcookbook download COOKBOOK [VERSION]\fR \fI(options)\fR
-.
-.TP
-\fB\-d\fR, \fB\-\-dir DOWNLOAD_DIRECTORY\fR
-The directory to download the cookbook into
-.
-.TP
-\fB\-f\fR, \fB\-\-force\fR
-Overwrite an existing directory with the download
-.
-.TP
-\fB\-N\fR, \fB\-\-latest\fR
-Download the latest version of the cookbook
-.
-.P
-Download a cookbook from the Chef Server\. If no version is specified and only one version exists on the server, that version will be downloaded\. If no version is specified and multiple versions are available on the server, you will be prompted for a version to download\.
-.
-.P
-\fBcookbook list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-List all the cookbooks\.
-.
-.P
-\fBcookbook metadata COOKBOOK\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-all\fR
-Generate metadata for all cookbooks, rather than just a single cookbook
-.
-.TP
-\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
-A colon\-separated path to look for cookbooks in
-.
-.P
-Generate cookbook metadata for the named \fICOOKBOOK\fR\. The \fIPATH\fR used here specifies where the cookbooks directory is located and corresponds to the \fBcookbook_path\fR configuration option\.
-.
-.P
-\fBcookbook metadata from FILE\fR \fI(options)\fR
-.
-.P
-Load the cookbook metadata from a specified file\.
-.
-.P
-\fBcookbook show COOKBOOK [VERSION] [PART] [FILENAME]\fR \fI(options)\fR
-.
-.TP
-\fB\-f\fR, \fB\-\-fqdn FQDN\fR
-The FQDN of the host to see the file for
-.
-.TP
-\fB\-p\fR, \fB\-\-platform PLATFORM\fR
-The platform to see the file for
-.
-.TP
-\fB\-V\fR, \fB\-\-platform\-version VERSION\fR
-The platform version to see the file for
-.
-.P
-Show a particular part of a \fICOOKBOOK\fR for the specified \fIVERSION\fR\. \fIPART\fR can be one of:
-.
-.IP "\(bu" 4
-\fIattributes\fR
-.
-.IP "\(bu" 4
-\fIdefinitions\fR
-.
-.IP "\(bu" 4
-\fIfiles\fR
-.
-.IP "\(bu" 4
-\fIlibraries\fR
-.
-.IP "\(bu" 4
-\fIproviders\fR
-.
-.IP "\(bu" 4
-\fIrecipes\fR
-.
-.IP "\(bu" 4
-\fIresources\fR
-.
-.IP "\(bu" 4
-\fItemplates\fR
-.
-.IP "" 0
-.
-.P
-\fBcookbook test [COOKBOOKS\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-all\fR
-Test all cookbooks, rather than just a single cookbook
-.
-.TP
-\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
-A colon\-separated path to look for cookbooks in
-.
-.P
-Test the specified cookbooks for syntax errors\. This uses the built\-in Ruby syntax checking option for files in the cookbook ending in \fB\.rb\fR, and the ERB syntax check for files ending in \fB\.erb\fR (templates)\.
-.
-.P
-\fBcookbook upload [COOKBOOKS\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-all\fR
-Upload all cookbooks, rather than just a single cookbook
-.
-.TP
-\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
-A colon\-separated path to look for cookbooks in
-.
-.P
-Uploads the specified cookbooks to the Chef Server\. The actual upload executes a number of commands, most of which occur on the local machine\. The cookbook is staged in a temporary location\. Then the \fBcookbook_path\fR (or \fB\-o PATH\fR) is processed to search for the named cookbook, and each occurance is copied in the order specified\. A syntax check is performed a la \fBcookbook test\fR, above\. The metadata is generated, a la \fBcookbook metadata\fR\. A gzip(1)\'ed, tar(1) file is created, and is uploaded to the server\.
-.
-.SH "COOKBOOK SITE SUB\-COMMANDS"
-The following sub\-commands are still in the context of cookbooks, but they make use of Opscode\'s Cookbook Community site, \fIhttp://cookbooks\.opscode\.com/\fR\. That site has an API, and these sub\-commands utilize that API, rather than the Chef Server API\.
-.
-.P
-\fBcookbook site download COOKBOOK [VERSION]\fR \fI(options)\fR
-.
-.TP
-\fB\-f\fR, \fB\-\-file FILE\fR
-The filename to write to
-.
-.P
-Downloads a specific cookbook from the Community site, optionally specifying a certain version\.
-.
-.P
-\fBcookbook site list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-Lists available cookbooks from the Community site\.
-.
-.P
-\fBcookbook site search QUERY\fR \fI(options)\fR
-.
-.P
-Searches the Community site with the specified query\.
-.
-.P
-\fBcookbook site share COOKBOOK CATEGORY\fR \fI(options)\fR
-.
-.TP
-\fB\-k\fR, \fB\-\-key KEY\fR
-API Client Key
-.
-.TP
-\fB\-u\fR, \fB\-\-user USER\fR
-API Client Username
-.
-.TP
-\fB\-o\fR, \fB\-\-cookbook\-path PATH:PATH\fR
-A colon\-separated path to look for cookbooks in
-.
-.P
-Uploads the specified cookbook using the given category to the Opscode cookbooks site\. Requires a login user and certificate for the Opscode Cookbooks site\. See \fBEXAMPLES\fR for usage if the Opscode user and certificate pair are not used for authenticating with the Chef Server\. In other words, if the Chef Server is not the Opscode Platform\.
-.
-.P
-\fBcookbook site unshare COOKBOOK\fR
-.
-.P
-Stops sharing the specified cookbook on the Opscode cookbooks site\.
-.
-.P
-\fBcookbook site show COOKBOOK [VERSION]\fR \fI(options)\fR
-.
-.P
-Shows information from the site about a particular cookbook\.
-.
-.P
-\fBcookbook site vendor COOKBOOK [VERSION]\fR \fI(options)\fR
-.
-.TP
-\fB\-d\fR, \fB\-\-dependencies\fR
-Grab dependencies automatically
-.
-.P
-Uses \fBgit\fR version control in conjunction with the cookbook site to download upstream cookbooks\. A new vendor branch is created in git, the cookbook downloaded from the site and untarred, then the master branch is merged\. This allows the user to track upstream changes to cookbooks while merging in customizations\. If \fI\-d\fR is specified, all the cookbooks it depends on (via metadata \fIdependencies\fR) are downloaded and untarred as well, each using their own vendor branch\.
-.
-.SH "DATA BAG SUB\-COMMANDS"
-Data bags are stores of JSON blobs\. These blobs are called items\. They are free form JSON and indexed by the Chef Server\.
-.
-.P
-\fBdata bag create BAG [ITEM]\fR \fI(options)\fR
-.
-.P
-Create a new data bag, or an item in a data bag\.
-.
-.P
-\fBdata bag delete BAG [ITEM]\fR \fI(options)\fR
-.
-.P
-Delete a data bag, or an item from a data bag\.
-.
-.P
-\fBdata bag edit BAG ITEM\fR \fI(options)\fR
-.
-.P
-Edit an item in a data bag\.
-.
-.P
-\fBdata bag from file BAG FILE\fR \fI(options)\fR
-.
-.P
-Load a data bag item from a JSON file\. Looks in the directory \fBdata_bags/BAG/ITEM\.json\fR unless a relative path is specified\.
-.
-.P
-\fBdata bag list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-List the available data bags\.
-.
-.P
-\fBdata bag show BAG [ITEM]\fR \fI(options)\fR
-.
-.P
-Show a specific data bag or an item in a data bag\.
-.
-.SH "NODE SUB\-COMMANDS"
-Nodes are the entities which are configured with Chef\. Typically these are servers or workstations\. Nodes are registered as a client, by default by the fully qualified domain name (fqdn)\. A single client may configure more than one node\.
-.
-.P
-\fBnode bulk delete REGEX\fR \fI(options)\fR
-.
-.P
-Delete nodes on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
-.
-.P
-\fBnode create NODE\fR \fI(options)\fR
-.
-.P
-Create a new node\.
-.
-.P
-\fBnode delete NODE\fR \fI(options)\fR
-.
-.P
-Delete a single node\.
-.
-.P
-\fBnode edit NODE\fR \fI(options)\fR
-.
-.P
-Edit a node\.
-.
-.P
-\fBnode from file FILE\fR \fI(options)\fR
-.
-.P
-Create a node from a JSON file\.
-.
-.P
-\fBnode list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-List all nodes\.
-.
-.P
-\fBnode run_list add [NODE] [ENTRY]\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-after ITEM\fR
-Place the ENTRY in the run list after ITEM
-.
-.P
-Add a recipe or role to the node\'s \fBrun_list\fR\.
-.
-.P
-\fBnode run_list remove [NODE] [ENTRY]\fR \fI(options)\fR
-.
-.P
-Remove a recipe or role from the node\'s \fBrun_list\fR\.
-.
-.P
-\fBnode show NODE\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-attribute [ATTR]\fR
-Show only one attribute
-.
-.TP
-\fB\-r\fR, \fB\-\-run\-list\fR
-Show only the run list
-.
-.P
-Show a node\.
-.
-.SH "RECIPE SUB\-COMMANDS"
-\fBrecipe list [PATTERN]\fR
-.
-.P
-List the recipes available on the server\. The results shown can be limited with the optional PATTERN, which is a regular expression\. PATTERN should be given in quotes, without slashes\.
-.
-.SH "ROLE SUB\-COMMANDS"
-\fBrole bulk delete REGEX\fR \fI(options)\fR
-.
-.P
-Delete roles on the Chef Server based on a regular expression\. The regular expression (\fIREGEX\fR) should be in quotes, not in //\'s\.
-.
-.P
-\fBrole create ROLE\fR \fI(options)\fR
-.
-.TP
-\fB\-d\fR, \fB\-\-description\fR
-The role description
-.
-.P
-Create a new role\.
-.
-.P
-\fBrole delete ROLE\fR \fI(options)\fR
-.
-.P
-Delete a role\.
-.
-.P
-\fBrole edit ROLE\fR \fI(options)\fR
-.
-.P
-Edit a role\.
-.
-.P
-\fBrole from file FILE\fR \fI(options)\fR
-.
-.P
-Create or update a role from a role Ruby DSL (\fB\.rb\fR) or JSON file\.
-.
-.P
-\fBrole list\fR \fI(options)\fR
-.
-.TP
-\fB\-w\fR, \fB\-\-with\-uri\fR
-Show corresponding URIs
-.
-.P
-List roles\.
-.
-.P
-\fBrole show ROLE\fR \fI(options)\fR
-.
-.TP
-\fB\-a\fR, \fB\-\-attribute ATTR\fR
-Show only one attribute
-.
-.P
-Show a specific role\.
-.
-.SH "CLOUD COMPUTING SUB\-COMMANDS"
-The next sections describe sub\-commands to work with various Cloud Computing APIs to launch server instances with validation and run\-time configuration that Chef knows about\. These sub\-commands require the fog Ruby library\. On Debian and Ubuntu systems with Opscode\'s apt repository (apt\.opscode\.com), this is the package \fBlibfog\-ruby\fR\. It is also available as a RubyGem, \fBfog\fR\.
-.
-.P
-The Rackspace and Terremark server creation sub\-commands are at an early stage of development\. They do not yet use the \fBbootstrap\fR sub\-command to install Chef, and make a few assumptions to be aware\. Right now when creating instances of these types, knife will assume an Ubuntu image, install Ruby from packages, RubyGems from source and Chef as a RubyGem\. As these commands are developed further, they will utilize the \fBbootstrap\fR sub\-command\.
-.
-.P
-In order to use knife with the various \fBCLOUD COMPUTING SUB\-COMMANDS\fR, credentials need to be added to the configuration file\. See \fBCONFIGURATION\fR\.
-.
-.SH "EC2 SUB\-COMMANDS"
-Chef is commonly used with Amazon AWS EC2 nodes\. This sub\-command will generate instance metadata that can be used to automatically configure an EC2 instance with Chef\. This requires an AMI that has Chef preinstalled with a configuration file that can parse the metadata at run\-time\. At this time this is the only sub\-command for EC2, but more may be added later similar to \fBRACKSPACE\fR and \fBTERREMARK\fR below\.
-.
-.P
-\fBec2 instance data [RUN LIST\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-e\fR, \fB\-\-edit\fR
-Edit the instance data
-.
-.P
-The \fIRUN LIST\fR should be specified as a space separated list of roles or recipes that will be used by the instance to configure the server\.
-.
-.P
-\fBec2 server create [RUN LIST\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-Z\fR, \fB\-\-availability\-zone ZONE\fR
-The Availability Zone
-.
-.TP
-\fB\-\-region\fR
-Your AWS region
-.
-.TP
-\fB\-A\fR, \fB\-\-aws\-access\-key\-id KEY\fR
-Your AWS Access Key ID
-.
-.TP
-\fB\-K SECRET\fR, \fB\-\-aws\-secret\-access\-key\fR
-Your AWS API Secret Access Key
-.
-.TP
-\fB\-f\fR, \fB\-\-flavor FLAVOR\fR
-The flavor of server (m1\.small, m1\.medium, etc)
-.
-.TP
-\fB\-i\fR, \fB\-\-image IMAGE\fR
-The AMI for the server
-.
-.TP
-\fB\-G\fR, \fB\-\-groups X,Y,Z\fR
-The security groups for this server
-.
-.TP
-\fB\-S\fR, \fB\-\-ssh\-key KEY\fR
-The SSH root key, corresponds to an Amazon Keypair\.
-.
-.TP
-\fB\-I\fR, \fB\-\-identity\-file IDENTITY_FILE\fR
-The SSH identity file used for authentication, passed to \fBbootstrap\fR\.
-.
-.TP
-\fB\-P\fR, \fB\-\-ssh\-password PASSWORD\fR
-The ssh password, passed to \fBbootstrap\fR\.
-.
-.TP
-\fB\-x\fR, \fB\-\-ssh\-user USERNAME\fR
-The ssh username, passed to \fBbootstrap\fR\.
-.
-.TP
-\fB\-\-prerelease\fR
-Install pre\-release Chef gems, passed to \fBbootstrap\fR\.
-.
-.TP
-\fB\-\-template\-file TEMPLATE\fR
-Full path to location of template to use, passed to \fBbootstrap\fR\.
-.
-.TP
-\fB\-d\fR, \fB\-\-distro DISTRO\fR
-Bootstrap a distro using a template, passed to \fBbootstrap\fR\.
-.
-.P
-Creates a new Amazon AWS EC2 instance and bootstraps it by calling the \fBbootstrap\fR sub\-command\. The \fB[RUN LIST\.\.\.]\fR items are passed to the bootstrap\'s \fBrun_list\fR config parameter/option\. See the \fBBOOTSTRAP SUB\-COMMANDS\fR section above for more information\.
-.
-.P
-\fBec2 server delete SERVER [SERVER]\fR \fI(options)\fR
-.
-.TP
-\fB\-A\fR, \fB\-\-aws\-access\-key\-id KEY\fR
-Your AWS Access Key ID
-.
-.TP
-\fB\-K SECRET\fR, \fB\-\-aws\-secret\-access\-key\fR
-Your AWS API Secret Access Key
-.
-.P
-Terminates a running Amazon AWS EC2 instance\.
-.
-.P
-\fBec2 server list [RUN LIST\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-A\fR, \fB\-\-aws\-access\-key\-id KEY\fR
-Your AWS Access Key ID
-.
-.TP
-\fB\-K SECRET\fR, \fB\-\-aws\-secret\-access\-key\fR
-Your AWS API Secret Access Key
-.
-.P
-List running Amazon AWS EC2 instances\.
-.
-.SH "RACKSPACE SUB\-COMMANDS"
-In addition to EC2 nodes, Chef can be used on Rackspace Cloud nodes\. The following sub\-commands allow manipulating Rackspace Cloud nodes via the \fBfog\fR library\.
-.
-.P
-\fBrackspace server create [RUN LIST\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-K\fR, \fB\-\-rackspace\-api\-key KEY\fR
-Your rackspace API key
-.
-.TP
-\fB\-A USERNAME\fR, \fB\-\-rackspace\-api\-username\fR
-Your rackspace API username
-.
-.TP
-\fB\-f\fR, \fB\-\-flavor FLAVOR\fR
-The flavor of server
-.
-.TP
-\fB\-i\fR, \fB\-\-image IMAGE\fR
-The image of the server
-.
-.TP
-\fB\-N\fR, \fB\-\-server\-name NAME\fR
-The server name
-.
-.P
-Creates a new Rackspace Cloud server\.
-.
-.P
-\fBrackspace server delete SERVER\fR \fI(options)\fR
-.
-.P
-Deletes a running Rackspace Cloud server\.
-.
-.P
-\fBrackspace server list\fR \fI(options)\fR
-.
-.P
-Lists running Rackspace Cloud servers\.
-.
-.SH "SLICEHOST SUB\-COMMANDS"
-As above, Chef can also be used on Slicehost nodes\. The following sub\-commands allow manipulating Slicehost nodes via the \fBfog\fR library\.
-.
-.P
-\fBslicehost server create [RUN LIST\.\.\.]\fR \fI(options)\fR * \fB\-f\fR, \fB\-\-flavor FLAVOR\fR:
-.
-.IP "" 4
-.
-.nf
-
-The flavor of server
-.
-.fi
-.
-.IP "" 0
-.
-.TP
-\fB\-i\fR, \fB\-\-image IMAGE\fR
-The image of the server
-.
-.TP
-\fB\-N\fR, \fB\-\-server\-name NAME\fR
-The server name
-.
-.TP
-\fB\-K\fR, \fB\-\-slicehost\-password PASSWORD\fR
-Your slicehost API password
-.
-.P
-Creates a new slicehost server\.
-.
-.P
-\fBslicehost server list\fR \fI(options)\fR
-.
-.P
-Lists running Slicehost servers\.
-.
-.P
-\fBslicehost server delete SLICENAME\fR
-.
-.P
-Deletes a running Slicehost server\.
-.
-.P
-\fBslicehost images list\fR
-.
-.P
-Lists the available Slicehost server images to boot\.
-.
-.SH "TERREMARK SUB\-COMMANDS"
-As above, Chef can also be used on Terremark vCloud nodes\. The following sub\-commands allow manipulating Terremark vCloud nodes via the \fBfog\fR library\.
-.
-.P
-\fBterremark server create NAME [RUN LIST\.\.\.]\fR \fI(options)\fR
-.
-.TP
-\fB\-K PASSWORD\fR, \fB\-\-terremark\-password\fR
-Your terremark password
-.
-.TP
-\fB\-S\fR, \fB\-\-terremark\-service SERVICE\fR
-Your terremark service name
-.
-.TP
-\fB\-A USERNAME\fR, \fB\-\-terremark\-username\fR
-Your terremark username
-.
-.P
-Creates a new Terremark vCloud server\.
-.
-.P
-\fBterremark server delete SERVER\fR \fI(options)\fR
-.
-.P
-Deletes a running Terremark vCloud server\.
-.
-.P
-\fBterremark server list\fR \fI(options)\fR
-.
-.TP
-\fB\-K PASSWORD\fR, \fB\-\-terremark\-password\fR
-Your terremark password
-.
-.TP
-\fB\-S\fR, \fB\-\-terremark\-service SERVICE\fR
-Your terremark service name
-.
-.TP
-\fB\-A USERNAME\fR, \fB\-\-terremark\-username\fR
-Your terremark username
-.
-.P
-Lists running Terremark vCloud servers\.
-.
-.SH "CONFIGURATION"
-The knife configuration file is a Ruby DSL to set configuration parameters for Knife\'s \fBGENERAL OPTIONS\fR\. The default location for the config file is \fB~/\.chef/knife\.rb\fR\. If managing multiple Chef repositories, per\-repository config files can be created\. The file must be \fB\.chef/knife\.rb\fR in the current directory of the repository\.
-.
-.P
-If the config file exists, knife uses these settings for \fBGENERAL OPTIONS\fR defaults\.
-.
-.P
-\fBlog_level\fR
-.
-.P
-A Ruby symbol specifying the log level\. Corresponds to \fB\-l\fR or \fB\-\-log_level\fR option\. Default is \fI:info\fR\. Valid values are:
-.
-.IP "\(bu" 4
-:info
-.
-.IP "\(bu" 4
-:debug
-.
-.IP "\(bu" 4
-:warn
-.
-.IP "\(bu" 4
-:fatal
-.
-.IP "" 0
-.
-.P
-\fBlog_location\fR
-.
-.P
-Corresponds to the \fB\-L\fR or \fB\-\-log\-file\fR option\. Defaults is \fBSTDOUT\fR\. Valid values are \fBSTDOUT\fR or a filename\.
-.
-.P
-\fBnode_name\fR
-.
-.P
-User to authenticate to the Chef server\. Corresponds to the \fB\-u\fR or \fB\-\-user\fR option\. This is requested from the user when running this sub\-command\.
-.
-.P
-\fBclient_key\fR
-.
-.P
-Private key file to authenticate to the Chef server\. Corresponds to the \fB\-k\fR or \fB\-\-key\fR option\. This is requested from the user when running this sub\-command\.
-.
-.P
-\fBchef_server_url\fR
-.
-.P
-URL of the Chef server\. Corresponds to the \fB\-s\fR or \fB\-\-server\-url\fR option\. This is requested from the user when running this sub\-command\.
-.
-.P
-\fBcache_type\fR
-.
-.P
-The type of cache to use\. Default is BasicFile\. This can be any type of Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper, File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant, Xattr, YAML\.
-.
-.P
-\fBcache_options\fR
-.
-.P
-Specifies various options to use for caching\. Default reads the Chef client configuration (/etc/chef/checksums)\.
-.
-.P
-\fBvalidation_client_name\fR
-.
-.P
-Specifies the name of the client used to validate new clients\. This is requested from the user when running the configuration sub\-command\.
-.
-.P
-\fBvalidation_key\fR
-.
-.P
-Specifies the private key file to use for generating ec2 instance data for validating new clients\. This is implied from the \fBvalidation_client_name\fR\.
-.
-.P
-\fBcookbook_copyright\fR \fBcookbook_email\fR \fBcookbook_license\fR
-.
-.P
-Used by \fBknife cookbook create\fR sub\-command to specify the copyright holder, maintainer email and license (respectively) for new cookbooks\. The copyright holder is listed as the maintainer in the cookbook\'s metadata and as the Copyright in the comments of the default recipe\. The maintainer email is used in the cookbook metadata\. The license determines what preamble to put in the comment of the default recipe, and is listed as the license in the cookbook metadata\. Currently supported licenses are "apachev2" and "none"\. Any other values will result in an empty license in the metadata (needs to be filled in by the author), and no comment preamble in the default recipe\.
-.
-.P
-\fBknife[:aws_access_key_id]\fR \fBknife[:aws_secret_access_key]\fR
-.
-.P
-Specifies the Amazon AWS EC2 credentials to use when running the ec2 sub\-commands\.
-.
-.P
-\fBknife[:rackspace_api_username]\fR \fBknife[:rackspace_api_key]\fR
-.
-.P
-Specifies the Rackspace Cloud credentials to use when running the rackspace sub\-commands\.
-.
-.P
-\fBknife[:terremark_username]\fR \fBknife[:terremark_password]\fR \fBknife[:terremark_service]\fR
-.
-.P
-Specifies the Terremark vCloud credentials to use when running the terremark sub\-commands\.
-.
-.P
-\fBknife[:slicehost_password]\fR
-.
-.P
-Specifies the Slicehost password to use when running the slicdehost sub\-commands\.
-.
-.SH "FILES"
-\fI~/\.chef/knife\.rb\fR
-.
-.P
-Ruby DSL configuration file for knife\. See \fBCONFIGURATION\fR\.
-.
-.SH "CHEF WORKFLOW"
-When working with Chef and Knife in the local repository, the recommended workflow outline looks like:
-.
-.IP "\(bu" 4
-Create repository\. A skeleton sample is provided at \fIhttp://github\.com/opscode/chef\-repo/\fR\.
-.
-.IP "\(bu" 4
-Configure knife, see \fBCONFIGURATION\fR\.
-.
-.IP "\(bu" 4
-Download cookbooks from the Opscode cookbooks site, see \fBCOOKBOOK SITE SUB\-COMMANDS\fR\.
-.
-.IP "\(bu" 4
-Or, create new cookbooks, see \fBcookbook create\fR sub\-command\.
-.
-.IP "\(bu" 4
-Commit changes to the version control system\. See your tool\'s documentation\.
-.
-.IP "\(bu" 4
-Upload cookbooks to the Chef Server, see \fBCOOKBOOK SUB\-COMMANDS\fR\.
-.
-.IP "\(bu" 4
-Launch instances in the Cloud, OR provision new hosts; see \fBCLOUD COMPUTING SUB\-COMMANDS\fR and \fBBOOTSTRAP SUB\-COMMANDS\fR\.
-.
-.IP "\(bu" 4
-Watch Chef configure systems!
-.
-.IP "" 0
-.
-.P
-A note about git: Opscode and many folks in the Chef community use git, but it is not required, except in the case of the \fBcookbook site vendor\fR sub\-command, as it uses git directly\. Version control is strongly recommended though, and git fits with a lot of the workflow paradigms\.
-.
-.SH "EXAMPLES"
-Example client config (\fB/etc/chef/client\.rb\fR) from \fBknife configure client\fR\. The same configuration is used when using the \fBknife bootstrap\fR command with the default \fBgem\fR templates that come with Chef\.
-.
-.IP "" 4
-.
-.nf
-
-log_level :info
-log_location STDOUT
-chef_server_url \'https://api\.opscode\.com/organizations/ORGNAME\'
-validation_client_name \'ORGNAME\-validator\'
-.
-.fi
-.
-.IP "" 0
-.
-.P
-Setting up a custom bootstrap is fairly straightforward\. Create \fB\.chef/bootstrap\fR in your Chef Repository directory or in \fB$HOME/\.chef/bootstrap\fR\. Then create the ERB template file\.
-.
-.IP "" 4
-.
-.nf
-
-mkdir ~/\.chef/bootstrap
-vi ~/\.chef/bootstrap/debian5\.0\-apt\.erb
-.
-.fi
-.
-.IP "" 0
-.
-.P
-For example, to create a new bootstrap template that should be used when setting up a new Debian node\. Edit the template to run the commands, set up the validation certificate and the client configuration file, and finally to run chef\-client on completion\. The bootstrap template can be called with:
-.
-.IP "" 4
-.
-.nf
-
-knife bootstrap mynode\.example\.com \-\-template\-file ~/\.chef/bootstrap/debian5\.0\-apt\.erb
-.
-.fi
-.
-.IP "" 0
-.
-.P
-Or,
-.
-.IP "" 4
-.
-.nf
-
-knife bootstrap mynode\.example\.com \-\-distro debian5\.0\-apt
-.
-.fi
-.
-.IP "" 0
-.
-.P
-The \fB\-\-distro\fR parameter will automatically look in the \fB~/\.chef/bootstrap\fR directory for a file named \fBdebian5\.0\-apt\.erb\fR\.
-.
-.P
-Templates provided by the Chef installation are located in \fBBASEDIR/lib/chef/knife/bootstrap/*\.erb\fR, where \fIBASEDIR\fR is the location where the package or Gem installed the Chef client libraries\.
-.
-.P
-Uploading cookbooks to the Opscode cookbooks site using the user/certificate specifically:
-.
-.IP "" 4
-.
-.nf
-
-knife cookbook site share example Other \-k ~/\.chef/USERNAME\.pem \-u USERNAME
-.
-.fi
-.
-.IP "" 0
-.
-.SH "SEE ALSO"
-Full documentation for Chef is located on the Chef wiki, http://wiki\.opscode\.com/display/chef/Home/\.
-.
-.P
-JSON is JavaScript Object Notation and more information can be found at http://json\.org/\.
-.
-.P
-SOLR is an open source search engine\. The Chef Server includes a SOLR installation\. More information about SOLR, including the search query syntax, can be found at http://lucene\.apache\.org/solr/\.
-.
-.P
-Git is a version control system and documented at http://git\-scm\.com/\.
-.
-.P
-This manual page was generated in nroff from Markdown with ronn\. Ryan Tomayko wrote ronn and more information can be found at http://rtomayko\.github\.com/ronn/ronn\.5\.html\.
-.
-.SH "AUTHOR"
-Chef was written by Adam Jacob \fIadam@opscode\.com\fR of Opscode (http://www\.opscode\.com), with contributions from the community\. This manual page was written by Joshua Timberman \fIjoshua@opscode\.com\fR\. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2\.0 License\.
-.
-.P
-On Debian systems, the complete text of the Apache 2\.0 License can be found in \fB/usr/share/common\-licenses/Apache\-2\.0\fR\.
diff --git a/chef/distro/common/markdown/knife.mkd b/chef/distro/common/markdown/knife.mkd
deleted file mode 100644
index 801c04da06..0000000000
--- a/chef/distro/common/markdown/knife.mkd
+++ /dev/null
@@ -1,865 +0,0 @@
-knife(8) -- Chef Server REST API utility
-========================================
-
-## SYNOPSIS
-
-__knife__ _sub-command_ _(options)_
-
-## DESCRIPTION
-
-This manual page documents knife, a command-line utility used to interact with a Chef server directly through the RESTful API. Knife uses sub-commands to take various actions on different types of Chef objects. Some sub-commands take additional options. General options follow sub-commands and their options. A configuration file can be created for common defaults.
-
-Unless otherwise specified, output is in JSON format, and input files are also JSON format.
-
-The Chef class `Chef::Config` that configures the behavior of how knife runs has options that correspond to command-line options. These are noted as `Chef::Config` values.
-
-## GENERAL OPTIONS
-
- * `-s`, `--server-url` URL:
- Chef Server URL, corresponds to `Chef::Config` `chef_server_url`.
- * `-k`, `--key` KEY:
- API Client Key, corresponds to `Chef::Config` `client_key`.
- * `-c`, `--config` CONFIG:
- The configuration file to use
- * `-e`, `--editor` EDITOR:
- Set the editor to use for interactive commands
- * `-F`, `--format` FORMAT:
- Which format to use for output
- * `-l`, `--log_level` LEVEL:
- Set the log level (debug, info, warn, error, fatal), corresponds to `Chef::Config` `log_level`.
- * `-L`, `--logfile` LOGLOCATION:
- Set the log file location, defaults to STDOUT, corresponds to `Chef::Config` `log_location`.
- * `-n`, `--no-editor`:
- Do not open EDITOR, just accept the data as is
- * `-u`, `--user` USER:
- API Client Username, corresponds to `Chef::Config` `node_name`.
- * `-p`, `--print-after`:
- Show the data after a destructive operation
- * `-v`, `--version`:
- Show chef version
- * `-y`, `--yes`:
- Say yes to all prompts for confirmation
- * `-h`, `--help`:
- Show this message
-
-Usage information for sub-commands can be displayed with `knife SUB-COMMAND --help`.
-
-## SUB-COMMANDS
-
-Knife sub-commands are structured as _NOUN verb NOUN (options)_. The sub-commands are meant to be intuitively named. Because the Chef Server API is RESTful, sub-commands generally utilize CRUD operations.
-
-* create (create)
-* list and show (read)
-* edit (update)
-* delete (destroy)
-
-Objects stored on the server support these, as described below.
-
-## GENERAL SUB-COMMANDS
-
-The following are general sub-commands that do not fit within the other object types utilized in the Chef Server API.
-
-__configure__ _(options)_
-
- * `-i`, `--initial`:
- Create an initial API Client
- * `-r`, `--repository REPO`:
- The path to your chef-repo
-
-Create a configuration file for knife. This will prompt for values to enter into the file. Default values are listed in square brackets if no other entry is typed. See __CONFIGURATION__ below for available options.
-
-__configure client DIRECTORY__
-
-Read the `knife.rb` config file and generate a config file suitable for use in `/etc/chef/client.rb` and copy the validation certificate into the specified _DIRECTORY_.
-
-__index rebuild__ _(options)_
-
- * `-y`, `--yes`:
- don't bother to ask if I'm sure
-
-Rebuilds all the search indexes on the server.
-
-__recipe list [PATTERN]__
-
-List available recipes from the server. Specify _PATTERN_ as a regular expression to limit the results.
-
-__search INDEX QUERY__ _(options)_
-
- * `-a`, `--attribute ATTR`:
- Show only one attribute
- * `-i`, `--id-only`:
- Show only the ID of matching objects
- * `-R`, `--rows INT`:
- The number of rows to return
- * `-r`, `--run-list`:
- Show only the run list
- * `-o`, `--sort SORT`:
- The order to sort the results in
- * `-b`, `--start ROW`:
- The row to start returning results at
-
-Search indexes are a feature of the Chef Server and the search sub-command allows querying any of the available indexes using SOLR query syntax. The following data types are indexed for search: _node_, _role_, _client_, _data bag_.
-
-__ssh QUERY COMMAND__ _(options)_
-
- * `-a`, `--attribute ATTR `:
- The attribute to use for opening the connection - default is fqdn
- * `-C`, `--concurrency NUM `:
- The number of concurrent connections
- * `-m`, `--manual-list `:
- QUERY is a space separated list of servers
- * `-P`, `--ssh-password PASSWORD`:
- The ssh password
- * `-x`, `--ssh-user USERNAME `:
- The ssh username
-
-The _ssh_ sub-command opens an ssh session to each of the nodes in the search results of the _QUERY_. This sub-command requires that the net-ssh-multi and highline Ruby libraries are installed. On Debian systems, these are the libnet-ssh-multi-ruby and libhighline-ruby packages. They can also be installed as RubyGems (net-ssh-multi and highline, respectively).
-
-__status__ _(options)_
-
- * `-r`, `--run-list RUN_LIST`:
- Show the run list
-
-The _status_ sub-command searches the Chef Server for all nodes and displays information about the last time the node checked into the server and executed a `node.save`. The fields displayed are the relative checkin time, the node name, it's operating system platform and version, the fully-qualified domain name and the default IP address. If the `-r` option is given, the node's run list will also be displayed. Note that depending on the configuration of the nodes, the FQDN and IP displayed may not be publicly reachable.
-
-## BOOTSTRAP SUB-COMMANDS
-
-__bootstrap FQDN__ _(options)_
-
- * `-i`, `--identity-file IDENTITY_FILE`:
- The SSH identity file used for authentication
- * `-N`, `--node-name NAME`:
- The Chef node name for your new node
- * `-P`, `--ssh-password PASSWORD`:
- The ssh password
- * `-x`, `--ssh-user USERNAME`:
- The ssh username
- * `--prerelease`:
- Install pre-release Chef gems
- * `-r`, `--run-list RUN_LIST`:
- Comma separated list of roles/recipes to apply
- * `-P`, `--ssh-password PASSWORD`:
- The ssh password
- * `-x`, `--ssh-user USERNAME`:
- The ssh username
- * `--template-file TEMPLATE`:
- Full path to location of template to use
- * `--sudo`:
- Execute the bootstrap via sudo
- * `-d`, `--distro DISTRO`:
- Bootstrap a distro using a template
-
-Performs a Chef Bootstrap on the target node. The goal of the bootstrap is to get Chef installed on the target system so it can run Chef Client with a Chef Server. The main assumption is a baseline OS installation exists. This sub-command is used internally by some cloud computing server create commands and the others will be migrated in a future version of Chef.
-
-As of Chef 0.9.8, the bootstrap sub-command supports supplying a template to perform the bootstrap steps. If the distro is not specified (via `-d` or `--distro` option), an Ubuntu 10.04 with RubyGems is assumed. The __DISTRO__ value corresponds to the base filename of the template, in other words `DISTRO`.erb. A template file can be specified with the `--template-file` option in which case the __DISTRO__ is not used. The sub-command looks in the following locations for the template to use:
-
-* `bootstrap` directory in the installed Chef Knife library.
-* `bootstrap` directory in the `$PWD/.chef`.
-* `bootstrap` directory in the users `$HOME/.chef`.
-
-The default bootstrap templates are scripts that get copied to the target node (FQDN). As of Chef 0.9.8, the following distros are supported:
-
-* centos5-gems
-* fedora13-gems
-* ubuntu10.04-gems
-* ubuntu10.04-apt
-
-The gems installations will use RubyGems 1.3.6 and Chef installed as a gem. The apt installation will use the Opscode APT repository. The RubyGems installation requires installing gems with native extensions, so development related packages (ruby-dev, build-essential) are installed. These are not installed with the apt installation, as native extensions are already compiled in the required packages.
-
-In addition to handling the software installation, these bootstrap templates do the following:
-
- - Write the validation.pem per the local knife configuration.
- - Write a default config file for Chef (`/etc/chef/client.rb`) using values from the `knife.rb`.
- - Create a JSON attributes file containing the specified run list and run Chef.
-
-In the case of the RubyGems, the `client.rb` will be written from scratch with a minimal set of values; see __EXAMPLES__. In the case of APT Package installation, `client.rb` will have the `validation_client_name` appended if it is not set to `chef-validator` (default config value), and the `node_name` will be added if `chef_node_name` option is specified.
-
-When this is complete, the bootstrapped node will have:
-
- - Latest Chef version installed from RubyGems or APT Packages from Opscode. This may be a later version than the local system.
- - Be validated with the configured Chef Server.
- - Have run Chef with its default run list if one is specfied.
-
-Additional custom bootstrap templates can be created and stored in `.chef/bootstrap/DISTRO.erb`, replacing __DISTRO__ with the value passed with the `-d` or `--distro` option. See __EXAMPLES__ for more information.
-
-## CLIENT SUB-COMMANDS
-
-Clients are entities that communicate with the Chef Server API.
-
-__client bulk delete REGEX__ _(options)_
-
-Delete clients on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
-
-__client create CLIENT__ _(options)_
-
- * `-a`, `--admin `:
- Create the client as an admin
- * `-f`, `--file FILE`:
- Write the key to a file
-
-Create a new client. This generates an RSA keypair. The private key will be displayed on _STDOUT_ or written to the named file. The public half will be stored on the Server. For _chef-client_ systems, the private key should be copied to the system as `/etc/chef/client.pem`.
-
-Admin clients should be created for users that will use _knife_ to access the API as an administrator. The private key will generally be copied to `~/.chef/CLIENT.pem` and referenced in the `knife.rb` configuration file.
-
-__client delete CLIENT__ _(options)_
-
-Deletes a registered client.
-
-__client edit CLIENT__ _(options)_
-
-Edit a registered client.
-
-__client list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-List all registered clients.
-
-__client reregister CLIENT__ _(options)_
-
- * `-f`, `--file FILE`:
- Write the key to a file
-
-Regenerate the RSA keypair for a client. The public half will be stored on the server and the private key displayed on _STDOUT_ or written to the named file.
-
-__client show CLIENT__ _(options)_
-
- * `-a`, `--attribute ATTR`:
- Show only one attribute
-
-Show a client.
-
-## COOKBOOK SUB-COMMANDS
-
-Cookbooks are the fundamental unit of distribution in Chef. They encapsulate all recipes of resources and assets used to configure a particular aspect of the infrastructure. The following sub-commands can be used to manipulate the cookbooks stored on the Chef Server.
-
-__cookbook bulk delete REGEX__ _(options)_
-
- * `-p`, `--purge`:
- Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.
-
-Delete cookbooks on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
-
-__cookbook create COOKBOOK__ _(options)_
-
- * `-o`, `--cookbook-path PATH`:
- The directory where the cookbook will be created
- * `-r`, `--readme-format FORMAT`:
- Format of the README file
- * `-C`, `--copyright COPYRIGHT`:
- Name of Copyright holder
- * `-I`, `--license LICENSE`:
- License for cookbook, apachev2 or none
- * `-E`, `--email EMAIL`:
- Email address of cookbook maintainer
-
-This is a helper command that creates a new cookbook directory in the `cookbook_path`. The following directories and files are created for the named cookbook.
-
-* COOKBOOK/attributes
-* COOKBOOK/definitions
-* COOKBOOK/files/default
-* COOKBOOK/libraries
-* COOKBOOK/metadata.rb
-* COOKBOOK/providers
-* COOKBOOK/README.rdoc
-* COOKBOOK/recipes/default.rb
-* COOKBOOK/resources
-* COOKBOOK/templates/default
-
-Supported README formats are 'rdoc' (default), 'md', 'mkd', 'txt'. The README file will be written with the specified extension and a set of helpful starting headers.
-
-Specify `-C` or `--copyright` with the name of the copyright holder as your name or your company/organization name in a quoted string. If this value is not specified an all-caps string `YOUR_COMPANY_NAME` is used which can be easily changed with find/replace.
-
-Specify `-I` or `--license` with the license that the cookbook is distributed under for sharing with other people or posting to the Opscode Cookbooks site. Be aware of the licenses of files you put inside the cookbook and follow any restrictions they describe. When using `none` (default) or `apachev2`, comment header text and metadata file are pre-filled. The `none` license will be treated as non-redistributable.
-
-Specify `-E` or `--email` with the email address of the cookbook's maintainer. If this value is not specified, an all-caps string `YOUR_EMAIL` is used which can easily be changed with find/replace.
-
-The cookbook copyright, license and email settings can be filled in the `knife.rb`, for example with default values:
-
- cookbook_copyright "YOUR_COMPANY_NAME"
- cookbook_license "none"
- cookbook_email "YOUR_EMAIL"
-
-__cookbook delete COOKBOOK [VERSION]__ _(options)_
-
- * `-a`, `--all`:
- Delete all versions
- * `-p`, `--purge`:
- Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.
-
-Delete the specified _VERSION_ of the named _COOKBOOK_. If no version is specified, and only one version exists on the server, that version will be deleted. If multiple versions are available on the server, you will be prompted for a version to delete.
-
-__cookbook download COOKBOOK [VERSION]__ _(options)_
-
- * `-d`, `--dir DOWNLOAD_DIRECTORY`:
- The directory to download the cookbook into
- * `-f`, `--force`:
- Overwrite an existing directory with the download
- * `-N`, `--latest`:
- Download the latest version of the cookbook
-
-Download a cookbook from the Chef Server. If no version is specified and only one version exists on the server, that version will be downloaded. If no version is specified and multiple versions are available on the server, you will be prompted for a version to download.
-
-__cookbook list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-List all the cookbooks.
-
-__cookbook metadata COOKBOOK__ _(options)_
-
- * `-a`, `--all`:
- Generate metadata for all cookbooks, rather than just a single cookbook
- * `-o`, `--cookbook-path PATH:PATH`:
- A colon-separated path to look for cookbooks in
-
-Generate cookbook metadata for the named _COOKBOOK_. The _PATH_ used here specifies where the cookbooks directory is located and corresponds to the `cookbook_path` configuration option.
-
-__cookbook metadata from FILE__ _(options)_
-
-Load the cookbook metadata from a specified file.
-
-__cookbook show COOKBOOK [VERSION] [PART] [FILENAME]__ _(options)_
-
- * `-f`, `--fqdn FQDN `:
- The FQDN of the host to see the file for
- * `-p`, `--platform PLATFORM `:
- The platform to see the file for
- * `-V`, `--platform-version VERSION`:
- The platform version to see the file for
-
-Show a particular part of a _COOKBOOK_ for the specified _VERSION_. _PART_ can be one of:
-
- * _attributes_
- * _definitions_
- * _files_
- * _libraries_
- * _providers_
- * _recipes_
- * _resources_
- * _templates_
-
-__cookbook test [COOKBOOKS...]__ _(options)_
-
- * `-a`, `--all`:
- Test all cookbooks, rather than just a single cookbook
- * `-o`, `--cookbook-path PATH:PATH`:
- A colon-separated path to look for cookbooks in
-
-Test the specified cookbooks for syntax errors. This uses the built-in Ruby syntax checking option for files in the cookbook ending in `.rb`, and the ERB syntax check for files ending in `.erb` (templates).
-
-__cookbook upload [COOKBOOKS...]__ _(options)_
-
- * `-a`, `--all`:
- Upload all cookbooks, rather than just a single cookbook
- * `-o`, `--cookbook-path PATH:PATH`:
- A colon-separated path to look for cookbooks in
-
-Uploads the specified cookbooks to the Chef Server. The actual upload executes a number of commands, most of which occur on the local machine. The cookbook is staged in a temporary location. Then the `cookbook_path` (or `-o PATH`) is processed to search for the named cookbook, and each occurance is copied in the order specified. A syntax check is performed a la `cookbook test`, above. The metadata is generated, a la `cookbook metadata`. A gzip(1)'ed, tar(1) file is created, and is uploaded to the server.
-
-## COOKBOOK SITE SUB-COMMANDS
-
-The following sub-commands are still in the context of cookbooks, but they make use of Opscode's Cookbook Community site, _http://cookbooks.opscode.com/_. That site has an API, and these sub-commands utilize that API, rather than the Chef Server API.
-
-__cookbook site download COOKBOOK [VERSION]__ _(options)_
-
- * `-f`, `--file FILE`:
- The filename to write to
-
-Downloads a specific cookbook from the Community site, optionally specifying a certain version.
-
-__cookbook site list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-Lists available cookbooks from the Community site.
-
-__cookbook site search QUERY__ _(options)_
-
-Searches the Community site with the specified query.
-
-__cookbook site share COOKBOOK CATEGORY__ _(options)_
-
- * `-k`, `--key KEY`:
- API Client Key
- * `-u`, `--user USER`:
- API Client Username
- * `-o`, `--cookbook-path PATH:PATH`:
- A colon-separated path to look for cookbooks in
-
-Uploads the specified cookbook using the given category to the Opscode cookbooks site. Requires a login user and certificate for the Opscode Cookbooks site. See __EXAMPLES__ for usage if the Opscode user and certificate pair are not used for authenticating with the Chef Server. In other words, if the Chef Server is not the Opscode Platform.
-
-__cookbook site unshare COOKBOOK__
-
-Stops sharing the specified cookbook on the Opscode cookbooks site.
-
-__cookbook site show COOKBOOK [VERSION]__ _(options)_
-
-Shows information from the site about a particular cookbook.
-
-__cookbook site vendor COOKBOOK [VERSION]__ _(options)_
-
- * `-d`, `--dependencies`:
- Grab dependencies automatically
-
-Uses `git` version control in conjunction with the cookbook site to download upstream cookbooks. A new vendor branch is created in git, the cookbook downloaded from the site and untarred, then the master branch is merged. This allows the user to track upstream changes to cookbooks while merging in customizations. If _-d_ is specified, all the cookbooks it depends on (via metadata _dependencies_) are downloaded and untarred as well, each using their own vendor branch.
-
-## DATA BAG SUB-COMMANDS
-
-Data bags are stores of JSON blobs. These blobs are called items. They are free form JSON and indexed by the Chef Server.
-
-__data bag create BAG [ITEM]__ _(options)_
-
-Create a new data bag, or an item in a data bag.
-
-__data bag delete BAG [ITEM]__ _(options)_
-
-Delete a data bag, or an item from a data bag.
-
-__data bag edit BAG ITEM__ _(options)_
-
-Edit an item in a data bag.
-
-__data bag from file BAG FILE__ _(options)_
-
-Load a data bag item from a JSON file. Looks in the directory `data_bags/BAG/ITEM.json` unless a relative path is specified.
-
-__data bag list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-List the available data bags.
-
-__data bag show BAG [ITEM]__ _(options)_
-
-Show a specific data bag or an item in a data bag.
-
-## NODE SUB-COMMANDS
-
-Nodes are the entities which are configured with Chef. Typically these are servers or workstations. Nodes are registered as a client, by default by the fully qualified domain name (fqdn). A single client may configure more than one node.
-
-__node bulk delete REGEX__ _(options)_
-
-Delete nodes on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
-
-__node create NODE__ _(options)_
-
-Create a new node.
-
-__node delete NODE__ _(options)_
-
-Delete a single node.
-
-__node edit NODE__ _(options)_
-
-Edit a node.
-
-__node from file FILE__ _(options)_
-
-Create a node from a JSON file.
-
-__node list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-List all nodes.
-
-`node run_list add [NODE] [ENTRY]` _(options)_
-
- * `-a`, `--after ITEM`:
- Place the ENTRY in the run list after ITEM
-
-Add a recipe or role to the node's `run_list`.
-
-`node run_list remove [NODE] [ENTRY]` _(options)_
-
-Remove a recipe or role from the node's `run_list`.
-
-__node show NODE__ _(options)_
-
- * `-a`, `--attribute [ATTR]`:
- Show only one attribute
- * `-r`, `--run-list `:
- Show only the run list
-
-Show a node.
-
-## RECIPE SUB-COMMANDS
-
-__recipe list [PATTERN]__
-
-List the recipes available on the server. The results shown can be limited with the optional PATTERN, which is a regular expression. PATTERN should be given in quotes, without slashes.
-
-## ROLE SUB-COMMANDS
-
-__role bulk delete REGEX__ _(options)_
-
-Delete roles on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
-
-__role create ROLE__ _(options)_
-
- * `-d`, `--description`:
- The role description
-
-Create a new role.
-
-__role delete ROLE__ _(options)_
-
-Delete a role.
-
-__role edit ROLE__ _(options)_
-
-Edit a role.
-
-__role from file FILE__ _(options)_
-
-Create or update a role from a role Ruby DSL (`.rb`) or JSON file.
-
-__role list__ _(options)_
-
- * `-w`, `--with-uri`:
- Show corresponding URIs
-
-List roles.
-
-__role show ROLE__ _(options)_
-
- * `-a`, `--attribute ATTR`:
- Show only one attribute
-
-Show a specific role.
-
-## CLOUD COMPUTING SUB-COMMANDS
-
-The next sections describe sub-commands to work with various Cloud Computing APIs to launch server instances with validation and run-time configuration that Chef knows about. These sub-commands require the fog Ruby library. On Debian and Ubuntu systems with Opscode's apt repository (apt.opscode.com), this is the package `libfog-ruby`. It is also available as a RubyGem, `fog`.
-
-The Blue Box, Rackspace and Terremark server creation sub-commands are at an early stage of development. They do not yet use the `bootstrap` sub-command to install Chef, and make a few assumptions to be aware. Right now when creating instances of these types, knife will assume an Ubuntu image, install Ruby from packages, RubyGems from source and Chef as a RubyGem. As these commands are developed further, they will utilize the `bootstrap` sub-command.
-
-In order to use knife with the various __CLOUD COMPUTING SUB-COMMANDS__, credentials need to be added to the configuration file. See __CONFIGURATION__.
-
-## BLUE BOX SUB-COMMANDS
-
-__bluebox server create [RUN LIST...]__ _(options)_
-
- * `-f`, `--flavor FLAVOR`:
- This is the product type (Block size) you're requesting to deploy. Requires the UUID of the image.
-
- * `-i`, `--image IMAGE`:
- The image (or OS distribution) to deploy. This can be a pre-built Blue Box template, or this can be a template you've archived previously. Requires the UUID of the image.
-
- * `-U`, `--username USERNAME`:
- Username created on the deployed server. Defaults to "deploy".
-
- * `-P`, `--password PASSWORD`:
- Password installed for the created user on the deployed server. Can be bypassed by defining a SSH key in your knife configuration ( Chef::Config[:knife][:ssh_key] ).
-
- * `--bootstrap true/false`:
- Allows you to enable or disable the bootstrap process.
-
-Creates a new Blue Box Group Blocks instance and bootstraps it by checking out a github repo and installs a bare minimum installation of chef on the instance; it then executes the specified run list.
-
-__bluebox server delete BLOCK-HOSTNAME__
-
-Deletes a running Blue Box Group Blocks server.
-
-__bluebox server list__
-
-Lists running Blue Box Group Blocks servers.
-
-__bluebox images list__
-
-Lists the available Blue Box Group Blocks server images to boot.
-
-## EC2 SUB-COMMANDS
-
-Chef is commonly used with Amazon AWS EC2 nodes. This sub-command will generate instance metadata that can be used to automatically configure an EC2 instance with Chef. This requires an AMI that has Chef preinstalled with a configuration file that can parse the metadata at run-time. At this time this is the only sub-command for EC2, but more may be added later similar to __RACKSPACE__ and __TERREMARK__ below.
-
-__ec2 instance data [RUN LIST...]__ _(options)_
-
- * `-e`, `--edit`:
- Edit the instance data
-
-The _RUN LIST_ should be specified as a space separated list of roles or recipes that will be used by the instance to configure the server.
-
-__ec2 server create [RUN LIST...]__ _(options)_
-
- * `-Z`, `--availability-zone ZONE`:
- The Availability Zone
- * `--region`:
- Your AWS region
- * `-A`, `--aws-access-key-id KEY `:
- Your AWS Access Key ID
- * `-K SECRET`, `--aws-secret-access-key`:
- Your AWS API Secret Access Key
- * `-f`, `--flavor FLAVOR`:
- The flavor of server (m1.small, m1.medium, etc)
- * `-i`, `--image IMAGE`:
- The AMI for the server
- * `-G`, `--groups X,Y,Z `:
- The security groups for this server
- * `-S`, `--ssh-key KEY `:
- The SSH root key, corresponds to an Amazon Keypair.
- * `-I`, `--identity-file IDENTITY_FILE`:
- The SSH identity file used for authentication, passed to `bootstrap`.
- * `-P`, `--ssh-password PASSWORD`:
- The ssh password, passed to `bootstrap`.
- * `-x`, `--ssh-user USERNAME`:
- The ssh username, passed to `bootstrap`.
- * `--prerelease`:
- Install pre-release Chef gems, passed to `bootstrap`.
- * `--template-file TEMPLATE`:
- Full path to location of template to use, passed to `bootstrap`.
- * `-d`, `--distro DISTRO`:
- Bootstrap a distro using a template, passed to `bootstrap`.
-
-Creates a new Amazon AWS EC2 instance and bootstraps it by calling the `bootstrap` sub-command. The `[RUN LIST...]` items are passed to the bootstrap's `run_list` config parameter/option. See the __BOOTSTRAP SUB-COMMANDS__ section above for more information.
-
-__ec2 server delete SERVER [SERVER]__ _(options)_
-
- * `-A`, `--aws-access-key-id KEY`:
- Your AWS Access Key ID
- * `-K SECRET`, `--aws-secret-access-key`:
- Your AWS API Secret Access Key
-
-Terminates a running Amazon AWS EC2 instance.
-
-__ec2 server list [RUN LIST...]__ _(options)_
-
- * `-A`, `--aws-access-key-id KEY`:
- Your AWS Access Key ID
- * `-K SECRET`, `--aws-secret-access-key`:
- Your AWS API Secret Access Key
-
-List running Amazon AWS EC2 instances.
-
-## RACKSPACE SUB-COMMANDS
-
-In addition to EC2 nodes, Chef can be used on Rackspace Cloud nodes. The following sub-commands allow manipulating Rackspace Cloud nodes via the `fog` library.
-
-__rackspace server create [RUN LIST...]__ _(options)_
-
- * `-K`, `--rackspace-api-key KEY`:
- Your rackspace API key
- * `-A USERNAME`, `--rackspace-api-username`:
- Your rackspace API username
- * `-f`, `--flavor FLAVOR `:
- The flavor of server
- * `-i`, `--image IMAGE `:
- The image of the server
- * `-N`, `--server-name NAME`:
- The server name
-
-Creates a new Rackspace Cloud server.
-
-__rackspace server delete SERVER__ _(options)_
-
-Deletes a running Rackspace Cloud server.
-
-__rackspace server list__ _(options)_
-
-Lists running Rackspace Cloud servers.
-
-## SLICEHOST SUB-COMMANDS
-
-As above, Chef can also be used on Slicehost nodes. The following sub-commands allow manipulating Slicehost nodes via the `fog` library.
-
-__slicehost server create [RUN LIST...]__ _(options)_
- * `-f`, `--flavor FLAVOR`:
- The flavor of server
- * `-i`, `--image IMAGE`:
- The image of the server
- * `-N`, `--server-name NAME`:
- The server name
- * `-K`, `--slicehost-password PASSWORD`:
- Your slicehost API password
-
-Creates a new slicehost server.
-
-__slicehost server list__ _(options)_
-
-Lists running Slicehost servers.
-
-__slicehost server delete SLICENAME__
-
-Deletes a running Slicehost server.
-
-__slicehost images list__
-
-Lists the available Slicehost server images to boot.
-
-## TERREMARK SUB-COMMANDS
-
-As above, Chef can also be used on Terremark vCloud nodes. The following sub-commands allow manipulating Terremark vCloud nodes via the `fog` library.
-
-__terremark server create NAME [RUN LIST...]__ _(options)_
-
- * `-K PASSWORD`, `--terremark-password`:
- Your terremark password
- * `-S`, `--terremark-service SERVICE`:
- Your terremark service name
- * `-A USERNAME`, `--terremark-username`:
- Your terremark username
-
-Creates a new Terremark vCloud server.
-
-__terremark server delete SERVER__ _(options)_
-
-Deletes a running Terremark vCloud server.
-
-__terremark server list__ _(options)_
-
- * `-K PASSWORD`, `--terremark-password`:
- Your terremark password
- * `-S`, `--terremark-service SERVICE`:
- Your terremark service name
- * `-A USERNAME`, `--terremark-username`:
- Your terremark username
-
-Lists running Terremark vCloud servers.
-
-## CONFIGURATION
-
-The knife configuration file is a Ruby DSL to set configuration parameters for Knife's __GENERAL OPTIONS__. The default location for the config file is `~/.chef/knife.rb`. If managing multiple Chef repositories, per-repository config files can be created. The file must be `.chef/knife.rb` in the current directory of the repository.
-
-If the config file exists, knife uses these settings for __GENERAL OPTIONS__ defaults.
-
-`log_level`
-
-A Ruby symbol specifying the log level. Corresponds to `-l` or `--log_level` option. Default is _:info_. Valid values are:
-
- * :info
- * :debug
- * :warn
- * :fatal
-
-`log_location`
-
-Corresponds to the `-L` or `--log-file` option. Defaults is __STDOUT__. Valid values are __STDOUT__ or a filename.
-
-`node_name`
-
-User to authenticate to the Chef server. Corresponds to the `-u` or `--user` option. This is requested from the user when running this sub-command.
-
-`client_key`
-
-Private key file to authenticate to the Chef server. Corresponds to the `-k` or `--key` option. This is requested from the user when running this sub-command.
-
-`chef_server_url`
-
-URL of the Chef server. Corresponds to the `-s` or `--server-url` option. This is requested from the user when running this sub-command.
-
-`cache_type`
-
-The type of cache to use. Default is BasicFile. This can be any type of Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper, File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant, Xattr, YAML.
-
-`cache_options`
-
-Specifies various options to use for caching. Default reads the Chef client configuration (/etc/chef/checksums).
-
-`validation_client_name`
-
-Specifies the name of the client used to validate new clients. This is requested from the user when running the configuration sub-command.
-
-`validation_key`
-
-Specifies the private key file to use for generating ec2 instance data for validating new clients. This is implied from the `validation_client_name`.
-
-`cookbook_copyright`
-`cookbook_email`
-`cookbook_license`
-
-Used by `knife cookbook create` sub-command to specify the copyright holder, maintainer email and license (respectively) for new cookbooks. The copyright holder is listed as the maintainer in the cookbook's metadata and as the Copyright in the comments of the default recipe. The maintainer email is used in the cookbook metadata. The license determines what preamble to put in the comment of the default recipe, and is listed as the license in the cookbook metadata. Currently supported licenses are "apachev2" and "none". Any other values will result in an empty license in the metadata (needs to be filled in by the author), and no comment preamble in the default recipe.
-
-`knife[:aws_access_key_id]`
-`knife[:aws_secret_access_key]`
-
-Specifies the Amazon AWS EC2 credentials to use when running the ec2 sub-commands.
-
-`knife[:rackspace_api_username]`
-`knife[:rackspace_api_key]`
-
-Specifies the Rackspace Cloud credentials to use when running the rackspace sub-commands.
-
-`knife[:terremark_username]`
-`knife[:terremark_password]`
-`knife[:terremark_service]`
-
-Specifies the Terremark vCloud credentials to use when running the terremark sub-commands.
-
-`knife[:slicehost_password]`
-
-Specifies the Slicehost password to use when running the slicdehost sub-commands.
-
-## FILES
-
-_~/.chef/knife.rb_
-
-Ruby DSL configuration file for knife. See __CONFIGURATION__.
-
-## CHEF WORKFLOW
-
-When working with Chef and Knife in the local repository, the recommended workflow outline looks like:
-
-* Create repository. A skeleton sample is provided at _http://github.com/opscode/chef-repo/_.
-* Configure knife, see __CONFIGURATION__.
-* Download cookbooks from the Opscode cookbooks site, see __COOKBOOK SITE SUB-COMMANDS__.
-* Or, create new cookbooks, see `cookbook create` sub-command.
-* Commit changes to the version control system. See your tool's documentation.
-* Upload cookbooks to the Chef Server, see __COOKBOOK SUB-COMMANDS__.
-* Launch instances in the Cloud, OR provision new hosts; see __CLOUD COMPUTING SUB-COMMANDS__ and __BOOTSTRAP SUB-COMMANDS__.
-* Watch Chef configure systems!
-
-A note about git: Opscode and many folks in the Chef community use git, but it is not required, except in the case of the `cookbook site vendor` sub-command, as it uses git directly. Version control is strongly recommended though, and git fits with a lot of the workflow paradigms.
-
-## EXAMPLES
-
-Example client config (`/etc/chef/client.rb`) from `knife configure client`. The same configuration is used when using the `knife bootstrap` command with the default `gem` templates that come with Chef.
-
- log_level :info
- log_location STDOUT
- chef_server_url 'https://api.opscode.com/organizations/ORGNAME'
- validation_client_name 'ORGNAME-validator'
-
-Setting up a custom bootstrap is fairly straightforward. Create `.chef/bootstrap` in your Chef Repository directory or in `$HOME/.chef/bootstrap`. Then create the ERB template file.
-
- mkdir ~/.chef/bootstrap
- vi ~/.chef/bootstrap/debian5.0-apt.erb
-
-For example, to create a new bootstrap template that should be used when setting up a new Debian node. Edit the template to run the commands, set up the validation certificate and the client configuration file, and finally to run chef-client on completion. The bootstrap template can be called with:
-
- knife bootstrap mynode.example.com --template-file ~/.chef/bootstrap/debian5.0-apt.erb
-
-Or,
-
- knife bootstrap mynode.example.com --distro debian5.0-apt
-
-The `--distro` parameter will automatically look in the `~/.chef/bootstrap` directory for a file named `debian5.0-apt.erb`.
-
-Templates provided by the Chef installation are located in `BASEDIR/lib/chef/knife/bootstrap/*.erb`, where _BASEDIR_ is the location where the package or Gem installed the Chef client libraries.
-
-Uploading cookbooks to the Opscode cookbooks site using the user/certificate specifically:
-
- knife cookbook site share example Other -k ~/.chef/USERNAME.pem -u USERNAME
-
-## SEE ALSO
-
-Full documentation for Chef is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home/.
-
-JSON is JavaScript Object Notation and more information can be found at http://json.org/.
-
-SOLR is an open source search engine. The Chef Server includes a SOLR installation. More information about SOLR, including the search query syntax, can be found at http://lucene.apache.org/solr/.
-
-Git is a version control system and documented at http://git-scm.com/.
-
-This manual page was generated in nroff from Markdown with ronn. Ryan Tomayko wrote ronn and more information can be found at http://rtomayko.github.com/ronn/ronn.5.html.
-
-## AUTHOR
-
-Chef was written by Adam Jacob <adam@opscode.com> of Opscode (http://www.opscode.com), with contributions from the community. This manual page was written by Joshua Timberman <joshua@opscode.com>. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
-
-On Debian systems, the complete text of the Apache 2.0 License can be found in `/usr/share/common-licenses/Apache-2.0`.
diff --git a/chef/distro/common/markdown/man1/knife-bootstrap.mkd b/chef/distro/common/markdown/man1/knife-bootstrap.mkd
new file mode 100644
index 0000000000..dd70f529d0
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-bootstrap.mkd
@@ -0,0 +1,88 @@
+knife-bootrap(1) -- Install Chef Client on a remote host
+========================================
+
+## SYNOPSIS
+
+__knife__ __bootstrap__ _(options)_
+
+ * `-i`, `--identity-file IDENTITY_FILE`:
+ The SSH identity file used for authentication
+ * `-N`, `--node-name NAME`:
+ The Chef node name for your new node
+ * `-P`, `--ssh-password PASSWORD`:
+ The ssh password
+ * `-x`, `--ssh-user USERNAME`:
+ The ssh username
+ * `--prerelease`:
+ Install pre-release Chef gems
+ * `-r`, `--run-list RUN_LIST`:
+ Comma separated list of roles/recipes to apply
+ * `-P`, `--ssh-password PASSWORD`:
+ The ssh password
+ * `-x`, `--ssh-user USERNAME`:
+ The ssh username
+ * `--template-file TEMPLATE`:
+ Full path to location of template to use
+ * `--sudo`:
+ Execute the bootstrap via sudo
+ * `-d`, `--distro DISTRO`:
+ Bootstrap a distro using a template
+
+Performs a Chef Bootstrap on the target node. The goal of the bootstrap
+is to get Chef installed on the target system so it can run Chef Client
+with a Chef Server. The main assumption is a baseline OS installation
+exists. This sub-command is used internally by some cloud computing
+server create commands and the others will be migrated in a future
+version of Chef.
+
+The bootstrap sub-command supports supplying a template to perform the
+bootstrap steps. If the distro is not specified (via `-d` or `--distro`
+option), an Ubuntu 10.04 host bootstrapped with RubyGems is assumed. The
+__DISTRO__ value corresponds to the base filename of the template, in
+other words `DISTRO`.erb. A template file can be specified with the
+`--template-file` option in which case the __DISTRO__ is not used. The
+sub-command looks in the following locations for the template to use:
+
+* `bootstrap` directory in the installed Chef Knife library.
+* `bootstrap` directory in the `$PWD/.chef`.
+* `bootstrap` directory in the users `$HOME/.chef`.
+
+The default bootstrap templates are scripts that get copied to the target node (FQDN). As of Chef 0.9.8, the following distros are supported:
+
+* centos5-gems
+* fedora13-gems
+* ubuntu10.04-gems
+* ubuntu10.04-apt
+
+The gems installations will use RubyGems 1.3.6 and Chef installed as a gem. The apt installation will use the Opscode APT repository. The RubyGems installation requires installing gems with native extensions, so development related packages (ruby-dev, build-essential) are installed. These are not installed with the apt installation, as native extensions are already compiled in the required packages.
+
+In addition to handling the software installation, these bootstrap templates do the following:
+
+ - Write the validation.pem per the local knife configuration.
+ - Write a default config file for Chef (`/etc/chef/client.rb`) using values from the `knife.rb`.
+ - Create a JSON attributes file containing the specified run list and run Chef.
+
+In the case of the RubyGems, the `client.rb` will be written from scratch with a minimal set of values; see __EXAMPLES__. In the case of APT Package installation, `client.rb` will have the `validation_client_name` appended if it is not set to `chef-validator` (default config value), and the `node_name` will be added if `chef_node_name` option is specified.
+
+When this is complete, the bootstrapped node will have:
+
+ - Latest Chef version installed from RubyGems or APT Packages from Opscode. This may be a later version than the local system.
+ - Be validated with the configured Chef Server.
+ - Have run Chef with its default run list if one is specfied.
+
+Additional custom bootstrap templates can be created and stored in `.chef/bootstrap/DISTRO.erb`, replacing __DISTRO__ with the value passed with the `-d` or `--distro` option. See __EXAMPLES__ for more information.
+
+
+## SEE ALSO
+ __knife-ssh__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
diff --git a/chef/distro/common/markdown/man1/knife-client.mkd b/chef/distro/common/markdown/man1/knife-client.mkd
new file mode 100644
index 0000000000..8764d7d71c
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-client.mkd
@@ -0,0 +1,101 @@
+knife-client(1) -- Manage Chef API Clients
+========================================
+
+## SYNOPSIS
+
+__knife__ __client__ _sub-command_ _(options)_
+
+## DESCRIPTION
+Clients are identities used for communication with the Chef Server API,
+roughly equivalent to user accounts on the Chef Server, except that
+clients only communicate with the Chef Server API and are authenticated
+via request signatures.
+
+In the typical case, there will be one client object on the server for
+each node, and the corresponding client and node will have identical
+names.
+
+In the Chef authorization model, there is one special client, the
+"validator", which is authorized to create new non-administrative
+clients but has minimal privileges otherwise. This identity is used as a
+sort of "guest account" to create a client identity when initially
+setting up a host for management with Chef.
+
+## CLIENT SUB-COMMANDS
+
+## BULK DELETE
+__knife client bulk delete__ _regex_ _(options)_
+
+Delete clients where the client name matches the regular expression
+_regex_ on the Chef Server. The regular expression should be given as a
+quoted string, and not surrounded by forward slashes.
+
+## CREATE
+__knife client create__ _client name_ _(options)_
+
+ * `-a`, `--admin `:
+ Create the client as an admin
+ * `-f`, `--file FILE`:
+ Write the key to a file
+
+Create a new client. This generates an RSA keypair. The private key will
+be displayed on _STDOUT_ or written to the named file. The public half
+will be stored on the Server. For _chef-client_ systems, the private key
+should be copied to the system as `/etc/chef/client.pem`.
+
+Admin clients should be created for users that will use _knife_ to
+access the API as an administrator. The private key will generally be
+copied to `~/.chef/client\_name.pem` and referenced in the `knife.rb`
+configuration file.
+
+## DELETE
+__knife client delete__ _client name_ _(options)_
+
+Deletes a registered client.
+
+## EDIT
+__client edit__ _client name_ _(options)_
+
+Edit a registered client.
+
+## LIST
+__client list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+List all registered clients.
+
+## REREGISTER
+__client reregister__ _client name_ _(options)_
+
+ * `-f`, `--file FILE`:
+ Write the key to a file
+
+Regenerate the RSA keypair for a client. The public half will be stored
+on the server and the private key displayed on _STDOUT_ or written to
+the named file. This operation will invalidate the previous keypair used
+by the client, preventing it from authenticating with the Chef Server.
+Use care when reregistering the validator client.
+
+## SHOW
+__client show__ _client name_ _(options)_
+
+ * `-a`, `--attribute ATTR`:
+ Show only one attribute
+
+Show a client. Output format is determined by the --format option.
+
+## SEE ALSO
+ __knife-node__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-configure.mkd b/chef/distro/common/markdown/man1/knife-configure.mkd
new file mode 100644
index 0000000000..cc7dd1d96e
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-configure.mkd
@@ -0,0 +1,70 @@
+knife-configure(1) -- Generate configuration files for knife or Chef Client
+========================================
+
+## SYNOPSIS
+
+__knife__ __configure__ [client] _(options)_
+
+## DESCRIPTION
+Generates a knife.rb configuration file interactively. When given the
+--initial option, also creates a new administrative user.
+
+## CONFIGURE SUBCOMMANDS ##
+
+__knife configure__ _(options)_
+
+ * `-i`, `--initial`:
+ Create an initial API Client
+ * `-r`, `--repository REPO`:
+ The path to your chef-repo
+
+Create a configuration file for knife. This will prompt for values to
+enter into the file. Default values are listed in square brackets if no
+other entry is typed. See __knife__(1) for a description of
+configuration options.
+
+__knife configure client__ _directory_
+
+Read the _knife.rb_ config file and generate a config file suitable for
+use in _/etc/chef/client.rb_ and copy the validation certificate into
+the specified _directory_.
+
+## EXAMPLES
+ * On a freshly installed Chef Server, use _knife configure -i_ to
+ create an administrator and knife configuration file. Leave the
+ field blank to accept the default value. On most systems, the
+ default values are acceptable.
+
+ user@host$ knife configure -i
+ Please enter the chef server URL: [http://localhost:4000]
+ Please enter a clientname for the new client: [username]
+ Please enter the existing admin clientname: [chef-webui]
+ Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem]
+ Please enter the validation clientname: [chef-validator]
+ Please enter the location of the validation key: [/etc/chef/validation.pem]
+ Please enter the path to a chef repository (or leave blank):
+ Creating initial API user...
+ Created (or updated) client[username]
+ Configuration file written to /home/username/.chef/knife.rb
+
+ This creates a new administrator client named _username_, writes
+ a configuration file to _/home/username/.chef/knife.rb_, and the
+ private key to _/home/username/.chef/username.pem_. The
+ configuration file and private key may be copied to another system
+ to facilitate administration of the Chef Server from a remote
+ system. Depending on the value given for the Chef Server URL, you
+ may need to modify that setting after copying to a remote host.
+
+## SEE ALSO
+ __knife__(1) __knife-client__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-cookbook-site.mkd b/chef/distro/common/markdown/man1/knife-cookbook-site.mkd
new file mode 100644
index 0000000000..81adf0c54f
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-cookbook-site.mkd
@@ -0,0 +1,69 @@
+knife-cookbook-site(1) -- Install and update open source cookbooks
+========================================
+
+## SYNOPSIS
+
+__knife__ __cookbook site__ _sub-command_ _(options)_
+
+## COOKBOOK SITE SUB-COMMANDS
+
+The following sub-commands are still in the context of cookbooks, but they make use of Opscode's Cookbook Community site, _http://cookbooks.opscode.com/_. That site has an API, and these sub-commands utilize that API, rather than the Chef Server API.
+
+__cookbook site download COOKBOOK [VERSION]__ _(options)_
+
+ * `-f`, `--file FILE`:
+ The filename to write to
+
+Downloads a specific cookbook from the Community site, optionally specifying a certain version.
+
+__cookbook site list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+Lists available cookbooks from the Community site.
+
+__cookbook site search QUERY__ _(options)_
+
+Searches the Community site with the specified query.
+
+__cookbook site share COOKBOOK CATEGORY__ _(options)_
+
+ * `-k`, `--key KEY`:
+ API Client Key
+ * `-u`, `--user USER`:
+ API Client Username
+ * `-o`, `--cookbook-path PATH:PATH`:
+ A colon-separated path to look for cookbooks in
+
+Uploads the specified cookbook using the given category to the Opscode cookbooks site. Requires a login user and certificate for the Opscode Cookbooks site. See __EXAMPLES__ for usage if the Opscode user and certificate pair are not used for authenticating with the Chef Server. In other words, if the Chef Server is not the Opscode Platform.
+
+__cookbook site unshare COOKBOOK__
+
+Stops sharing the specified cookbook on the Opscode cookbooks site.
+
+__cookbook site show COOKBOOK [VERSION]__ _(options)_
+
+Shows information from the site about a particular cookbook.
+
+__cookbook site vendor COOKBOOK [VERSION]__ _(options)_
+
+ * `-d`, `--dependencies`:
+ Grab dependencies automatically
+
+Uses `git` version control in conjunction with the cookbook site to download upstream cookbooks. A new vendor branch is created in git, the cookbook downloaded from the site and untarred, then the master branch is merged. This allows the user to track upstream changes to cookbooks while merging in customizations. If _-d_ is specified, all the cookbooks it depends on (via metadata _dependencies_) are downloaded and untarred as well, each using their own vendor branch.
+
+
+## SEE ALSO
+ __knife-environment__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-cookbook.mkd b/chef/distro/common/markdown/man1/knife-cookbook.mkd
new file mode 100644
index 0000000000..02ae6f3f90
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-cookbook.mkd
@@ -0,0 +1,136 @@
+knife-cookbook(1) -- Upload and manage Chef cookbooks
+========================================
+
+## SYNOPSIS
+
+__knife__ __cookbook__ _sub-command_ _(options)_
+
+## COOKBOOK SUB-COMMANDS
+
+Cookbooks are the fundamental unit of distribution in Chef. They encapsulate all recipes of resources and assets used to configure a particular aspect of the infrastructure. The following sub-commands can be used to manipulate the cookbooks stored on the Chef Server.
+
+__cookbook bulk delete REGEX__ _(options)_
+
+ * `-p`, `--purge`:
+ Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.
+
+Delete cookbooks on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
+
+__cookbook create COOKBOOK__ _(options)_
+
+ * `-o`, `--cookbook-path PATH`:
+ The directory where the cookbook will be created
+ * `-r`, `--readme-format FORMAT`:
+ Format of the README file
+ * `-C`, `--copyright COPYRIGHT`:
+ Name of Copyright holder
+ * `-I`, `--license LICENSE`:
+ License for cookbook, apachev2 or none
+ * `-E`, `--email EMAIL`:
+ Email address of cookbook maintainer
+
+This is a helper command that creates a new cookbook directory in the `cookbook_path`. The following directories and files are created for the named cookbook.
+
+* COOKBOOK/attributes
+* COOKBOOK/definitions
+* COOKBOOK/files/default
+* COOKBOOK/libraries
+* COOKBOOK/metadata.rb
+* COOKBOOK/providers
+* COOKBOOK/README.rdoc
+* COOKBOOK/recipes/default.rb
+* COOKBOOK/resources
+* COOKBOOK/templates/default
+
+Supported README formats are 'rdoc' (default), 'md', 'mkd', 'txt'. The README file will be written with the specified extension and a set of helpful starting headers.
+
+Specify `-C` or `--copyright` with the name of the copyright holder as your name or your company/organization name in a quoted string. If this value is not specified an all-caps string `YOUR_COMPANY_NAME` is used which can be easily changed with find/replace.
+
+Specify `-I` or `--license` with the license that the cookbook is distributed under for sharing with other people or posting to the Opscode Cookbooks site. Be aware of the licenses of files you put inside the cookbook and follow any restrictions they describe. When using `none` (default) or `apachev2`, comment header text and metadata file are pre-filled. The `none` license will be treated as non-redistributable.
+
+Specify `-E` or `--email` with the email address of the cookbook's maintainer. If this value is not specified, an all-caps string `YOUR_EMAIL` is used which can easily be changed with find/replace.
+
+The cookbook copyright, license and email settings can be filled in the `knife.rb`, for example with default values:
+
+ cookbook_copyright "YOUR_COMPANY_NAME"
+ cookbook_license "none"
+ cookbook_email "YOUR_EMAIL"
+
+__cookbook delete COOKBOOK [VERSION]__ _(options)_
+
+ * `-a`, `--all`:
+ Delete all versions
+ * `-p`, `--purge`:
+ Purge files from backing store. This will disable any cookbook that contains any of the same files as the cookbook being purged.
+
+Delete the specified _VERSION_ of the named _COOKBOOK_. If no version is specified, and only one version exists on the server, that version will be deleted. If multiple versions are available on the server, you will be prompted for a version to delete.
+
+__cookbook download COOKBOOK [VERSION]__ _(options)_
+
+ * `-d`, `--dir DOWNLOAD_DIRECTORY`:
+ The directory to download the cookbook into
+ * `-f`, `--force`:
+ Overwrite an existing directory with the download
+ * `-N`, `--latest`:
+ Download the latest version of the cookbook
+
+Download a cookbook from the Chef Server. If no version is specified and only one version exists on the server, that version will be downloaded. If no version is specified and multiple versions are available on the server, you will be prompted for a version to download.
+
+__cookbook list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+List all the cookbooks.
+
+__cookbook metadata COOKBOOK__ _(options)_
+
+ * `-a`, `--all`:
+ Generate metadata for all cookbooks, rather than just a single cookbook
+ * `-o`, `--cookbook-path PATH:PATH`:
+ A colon-separated path to look for cookbooks in
+
+Generate cookbook metadata for the named _COOKBOOK_. The _PATH_ used here specifies where the cookbooks directory is located and corresponds to the `cookbook_path` configuration option.
+
+__cookbook metadata from FILE__ _(options)_
+
+Load the cookbook metadata from a specified file.
+
+__cookbook show COOKBOOK [VERSION] [PART] [FILENAME]__ _(options)_
+
+ * `-f`, `--fqdn FQDN `:
+ The FQDN of the host to see the file for
+ * `-p`, `--platform PLATFORM `:
+ The platform to see the file for
+ * `-V`, `--platform-version VERSION`:
+ The platform version to see the file for
+
+Show a particular part of a _COOKBOOK_ for the specified _VERSION_. _PART_ can be one of:
+
+ * _attributes_
+ * _definitions_
+ * _files_
+ * _libraries_
+ * _providers_
+ * _recipes_
+ * _resources_
+ * _templates_
+
+__cookbook test [COOKBOOKS...]__ _(options)_
+
+ * `-a`, `--all`:
+ Test all cookbooks, rather than just a single cookbook
+ * `-o`, `--cookbook-path PATH:PATH`:
+ A colon-separated path to look for cookbooks in
+
+Test the specified cookbooks for syntax errors. This uses the built-in Ruby syntax checking option for files in the cookbook ending in `.rb`, and the ERB syntax check for files ending in `.erb` (templates).
+
+__cookbook upload [COOKBOOKS...]__ _(options)_
+
+ * `-a`, `--all`:
+ Upload all cookbooks, rather than just a single cookbook
+ * `-o`, `--cookbook-path PATH:PATH`:
+ A colon-separated path to look for cookbooks in
+
+Uploads the specified cookbooks to the Chef Server. The actual upload executes a number of commands, most of which occur on the local machine. The cookbook is staged in a temporary location. Then the `cookbook_path` (or `-o PATH`) is processed to search for the named cookbook, and each occurance is copied in the order specified. A syntax check is performed a la `cookbook test`, above. The metadata is generated, a la `cookbook metadata`. A gzip(1)'ed, tar(1) file is created, and is uploaded to the server.
+
diff --git a/chef/distro/common/markdown/man1/knife-data-bag.mkd b/chef/distro/common/markdown/man1/knife-data-bag.mkd
new file mode 100644
index 0000000000..f31802751f
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-data-bag.mkd
@@ -0,0 +1,117 @@
+knife-data-bag(1) -- Store arbitrary data on a Chef Server
+========================================
+
+## SYNOPSIS
+
+__knife__ __data bag__ _sub-command_ _(options)_
+
+## DESCRIPTION
+Data bags are stores of arbitrary JSON data. Each data bag is a
+collection that may contain many items. Data Bag Items are indexed by
+the Chef Server and can be searched via __knife-search__(1).
+
+Data bags are available to all nodes configured by __chef-client__(8),
+and are therefore a convenient mechanism to store global information,
+such as lists of administrative accounts that should be configured on
+all hosts.
+
+## DATA BAG SUB-COMMANDS
+
+## CREATE
+__knife data bag create__ _bag name_ [item id] _(options)_
+
+ * `-s`, `--secret SECRET`:
+ A secret key used to encrypt the data bag item. See __encryption support__ below.
+ * `--secret-file SECRET_FILE`:
+ The path to a file containing the secret key to be used to encrypt
+ the data bag item.
+
+If _item id_ is given, creates a new, empty data bag item and opens it for
+editing in your editor. The data bag will be created if it does not
+exist.
+
+If _item id_ is not given, the data bag will be created.
+
+## DELETE
+__knife data bag delete__ _bag name_ [item id] _(options)_
+
+Delete a data bag, or an item from a data bag.
+
+## EDIT
+__knife data bag edit__ _bag name_ _item id_ _(options)_
+
+ * `-s`, `--secret SECRET`:
+ A secret key used to encrypt the data bag item. See __encryption support__ below.
+ * `--secret-file SECRET_FILE`:
+ The path to a file containing the secret key to be used to encrypt
+ the data bag item.
+
+Edit an item in a data bag.
+
+## FROM FILE
+__knife data bag from file__ _bag name_ _file_ _(options)_
+
+ * `-s`, `--secret SECRET`:
+ A secret key used to encrypt the data bag item. See __encryption support__ below.
+ * `--secret-file SECRET_FILE`:
+ The path to a file containing the secret key to be used to encrypt
+ the data bag item.
+
+Load a data bag item from a JSON file. If _file_ is a relative or
+absolute path to the file, that file will be used. Otherwise, the _file_
+parameter is treated as the base name of a data bag file in a Chef
+repository, and `knife` will search for the file in
+`./data_bags/bag_name/file`. For example `knife data bag from file users
+dan.json` would attempt to load the file `./data_bags/users/dan.json`.
+
+## LIST
+__knife data bag list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+Lists the data bags that exist on the Chef Server.
+
+## SHOW
+__knife data bag show BAG [ITEM]__ _(options)_
+
+ * `-s`, `--secret SECRET`:
+ A secret key used to encrypt the data bag item. See __encryption support__ below.
+ * `--secret-file SECRET_FILE`:
+ The path to a file containing the secret key to be used to encrypt
+ the data bag item.
+
+Show a specific data bag or an item in a data bag. The output will be
+formatted according to the --format option.
+
+## ENCRYPTION SUPPORT
+Data Bag Items may be encrypted to keep their contents secret. This may
+be desireable when storing sensitive information such as database
+passwords, API keys, etc.
+
+Data Bag Item encryption uses the AES-256 CBC symmetric key algorithm.
+
+__CAVEATS:__ Keys are not encrypted; only values are encrypted. The "id"
+of a Data Bag Item is not encrypted, since it is used by Chef Server to
+store the item in its database. For example, given the following data bag item:
+ {"id": "important_passwords", "secret_password": "opensesame"}
+The key "secret\_password" will be visible to an evesdropper, but the
+value "opensesame" will be protected. Both the key "id" and its value
+"important\_passwords" will be visible to an evesdropper.
+
+Chef Server does not provide a secure mechanism for distributing
+encryption keys.
+
+## SEE ALSO
+ __knife-search__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. http://wiki.opscode.com/display/chef/Home
+
diff --git a/chef/distro/common/markdown/man1/knife-environment.mkd b/chef/distro/common/markdown/man1/knife-environment.mkd
new file mode 100644
index 0000000000..9c17dd3465
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-environment.mkd
@@ -0,0 +1,8 @@
+knife-environment(1) -- Define cookbook policies for the environments in your infrastructure
+========================================
+
+## SYNOPSIS
+
+__knife__ __environment__ _sub-command_ _(options)_
+
+## ENVIRONMENT SUBCOMMANDS
diff --git a/chef/distro/common/markdown/man1/knife-exec.mkd b/chef/distro/common/markdown/man1/knife-exec.mkd
new file mode 100644
index 0000000000..b0edfa0cb6
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-exec.mkd
@@ -0,0 +1,9 @@
+knife-exec(1) -- Run user scripts using the Chef API DSL
+========================================
+
+## SYNOPSIS
+
+__knife__ __exec__ _(options)_
+
+## EXEC SUBCOMMAND
+
diff --git a/chef/distro/common/markdown/man1/knife-index.mkd b/chef/distro/common/markdown/man1/knife-index.mkd
new file mode 100644
index 0000000000..812f3fe7dd
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-index.mkd
@@ -0,0 +1,30 @@
+knife-index(1) -- Rebuild the search index on a Chef Server
+========================================
+
+## SYNOPSIS
+
+__knife__ __index rebuild__ _(options)_
+
+ * `-y`, `--yes`:
+ don't bother to ask if I'm sure
+
+## DESCRIPTION
+Rebuilds all the search indexes on the server. This is accomplished by
+deleting all objects from the search index, and then forwarding each
+item in the database to __chef-expander__(8) via __rabbitmq-server__(1).
+Depending on the number of objects in the database, it may take some
+time for all objects to be indexed and available for search.
+
+## SEE ALSO
+ __knife-search__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-node.mkd b/chef/distro/common/markdown/man1/knife-node.mkd
new file mode 100644
index 0000000000..4b5d1cf4f8
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-node.mkd
@@ -0,0 +1,147 @@
+knife-node(1) -- Manage the hosts in your infrastructure
+========================================
+
+## SYNOPSIS
+
+__knife__ __node__ _sub-command_ _(options)_
+
+## DESCRIPTION
+Nodes are data structures that represent hosts configured with Chef.
+Nodes have a __name__, a String that uniquely identifies the node,
+__attributes__, a nested Hash of properties that describe how the host
+should be configured, a __chef\_environment__, a String representing the
+environment to which the node belongs, and a __run\_list__, an ordered
+list of __recipes__ or __roles__ that chef-client should apply when
+configuring a host.
+
+When a host communicates with a Chef Server, it authenticates using its
+__node\_name__ for identification and signs its reqests with a private
+key. The Server validates the request by looking up a __client__ object
+with a name identical to the __node\_name__ submitted with the request
+and verifes the signature using the public key for that __client__
+object. __NOTE__ that the __client__ is a different object in the
+system. It is associated with a node by virtue of having a matching
+name.
+
+By default __chef-client__(8) will create a node using the FQDN of the
+host for the node name, though this may be overridden by configuration
+settings.
+
+## NODE SUB-COMMANDS
+
+
+## BULK DELETE
+__knife node bulk delete__ _regex_ _(options)_
+
+Deletes nodes for which the name matches the regular expression _regex_
+on the Chef Server. The regular expression should be given in quotes,
+and should not be surrounded with forward slashes (as is typical of
+regular expression literals in scripting languages).
+
+## CREATE
+__knife node create__ _name_ _(options)_
+
+Create a new node. Unless the --no-editor option is given, an empty node
+object will be created and displayed in your text editor. If the editor
+exits with a successful exit status, the node data will be posted to the
+Chef Server to create the node.
+
+## DELETE
+__knife node delete__ _name_ _(options)_
+
+Deletes the node identified by _name_ on the Chef Server.
+
+## EDIT
+__knife node edit__ _name_ _(options)_
+
+ * `-a`, `--all`:
+ Display all node data in the editor. By default, default, override,
+ and automatic attributes are not shown.
+
+Edit the node identified by _name_. Like __knife node create__, the node
+will be displayed in your text editor unless the -n option is present.
+
+## FROM FILE
+__knife node from file__ _file_ _(options)_
+
+Create a node from a JSON format _file_.
+
+## LIST
+__knife node list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+List all nodes.
+
+## RUN\_LIST ADD
+__knife node run_list add__ _name_ _run list item_ _(options)_
+
+ * `-a`, `--after ITEM`:
+ Place the ENTRY in the run list after ITEM
+
+Add the _run list item_ to the node's `run_list`. See Run list
+
+## RUN\_LIST REMOVE
+__knife node run_list remove__ _node name_ _run list item_ _(options)_
+
+Remove the _run list item_ from the node's `run_list`.
+
+## SHOW
+__knife node show__ _node name_ _(options)_
+
+ * `-a`, `--attribute [ATTR]`:
+ Show only one attribute
+ * `-r`, `--run-list `:
+ Show only the run list
+ * `-F`, `--format FORMAT`:
+ Display the node in a different format.
+ * `-m`, `--medium`:
+ Display more, but not all, of the node's data when using the default
+ _summary_ format
+
+Displays the node identified by _node name_ on stdout. The amount of
+content displayed and the output format are modified by the --format
+option. Valid formats are:
+
+ * summary:
+ displays the node in a custom, summarized format
+ * text
+ displays the node data in its entirety using the colorized tree
+display
+ * json:
+ displays the node in JSON format
+ * yaml:
+ displays the node in YAML format
+ * pp
+ displays the node using Ruby's pretty printer.
+
+For brevity, only the first character of the format is required, for
+example, -Fj will produce JSON format output.
+
+## RUN LIST ITEM FORMAT
+Run list items may be either roles or recipes. When adding a role to a
+run list, the correct syntax is "role[ROLE\_NAME]"
+
+When adding a recipe to a run list, there are several valid formats:
+
+ * Fully Qualified Format:
+ "recipe[COOKBOOK::RECIPE\_NAME]", for example, "recipe[chef::client]"
+ * Cookbook Recipe Format:
+ For brevity, the recipe part of the fully qualified format may be omitted, and recipes specified as "COOKBOOK::RECIPE\_NAME", e.g., "chef::client"
+ * Default Recipe Format:
+ When adding the default recipe of a cookbook to a run list, the recipe name may be omitted as well, e.g., "chef::default" may be written as just "chef"
+
+## SEE ALSO
+ __knife-client__(1) __knife-search__(1) __knife-role__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-recipe.mkd b/chef/distro/common/markdown/man1/knife-recipe.mkd
new file mode 100644
index 0000000000..c795f13e92
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-recipe.mkd
@@ -0,0 +1,24 @@
+knife-recipe(1) -- List the recipes available on a Chef Server
+========================================
+
+## SYNOPSIS
+
+__knife__ __recipe list [PATTERN]__
+
+List the recipes available on the server. The results shown can be
+limited with the optional PATTERN, which is a regular expression.
+PATTERN should be given in quotes, without slashes.
+
+## SEE ALSO
+ __knife-cookbook__(1)
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-role.mkd b/chef/distro/common/markdown/man1/knife-role.mkd
new file mode 100644
index 0000000000..ac7b42f27e
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-role.mkd
@@ -0,0 +1,79 @@
+knife-role(1) -- Group common configuration settings
+========================================
+
+## SYNOPSIS
+
+__knife__ __role__ _sub-command_ _(options)_
+
+## DESCRIPTION
+Roles provide a mechanism to group repeated configuration settings.
+Roles are data structures that contain __default\_attributes__, and
+__override_attributes__, which are nested hashes of configuration
+settings, and a __run_list__, which is an ordered list of recipes and
+roles that should be applied to a host by chef-client.
+
+__default_attributes__ will be overridden if they conflict with a value
+on a node that includes the role. Conversely, __override_attributes__
+will override any values set on nodes that apply them.
+
+When __chef-client__(8) configures a host, it will "expand" the
+__run_list__ included in that host's node data. The expansion process
+will recursively replace any roles in the run\_list with that role's
+run\_list.
+
+
+## ROLE SUB-COMMANDS
+
+__knife role bulk delete REGEX__ _(options)_
+
+Delete roles on the Chef Server based on a regular expression. The regular expression (_REGEX_) should be in quotes, not in //'s.
+
+__knife role create ROLE__ _(options)_
+
+ * `-d`, `--description`:
+ The role description
+
+Create a new role.
+
+__knife role delete ROLE__ _(options)_
+
+Delete a role.
+
+__knife role edit ROLE__ _(options)_
+
+Edit a role.
+
+__knife role from file FILE__ _(options)_
+
+Create or update a role from a role Ruby DSL (`.rb`) or JSON file.
+
+__knife role list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+List roles.
+
+__knife role show ROLE__ _(options)_
+
+ * `-a`, `--attribute ATTR`:
+ Show only one attribute
+
+Show a specific role.
+
+
+## SEE ALSO
+ __knife-node__(1)
+
+ <http://wiki.opscode.com/display/chef/Attributes>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/chef/distro/common/markdown/man1/knife-search.mkd b/chef/distro/common/markdown/man1/knife-search.mkd
new file mode 100644
index 0000000000..50ec98592d
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-search.mkd
@@ -0,0 +1,56 @@
+knife-search(1) -- Find objects on a Chef Server by query
+========================================
+
+## SYNOPSIS
+
+__knife__ __search INDEX QUERY__ _(options)_
+
+ * `-a`, `--attribute ATTR`:
+ Show only one attribute
+ * `-i`, `--id-only`:
+ Show only the ID of matching objects
+ * `-R`, `--rows INT`:
+ The number of rows to return
+ * `-r`, `--run-list`:
+ Show only the run list
+ * `-o`, `--sort SORT`:
+ The order to sort the results in
+ * `-b`, `--start ROW`:
+ The row to start returning results at
+ * `-m`, `--medium`:
+ Display medium sized output when searching nodes using the default
+ summary format
+ * `-l`, `--long`:
+ Display long output when searching nodes using the default summary
+ format
+
+## DESCRIPTION
+
+Search indexes are a feature of the Chef Server and the search
+sub-command allows querying any of the available indexes using SOLR
+query syntax. The following data types are indexed for search:
+* _node_
+* _role_
+* _environment_
+* _data bag_
+
+## SYNTAX
+
+## EXAMPLES
+
+## SEE ALSO
+ __knife-ssh__(1)
+
+ <http://wiki.opscode.com/display/chef/Attributes>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
+
diff --git a/chef/distro/common/markdown/man1/knife-ssh.mkd b/chef/distro/common/markdown/man1/knife-ssh.mkd
new file mode 100644
index 0000000000..c8da64d306
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-ssh.mkd
@@ -0,0 +1,64 @@
+knife-ssh(1) -- Run a command or interactive session on multiple remote hosts
+========================================
+
+## SYNOPSIS
+
+__knife__ __ssh QUERY COMMAND__ _(options)_
+
+ * `-a`, `--attribute ATTR `:
+ The attribute to use for opening the connection - default is fqdn
+ * `-C`, `--concurrency NUM `:
+ The number of concurrent connections
+ * `-m`, `--manual-list `:
+ QUERY is a space separated list of servers
+ * `-P`, `--ssh-password PASSWORD`:
+ The ssh password
+ * `-x`, `--ssh-user USERNAME `:
+ The ssh username
+
+## DESCRIPTION
+
+The _ssh_ sub-command opens an ssh session to each of the nodes in the
+search results of the _QUERY_. This sub-command requires that the
+net-ssh-multi and highline Ruby libraries are installed. On Debian
+systems, these are the libnet-ssh-multi-ruby and libhighline-ruby
+packages. They can also be installed as RubyGems (net-ssh-multi and
+highline, respectively).
+
+## TERMINAL MULTIPLEXING AND TERMINAL TAB SUPPORT
+`knife ssh` integrates with several terminal multiplexer programs to
+provide a more convenient means of managing multiple ssh sessions. When
+the _COMMAND_ option matches one of these, `knife ssh` will create
+multiple interactive ssh sessions running locally in the terminal
+multiplexer instead of invoking the command on the remote host.
+
+The available multiplexers are:
+ * `interactive`:
+ A built-in multiplexer. `interactive` supports running commands on a
+ subset of the connected hosts in parallel
+ * __screen__(1):
+ Runs ssh interactively inside `screen`. ~/.screenrc will be sourced
+ if it exists.
+ * __tmux__(1):
+ Runs ssh interactively inside tmux.
+ * `macterm` (Mac OS X only):
+ Opens a Terminal.app window and creates a tab for each ssh session.
+ You must install the rb-appscript gem before you can use this
+ option.
+
+## SEE ALSO
+ __knife-search__(1)
+
+ <http://wiki.opscode.com/display/chef/Attributes>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
+
diff --git a/chef/distro/common/markdown/man1/knife-status.mkd b/chef/distro/common/markdown/man1/knife-status.mkd
new file mode 100644
index 0000000000..f333f53fb5
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-status.mkd
@@ -0,0 +1,38 @@
+knife-status(1) -- Display status information for the nodes in your infrastructure
+========================================
+
+## SYNOPSIS
+
+__knife__ __status__ _(options)_
+
+ * `-r`, `--run-list RUN_LIST`:
+ Show the run list
+
+## DESCRIPTION
+
+The _status_ sub-command searches the Chef Server for all nodes and
+displays information about the last time the node checked into the
+server and executed a `node.save`. The fields displayed are the relative
+checkin time, the node name, it's operating system platform and version,
+the fully-qualified domain name and the default IP address. If the `-r`
+option is given, the node's run list will also be displayed. Note that
+depending on the configuration of the nodes, the FQDN and IP displayed
+may not be publicly reachable.
+
+
+## SEE ALSO
+ __knife-search__(1)
+
+ <http://wiki.opscode.com/display/chef/Attributes>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
+
diff --git a/chef/distro/common/markdown/man1/knife-tag.mkd b/chef/distro/common/markdown/man1/knife-tag.mkd
new file mode 100644
index 0000000000..c43c0631dd
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife-tag.mkd
@@ -0,0 +1,8 @@
+knife-tag(1) -- Apply tags to nodes on a Chef Server
+========================================
+
+## SYNOPSIS
+
+__knife__ __tag__ _subcommand_ _(options)_
+
+## TAG SUBCOMMANDS
diff --git a/chef/distro/common/markdown/man1/knife.mkd b/chef/distro/common/markdown/man1/knife.mkd
new file mode 100644
index 0000000000..ebd056c920
--- /dev/null
+++ b/chef/distro/common/markdown/man1/knife.mkd
@@ -0,0 +1,261 @@
+knife(1) -- Chef Server REST API utility
+========================================
+
+## SYNOPSIS
+
+__knife__ _sub-command_ _(options)_
+
+## DESCRIPTION
+
+This manual page documents knife, a command-line utility used to
+interact with a Chef server directly through the RESTful API. Knife uses
+sub-commands to take various actions on different types of Chef objects.
+Some sub-commands take additional options. General options follow
+sub-commands and their options. A configuration file can be created for
+common defaults.
+
+Unless otherwise specified, output is in JSON format, and input files
+are also JSON format.
+
+The Chef class `Chef::Config` that configures the behavior of how knife
+runs has options that correspond to command-line options. These are
+noted as `Chef::Config` values.
+
+## GENERAL OPTIONS
+
+ * `-s`, `--server-url` URL:
+ Chef Server URL, corresponds to `Chef::Config` `chef_server_url`.
+ * `-k`, `--key` KEY:
+ API Client Key, corresponds to `Chef::Config` `client_key`.
+ * `-c`, `--config` CONFIG:
+ The configuration file to use
+ * `-e`, `--editor` EDITOR:
+ Set the editor to use for interactive commands
+ * `-F`, `--format` FORMAT:
+ Which format to use for output
+ * `-l`, `--log_level` LEVEL:
+ Set the log level (debug, info, warn, error, fatal), corresponds to `Chef::Config` `log_level`.
+ * `-L`, `--logfile` LOGLOCATION:
+ Set the log file location, defaults to STDOUT, corresponds to `Chef::Config` `log_location`.
+ * `-n`, `--no-editor`:
+ Do not open EDITOR, just accept the data as is
+ * `-u`, `--user` USER:
+ API Client Username, corresponds to `Chef::Config` `node_name`.
+ * `-p`, `--print-after`:
+ Show the data after a destructive operation
+ * `-v`, `--version`:
+ Show chef version
+ * `-y`, `--yes`:
+ Say yes to all prompts for confirmation
+ * `-h`, `--help`:
+ Show this message
+
+Usage information for sub-commands can be displayed with `knife SUB-COMMAND --help`.
+
+## SUB-COMMANDS
+
+Knife sub-commands are structured as _NOUN verb NOUN (options)_. The
+sub-commands are meant to be intuitively named. Because the Chef Server
+API is RESTful, sub-commands generally utilize CRUD operations.
+
+* create (create)
+* list and show (read)
+* edit (update)
+* delete (destroy)
+
+Objects stored on the server support these, as described below.
+
+## GENERAL SUB-COMMANDS
+
+__recipe list [PATTERN]__
+
+List available recipes from the server. Specify _PATTERN_ as a regular expression to limit the results.
+
+
+## CONFIGURATION
+
+The knife configuration file is a Ruby DSL to set configuration
+parameters for Knife's __GENERAL OPTIONS__. The default location for the
+config file is `~/.chef/knife.rb`. If managing multiple Chef
+repositories, per-repository config files can be created. The file must
+be `.chef/knife.rb` in the current directory of the repository.
+
+If the config file exists, knife uses these settings for __GENERAL OPTIONS__ defaults.
+
+`log_level`
+
+A Ruby symbol specifying the log level. Corresponds to `-l` or `--log_level` option. Default is _:info_. Valid values are:
+
+ * :info
+ * :debug
+ * :warn
+ * :fatal
+
+`log_location`
+
+Corresponds to the `-L` or `--log-file` option. Defaults is __STDOUT__.
+Valid values are __STDOUT__ or a filename.
+
+`node_name`
+
+User to authenticate to the Chef server. Corresponds to the `-u` or
+`--user` option. This is requested from the user when running this
+sub-command.
+
+`client_key`
+
+Private key file to authenticate to the Chef server. Corresponds to the
+`-k` or `--key` option. This is requested from the user when running
+this sub-command.
+
+`chef_server_url`
+
+URL of the Chef server. Corresponds to the `-s` or `--server-url`
+option. This is requested from the user when running this sub-command.
+
+`cache_type`
+
+The type of cache to use. Default is BasicFile. This can be any type of
+Cache that moneta supports: BasicFile, Berkeley, Couch, DataMapper,
+File, LMC, Memcache, Memory, MongoDB, Redis, Rufus, S3, SDBM, Tyrant,
+Xattr, YAML.
+
+`cache_options`
+
+Specifies various options to use for caching. Default reads the Chef
+client configuration (/etc/chef/checksums).
+
+`validation_client_name`
+
+Specifies the name of the client used to validate new clients. This is
+requested from the user when running the configuration sub-command.
+
+`validation_key`
+
+Specifies the private key file to use for generating ec2 instance data
+for validating new clients. This is implied from the
+`validation_client_name`.
+
+`cookbook_copyright`
+`cookbook_email`
+`cookbook_license`
+
+Used by `knife cookbook create` sub-command to specify the copyright
+holder, maintainer email and license (respectively) for new cookbooks.
+The copyright holder is listed as the maintainer in the cookbook's
+metadata and as the Copyright in the comments of the default recipe. The
+maintainer email is used in the cookbook metadata. The license
+determines what preamble to put in the comment of the default recipe,
+and is listed as the license in the cookbook metadata. Currently
+supported licenses are "apachev2" and "none". Any other values will
+result in an empty license in the metadata (needs to be filled in by the
+author), and no comment preamble in the default recipe.
+
+`knife[:aws_access_key_id]`
+`knife[:aws_secret_access_key]`
+
+Specifies the Amazon AWS EC2 credentials to use when running the ec2 sub-commands.
+
+`knife[:rackspace_api_username]`
+`knife[:rackspace_api_key]`
+
+Specifies the Rackspace Cloud credentials to use when running the rackspace sub-commands.
+
+`knife[:terremark_username]`
+`knife[:terremark_password]`
+`knife[:terremark_service]`
+
+Specifies the Terremark vCloud credentials to use when running the terremark sub-commands.
+
+`knife[:slicehost_password]`
+
+Specifies the Slicehost password to use when running the slicdehost sub-commands.
+
+## FILES
+
+_~/.chef/knife.rb_
+
+Ruby DSL configuration file for knife. See __CONFIGURATION__.
+
+## CHEF WORKFLOW
+
+When working with Chef and Knife in the local repository, the recommended workflow outline looks like:
+
+* Create repository. A skeleton sample is provided at _http://github.com/opscode/chef-repo/_.
+* Configure knife, see __CONFIGURATION__.
+* Download cookbooks from the Opscode cookbooks site, see __COOKBOOK SITE SUB-COMMANDS__.
+* Or, create new cookbooks, see `cookbook create` sub-command.
+* Commit changes to the version control system. See your tool's documentation.
+* Upload cookbooks to the Chef Server, see __COOKBOOK SUB-COMMANDS__.
+* Launch instances in the Cloud, OR provision new hosts; see __CLOUD COMPUTING SUB-COMMANDS__ and __BOOTSTRAP SUB-COMMANDS__.
+* Watch Chef configure systems!
+
+A note about git: Opscode and many folks in the Chef community use git,
+but it is not required, except in the case of the `cookbook site vendor`
+sub-command, as it uses git directly. Version control is strongly
+recommended though, and git fits with a lot of the workflow paradigms.
+
+## EXAMPLES
+
+Example client config (`/etc/chef/client.rb`) from `knife configure
+client`. The same configuration is used when using the `knife bootstrap`
+command with the default `gem` templates that come with Chef.
+
+ log_level :info
+ log_location STDOUT
+ chef_server_url 'https://api.opscode.com/organizations/ORGNAME'
+ validation_client_name 'ORGNAME-validator'
+
+Setting up a custom bootstrap is fairly straightforward. Create
+`.chef/bootstrap` in your Chef Repository directory or in
+`$HOME/.chef/bootstrap`. Then create the ERB template file.
+
+ mkdir ~/.chef/bootstrap
+ vi ~/.chef/bootstrap/debian5.0-apt.erb
+
+For example, to create a new bootstrap template that should be used when
+setting up a new Debian node. Edit the template to run the commands, set
+up the validation certificate and the client configuration file, and
+finally to run chef-client on completion. The bootstrap template can be
+called with:
+
+ knife bootstrap mynode.example.com --template-file ~/.chef/bootstrap/debian5.0-apt.erb
+
+Or,
+
+ knife bootstrap mynode.example.com --distro debian5.0-apt
+
+The `--distro` parameter will automatically look in the
+`~/.chef/bootstrap` directory for a file named `debian5.0-apt.erb`.
+
+Templates provided by the Chef installation are located in
+`BASEDIR/lib/chef/knife/bootstrap/*.erb`, where _BASEDIR_ is the
+location where the package or Gem installed the Chef client libraries.
+
+Uploading cookbooks to the Opscode cookbooks site using the user/certificate specifically:
+
+ knife cookbook site share example Other -k ~/.chef/USERNAME.pem -u USERNAME
+
+## ENVIRONMENT
+ * `EDITOR`:
+ The text editor to use for editing data. The --editor option takes
+ precedence over this value, and the --no-editor option supresses
+ data editing entirely.
+
+## SEE ALSO
+
+Full documentation for Chef is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home/.
+
+JSON is JavaScript Object Notation and more information can be found at http://json.org/.
+
+SOLR is an open source search engine. The Chef Server includes a SOLR installation. More information about SOLR, including the search query syntax, can be found at http://lucene.apache.org/solr/.
+
+Git is a version control system and documented at http://git-scm.com/.
+
+This manual page was generated in nroff from Markdown with ronn. Ryan Tomayko wrote ronn and more information can be found at http://rtomayko.github.com/ronn/ronn.5.html.
+
+## AUTHOR
+
+Chef was written by Adam Jacob <adam@opscode.com> of Opscode (<http://www.opscode.com>), with contributions from the community. This manual page was written by Joshua Timberman <joshua@opscode.com>. Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.
+
+On Debian systems, the complete text of the Apache 2.0 License can be found in `/usr/share/common-licenses/Apache-2.0`.
diff --git a/chef/lib/chef/knife/configure.rb b/chef/lib/chef/knife/configure.rb
index e1efdfbb65..b6f3a5b843 100644
--- a/chef/lib/chef/knife/configure.rb
+++ b/chef/lib/chef/knife/configure.rb
@@ -24,6 +24,10 @@ class Chef
attr_reader :chef_server, :new_client_name, :admin_client_name, :admin_client_key
attr_reader :chef_repo, :new_client_key, :validation_client_name, :validation_key
+ deps do
+ Chef::Knife::ClientCreate.load_deps
+ end
+
banner "knife configure (options)"
option :repository,
diff --git a/chef/lib/chef/knife/help.rb b/chef/lib/chef/knife/help.rb
new file mode 100644
index 0000000000..f0e5f155a3
--- /dev/null
+++ b/chef/lib/chef/knife/help.rb
@@ -0,0 +1,98 @@
+#
+# Author:: Daniel DeLeo (<dan@opscode.com>)
+# Copyright:: Copyright (c) 2011 Opscode, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+class Chef
+ class Knife
+ class Help < Chef::Knife
+
+ banner "knife help [list|TOPIC]"
+
+ def run
+ if name_args.empty?
+ ui.info "Usage: knife SUBCOMMAND (options)"
+ show_usage
+ ui.msg ""
+ ui.info "For further help:"
+ ui.info(<<-MOAR_HELP)
+ knife help list list help topics
+ knife help knife show general knife help
+ knife help TOPIC display the manual for TOPIC
+ knife COMMAND --help show the options for a command
+MOAR_HELP
+ exit 1
+ else
+ @query = name_args.join('-')
+ end
+
+
+
+ case @query
+ when 'topics', 'list'
+ print_help_topics
+ exit 1
+ when 'intro', 'knife'
+ @topic = 'knife'
+ else
+ @topic = find_manpages_for_query(@query)
+ end
+
+ manpage_path = available_manpages_by_basename[@topic]
+ exec "man #{manpage_path}"
+ end
+
+ def help_topics
+ available_manpages_by_basename.keys.map {|c| c.sub(/^knife\-/, '')}.sort
+ end
+
+ def print_help_topics
+ ui.info "Available help topics are: "
+ help_topics.each do |topic|
+ ui.msg " #{topic}"
+ end
+ end
+
+ def find_manpages_for_query(query)
+ possibilities = available_manpages_by_basename.keys.select do |manpage|
+ ::File.fnmatch("knife-#{query}*", manpage) || ::File.fnmatch("#{query}*", manpage)
+ end
+ if possibilities.empty?
+ ui.error "No help found for '#{query}'"
+ ui.msg ""
+ print_help_topics
+ exit 1
+ elsif possibilities.size == 1
+ possibilities.first
+ else
+ ui.info "Multiple help topics match your query. Pick one:"
+ ui.highline.choose(*possibilities)
+ end
+ end
+
+ def available_manpages_by_basename
+ @available_manpages_by_basename ||= begin
+ available_manpages = Dir[File.expand_path("../distro/common/man/man1/*1", CHEF_ROOT)]
+ available_manpages.inject({}) do |map, manpath|
+ map[::File.basename(manpath, '.1')] = manpath
+ map
+ end
+ end
+ end
+
+ end
+ end
+end