summaryrefslogtreecommitdiff
path: root/distro/common/markdown
diff options
context:
space:
mode:
authorSeth Chisamore <schisamo@opscode.com>2012-10-30 10:39:35 -0400
committerSeth Chisamore <schisamo@opscode.com>2012-10-30 10:39:35 -0400
commit24dc69a9a97e82a6e4207de68d6dcc664178249b (patch)
tree19bb289c9f88b4bbab066bc56b95d6d222fd5c35 /distro/common/markdown
parent9348c1c9c80ee757354d624b7dc1b78ebc7605c4 (diff)
downloadchef-24dc69a9a97e82a6e4207de68d6dcc664178249b.tar.gz
[OC-3564] move core Chef to the repo root \o/ \m/
The opscode/chef repository now only contains the core Chef library code used by chef-client, knife and chef-solo!
Diffstat (limited to 'distro/common/markdown')
-rw-r--r--distro/common/markdown/README3
-rw-r--r--distro/common/markdown/man1/chef-shell.mkd195
-rw-r--r--distro/common/markdown/man1/knife-bootstrap.mkd141
-rw-r--r--distro/common/markdown/man1/knife-client.mkd103
-rw-r--r--distro/common/markdown/man1/knife-configure.mkd70
-rw-r--r--distro/common/markdown/man1/knife-cookbook-site.mkd123
-rw-r--r--distro/common/markdown/man1/knife-cookbook.mkd263
-rw-r--r--distro/common/markdown/man1/knife-data-bag.mkd121
-rw-r--r--distro/common/markdown/man1/knife-environment.mkd151
-rw-r--r--distro/common/markdown/man1/knife-exec.mkd42
-rw-r--r--distro/common/markdown/man1/knife-index.mkd30
-rw-r--r--distro/common/markdown/man1/knife-node.mkd130
-rw-r--r--distro/common/markdown/man1/knife-role.mkd85
-rw-r--r--distro/common/markdown/man1/knife-search.mkd180
-rw-r--r--distro/common/markdown/man1/knife-ssh.mkd69
-rw-r--r--distro/common/markdown/man1/knife-status.mkd36
-rw-r--r--distro/common/markdown/man1/knife-tag.mkd39
-rw-r--r--distro/common/markdown/man1/knife.mkd218
-rw-r--r--distro/common/markdown/man8/chef-client.mkd74
-rw-r--r--distro/common/markdown/man8/chef-expander.mkd82
-rw-r--r--distro/common/markdown/man8/chef-expanderctl.mkd58
-rw-r--r--distro/common/markdown/man8/chef-server-webui.mkd121
-rw-r--r--distro/common/markdown/man8/chef-server.mkd121
-rw-r--r--distro/common/markdown/man8/chef-solo.mkd107
-rw-r--r--distro/common/markdown/man8/chef-solr.mkd89
25 files changed, 2651 insertions, 0 deletions
diff --git a/distro/common/markdown/README b/distro/common/markdown/README
new file mode 100644
index 0000000000..0f35814baf
--- /dev/null
+++ b/distro/common/markdown/README
@@ -0,0 +1,3 @@
+This directory contains markdown documentation that is used in other places.
+For example, markdown (.mkd) documents that are generated as man pages
+with ronn.
diff --git a/distro/common/markdown/man1/chef-shell.mkd b/distro/common/markdown/man1/chef-shell.mkd
new file mode 100644
index 0000000000..5525ef8ea9
--- /dev/null
+++ b/distro/common/markdown/man1/chef-shell.mkd
@@ -0,0 +1,195 @@
+chef-shell(1) -- Interactive Chef Console
+=========================================
+
+## SYNOPSIS
+
+__chef-shell__ [_named configuration_] _(options)_
+
+ * `-S`, `--server CHEF_SERVER_URL`:
+ The chef server URL
+ * `-z`, `--client`:
+ chef-client mode
+ * `-c`, `--config CONFIG`:
+ The configuration file to use
+ * `-j`, `--json-attributes JSON_ATTRIBS`:
+ Load attributes from a JSON file or URL
+ * `-l`, `--log-level LOG_LEVEL`:
+ Set the logging level
+ * `-s`, `--solo`:
+ chef-solo session
+ * `-a`, `--standalone`:
+ standalone session
+ * `-v`, `--version`:
+ Show chef version
+ * `-h`, `--help`:
+ Show command options
+
+When no --config option is specified, chef-shell attempts to load a
+default configuration file:
+
+* If a _named configuration_ is given, chef-shell will load ~/.chef/_named
+ configuration_/chef_shell.rb
+* If no _named configuration_ is given chef-shell will load
+ ~/.chef/chef_shell.rb if it exists
+* chef-shell falls back to loading /etc/chef/client.rb or
+/etc/chef/solo.rb if -z or -s options are given and no chef_shell.rb
+can be found.
+* The --config option takes precedence over implicit configuration
+ paths.
+
+## DESCRIPTION
+
+`chef-shell` is an irb(1) (interactive ruby) session customized for Chef.
+`chef-shell` serves two primary functions: it provides a means to
+interact with a Chef Server interactively using a convenient DSL; it
+allows you to define and run Chef recipes interactively.
+
+## SYNTAX
+
+chef-shell uses irb's subsession feature to provide multiple modes of
+interaction. In addition to the primary mode which is entered on start,
+`recipe` and `attributes` modes are available.
+
+## PRIMARY MODE
+The following commands are available in the primary
+session:
+
+ * `help`:
+ Prints a list of available commands
+ * `version`:
+ Prints the Chef version
+ * `recipe`:
+ Switches to `recipe` mode
+ * `attributes`:
+ Switches to `attributes` mode
+ * `run_chef`:
+ Initiates a chef run
+ * `reset`:
+ reinitializes chef-shell session
+ * `echo :on|:off`:
+ Turns irb's echo function on or off. Echo is _on_ by default.
+ * `tracing :on|:off`:
+ Turns irb's function tracing feature on or off. Tracing is extremely
+ verbose and expected to be of interest primarily to developers.
+ * `node`:
+ Returns the _node_ object for the current host. See knife-node(1)
+ for more information about nodes.
+ * `ohai`:
+ Prints the attributes of _node_
+
+In addition to these commands, chef-shell provides a DSL for accessing
+data on the Chef Server. When working with remote data in chef-shell, you
+chain method calls in the form _object type_._operation_, where
+_object type_ is in plural form. The following object types are
+available:
+
+ * `nodes`
+ * `roles`
+ * `data_bags`
+ * `clients`
+ * `cookbooks`
+
+For each _object type_ the following operations are available:
+
+ * _object type_.all(_&block_):
+ Loads all items from the server. If the optional code _block_ is
+ given, each item will be passed to the block and the results
+ returned, similar to ruby's `Enumerable#map` method.
+ * _object type_.show(_object name_):
+ Aliased as _object type_.load
+
+ Loads the singular item identified by _object name_.
+ * _object type_.search(_query_, _&block_):
+ Aliased as _object type_.find
+
+ Runs a search against the server and returns the matching items. If
+ the optional code _block_ is given each item will be passed to the
+ block and the results returned.
+
+ The _query_ may be a Solr/Lucene format query given as a String, or
+ a Hash of conditions. If a Hash is given, the options will be ANDed
+ together. To join conditions with OR, use negative queries, or any
+ advanced search syntax, you must provide give the query in String
+ form.
+ * _object type_.transform(:all|_query_, _&block_):
+ Aliased as _object type_.bulk_edit
+
+ Bulk edit objects by processing them with the (required) code _block_.
+ You can edit all objects of the given type by passing the Symbol
+ `:all` as the argument, or only a subset by passing a _query_ as the
+ argument. The _query_ is evaluated in the same way as with
+ __search__.
+
+ The return value of the code _block_ is used to alter the behavior
+ of `transform`. If the value returned from the block is `nil` or
+ `false`, the object will not be saved. Otherwise, the object is
+ saved after being passed to the block. This behavior can be
+ exploited to create a dry run to test a data transformation.
+
+## RECIPE MODE
+Recipe mode implements Chef's recipe DSL. Exhaustively documenting this
+DSL is outside the scope of this document. See the following pages in
+the Chef documentation for more information:
+
+ * <http://wiki.opscode.com/display/chef/Resources>
+ * <http://wiki.opscode.com/display/chef/Recipes>
+
+Once you have defined resources in the recipe, you can trigger a
+convergence run via `run_chef`
+
+## EXAMPLES
+
+* A "Hello World" interactive recipe
+
+ chef > recipe
+ chef:recipe > echo :off
+ chef:recipe > file "/tmp/hello\_world"
+ chef:recipe > run\_chef
+ [Sat, 09 Apr 2011 08:56:56 -0700] INFO: Processing file[/tmp/hello\_world] action create ((irb#1) line 2)
+ [Sat, 09 Apr 2011 08:56:56 -0700] INFO: file[/tmp/hello\_world] created file /tmp/hello\_world
+ chef:recipe > pp ls '/tmp'
+ [".",
+ "..",
+ "hello\_world"]
+
+* Search for _nodes_ by role, and print their IP addresses
+
+ chef > nodes.find(:roles => 'monitoring-server') {|n| n[:ipaddress] }
+ => ["10.254.199.5"]
+
+* Remove the role _obsolete_ from every node in the system
+
+ chef > nodes.transform(:all) {|n| n.run\_list.delete('role[obsolete]') }
+ => [node[chef098b2.opschef.com], node[ree-woot], node[graphite-dev], node[fluke.localdomain], node[ghost.local], node[kallistec]]
+
+
+## BUGS
+
+`chef-shell` often does not perfectly replicate the context in which
+chef-client(8) configures a host, which may lead to discrepancies in
+observed behavior.
+
+`chef-shell` has to duplicate much code from chef-client's internal
+libraries and may become out of sync with the behavior of those
+libraries.
+
+## SEE ALSO
+
+ chef-client(8) knife(1)
+ <http://wiki.opscode.com/display/chef/Chef+Shell>
+
+## AUTHOR
+
+ Chef was written by Adam Jacob <adam@opscode.com> with many
+ contributions from the community. chef-shell was written by Daniel
+ DeLeo.
+
+## DOCUMENTATION
+
+ This manual page was written by Daniel DeLeo <dan@opscode.com>.
+ Permission is granted to copy, distribute and / or modify this
+ document under the terms of the Apache 2.0 License.
+
+## CHEF
+
+ chef-shell is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
diff --git a/distro/common/markdown/man1/knife-bootstrap.mkd b/distro/common/markdown/man1/knife-bootstrap.mkd
new file mode 100644
index 0000000000..c466fc7f7f
--- /dev/null
+++ b/distro/common/markdown/man1/knife-bootstrap.mkd
@@ -0,0 +1,141 @@
+knife-bootstrap(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
+ * `-p`, `--ssh-port PORT`:
+ The ssh port
+ * `--bootstrap-version VERSION`:
+ The version of Chef to install
+ * `--bootstrap-proxy PROXY_URL`:
+ `The proxy server for the node being bootstrapped`
+ * `--prerelease`:
+ Install pre-release Chef gems
+ * `-r`, `--run-list RUN_LIST`:
+ Comma separated list of roles/recipes to apply
+ * `--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
+ * `--[no-]host-key-verify`:
+ Enable host key verification, which is the default behavior.
+ * `--hint HINT_NAME[=HINT_FILE]`:
+ Provide the name of a hint (with option JSON file) to set for use by
+ Ohai plugins.
+
+## DESCRIPTION
+
+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
+plugins.
+
+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). 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.
+
+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.
+
+## EXAMPLES
+Setting up a custom bootstrap is fairly straightforward. Create a
+`.chef/bootstrap` directory in your Chef Repository 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.
+
+## BUGS
+`knife bootstrap` is not capable of bootstrapping multiple hosts in
+parallel.
+
+The bootstrap script is passed as an argument to sh(1) on the remote
+system, so sensitive information contained in the script will be visible
+to other users via the process list using tools such as ps(1).
+
+## 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/distro/common/markdown/man1/knife-client.mkd b/distro/common/markdown/man1/knife-client.mkd
new file mode 100644
index 0000000000..e7b732ef71
--- /dev/null
+++ b/distro/common/markdown/man1/knife-client.mkd
@@ -0,0 +1,103 @@
+knife-client(1) -- Manage Chef API Clients
+========================================
+
+## SYNOPSIS
+
+__knife__ __client__ _sub-command_ _(options)_
+
+## SUB-COMMANDS
+Client subcommands follow a basic create, read, update, delete (CRUD)
+pattern. The Following subcommands are available:
+
+## 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.
+
+## 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.
+
+## 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/distro/common/markdown/man1/knife-configure.mkd b/distro/common/markdown/man1/knife-configure.mkd
new file mode 100644
index 0000000000..cc7dd1d96e
--- /dev/null
+++ b/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/distro/common/markdown/man1/knife-cookbook-site.mkd b/distro/common/markdown/man1/knife-cookbook-site.mkd
new file mode 100644
index 0000000000..7c2b0fe31b
--- /dev/null
+++ b/distro/common/markdown/man1/knife-cookbook-site.mkd
@@ -0,0 +1,123 @@
+knife-cookbook-site(1) -- Install and update open source cookbooks
+========================================
+
+## SYNOPSIS
+
+__knife__ __cookbook site__ _sub-command_ _(options)_
+
+## COOKBOOK SITE SUB-COMMANDS
+`knife cookbook site` provides the following subcommands:
+
+## INSTALL
+__cookbook site install COOKBOOK [VERSION]__ _(options)_
+
+ * `-D`, `--skip-dependencies `:
+ Skip automatic installation of dependencies.
+ * `-o`, `--cookbook-path PATH`:
+ Install cookbooks to PATH
+ * `-B`, `--branch BRANCH`:
+ Default branch to work with [defaults to master]
+
+Uses git(1) version control in conjunction with the cookbook site to
+install community contributed cookbooks to your local cookbook
+repository. Running `knife cookbook site install` does the following:
+
+1. A new "pristine copy" branch is created in git for tracking the
+ upstream;
+2. All existing cookbooks are removed from the branch;
+3. The cookbook is downloaded from the cookbook site in tarball form;
+4. The downloaded cookbook is untarred, and its contents commited via git;
+5. The pristine copy branch is merged into the master branch.
+
+By installing cookbook with this process, you can locally modify the
+upstream cookbook in your master branch and let git maintain your
+changes as a separate patch. When an updated upstream version becomes
+available, you will be able to merge the upstream changes while
+maintaining your local modifications.
+
+Unless _--skip-dependencies_ is specified, the process is applied recursively to all the
+cookbooks _COOKBOOK_ depends on (via metadata _dependencies_).
+
+## DOWNLOAD
+__knife cookbook site download COOKBOOK [VERSION]__ _(options)_
+
+ * `-f`, `--file FILE`:
+ The filename to write to
+ * `--force`:
+ Force download deprecated cookbook
+
+Downloads a specific cookbook from the Community site, optionally
+specifying a certain version.
+
+## LIST
+__knife cookbook site list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+Lists available cookbooks from the Community site.
+
+## SEARCH
+__knife cookbook site search QUERY__ _(options)_
+
+Searches for available cookbooks matching the specified query.
+
+## SHARE
+__knife 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. By default, knife will use the username and API key
+you've configured in your configuration file; otherwise you must
+explicitly set these values on the command line or use an alternate
+configuration file.
+
+## UNSHARE
+__knife cookbook site unshare COOKBOOK__
+
+Stops sharing the specified cookbook on the Opscode cookbooks site.
+
+## SHOW
+__knife cookbook site show COOKBOOK [VERSION]__ _(options)_
+
+Shows information from the site about a particular cookbook.
+
+## DESCRIPTION
+The cookbook site, <http://community.opscode.com/>, is a cookbook
+distribution service operated by Opscode. This service provides users
+with a central location to publish cookbooks for sharing with other
+community members.
+
+`knife cookbook site` commands provide an interface to the cookbook
+site's HTTP API. For commands that read data from the API, no account is
+required. In order to upload cookbooks using the `knife cookbook site
+share` command, you must create an account on the cookbook site and
+configure your credentials via command line option or in your knife
+configuration file.
+
+## EXAMPLES
+Uploading cookbooks to the Opscode cookbooks site:
+
+ knife cookbook site share example Other -k ~/.chef/USERNAME.pem -u USERNAME
+
+## SEE ALSO
+ __knife-cookbook(1)__
+ <http://community.opscode.com/cookbooks>
+
+## 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/distro/common/markdown/man1/knife-cookbook.mkd b/distro/common/markdown/man1/knife-cookbook.mkd
new file mode 100644
index 0000000000..4f714c52f6
--- /dev/null
+++ b/distro/common/markdown/man1/knife-cookbook.mkd
@@ -0,0 +1,263 @@
+knife-cookbook(1) -- upload and manage chef cookbooks
+========================================
+
+## SYNOPSIS
+
+__knife__ __cookbook__ _sub-command_ _(options)_
+
+## SUB-COMMANDS
+`knife cookbook` supports the following sub commands:
+
+## LIST
+__knife cookbook list__ _(options)_
+
+ * `-a`, `--all`:
+ show all versions of a cookbook instead of just the most recent
+ * `-w`, `--with-uri`:
+ show corresponding uris
+
+Lists the cookbooks available on the Chef server.
+
+## SHOW
+__knife 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
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+show a particular part of a _cookbook_ for the specified _version_. _part_ can be one of:
+
+ * _attributes_
+ * _definitions_
+ * _files_
+ * _libraries_
+ * _providers_
+ * _recipes_
+ * _resources_
+ * _templates_
+
+## UPLOAD
+__knife 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
+ * `-d`, `--upload-dependencies`:
+ Uploads additional cookbooks that this cookbook lists in as
+ dependencies in its metadata.
+ * `-E`, `--environment ENVIRONMENT`:
+ An _ENVIRONMENT_ to apply the uploaded cookbooks to. Specifying this
+ option will cause knife to edit the _ENVIRONMENT_ to place a strict
+ version constraint on the cookbook version(s) uploaded.
+ * `--freeze`:
+ Sets the frozen flag on the uploaded cookbook(s) Any future attempt
+ to modify the cookbook without changing the version number will
+ return an error unless --force is specified.
+ * `--force`:
+ Overrides the frozen flag on a cookbook, allowing you to overwrite a
+ cookbook version that has previously been uploaded with the --freeze
+ option.
+
+Uploads one or more cookbooks from your local cookbook repository(ies)
+to the Chef Server. Only files that don't yet exist on the server will
+be uploaded.
+
+As the command parses the name args as 1..n cookbook names:
+ `knife cookbook upload COOKBOOK COOKBOOK ...`
+works for one to many cookbooks.
+
+## DOWNLOAD
+__knife 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.
+
+## DELETE
+__knife 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.
+
+## BULK DELETE
+__knife 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
+__knife 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 md, mkd, txt, rdoc
+ * `-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.md
+* cookbook/recipes/default.rb
+* cookbook/resources
+* cookbook/templates/default
+
+supported readme formats are 'md' (default), 'mkd', 'txt', 'rdoc'. 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, email and readme_format 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"
+ readme_format "md"
+
+
+## METADATA
+__knife 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.
+
+## METADATA FROM FILE
+__knife cookbook metadata from file__ _(options)_
+
+load the cookbook metadata from a specified file.
+
+## TEST
+__knife 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).
+
+## RECIPE LIST
+__knife recipe list [PATTERN]__
+
+List available recipes from the server. Specify _PATTERN_ as a regular
+expression to limit the results.
+
+## DESCRIPTION
+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.
+
+On disk, cookbooks are directories with a defined structure. The
+following directories may appear within a cookbook:
+
+ * COOKBOOK/attributes/:
+ Ruby files that define default parameters to be used in recipes
+ * COOKBOOK/definitions/:
+ Ruby files that contain _resource definitions_
+ * COOKBOOK/files/SPECIFICITY:
+ Files of arbitrary type. These files may be downloaded by
+ chef-client(8) when configuring a host.
+ * COOKBOOK/libraries/:
+ Ruby files that contain library code needed for recipes
+ * COOKBOOK/providers/:
+ Ruby files that contain Lightweight Provider definitions
+ * COOKBOOK/recipes/:
+ Ruby files that use Chef's recipe DSL to describe the desired
+ configuration of a system
+ * COOKBOOK/resources/:
+ Ruby files that contain Lightweight Resource definitions
+ * COOKBOOK/templates/SPECIFICITY:
+ ERuby (ERb) template files. These are referenced by _recipes_ and
+ evaluated to dynamically generate configuration files.
+
+__SPECIFICITY__ is a feature of _files_ and _templates_ that allow you
+to specify alternate files to be used on a specific OS platform or host.
+The default specificity setting is _default_, that is files in
+`COOKBOOK/files/default` will be used when a more specific copy is not
+available. Further documentation for this feature is available on the
+Chef wiki: <http://wiki.opscode.com/display/chef/File+Distribution#FileDistribution-FileSpecificity>
+
+Cookbooks also contain a metadata file that defines various properties
+of the cookbook. The most important of these are the _version_ and the
+_dependencies_. The _version_ is used in combination with environments
+to select which copy of a given cookbook is distributed to a node. The
+_dependencies_ are used by the server to determine which additional
+cookbooks must be distributed to a given host when it requires a
+cookbook.
+
+## SEE ALSO
+ __knife-environment(1)__ __knife-cookbook-site(1)__
+ <http://wiki.opscode.com/display/chef/Cookbooks>
+ <http://wiki.opscode.com/display/chef/Metadata>
+
+## 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/distro/common/markdown/man1/knife-data-bag.mkd b/distro/common/markdown/man1/knife-data-bag.mkd
new file mode 100644
index 0000000000..67ec02158c
--- /dev/null
+++ b/distro/common/markdown/man1/knife-data-bag.mkd
@@ -0,0 +1,121 @@
+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)_
+
+__knife data bag from file__ _bag name_ _file1_ _file2_ _file3_ _(options)_
+
+__knife data bag from file__ _bag name_ _folder_ _(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/distro/common/markdown/man1/knife-environment.mkd b/distro/common/markdown/man1/knife-environment.mkd
new file mode 100644
index 0000000000..2eebffbce6
--- /dev/null
+++ b/distro/common/markdown/man1/knife-environment.mkd
@@ -0,0 +1,151 @@
+knife-environment(1) -- Define cookbook policies for the environments in your infrastructure
+========================================
+
+## SYNOPSIS
+
+__knife__ __environment__ _sub-command_ _(options)_
+
+## SUBCOMMANDS
+Environment subcommands follow a basic create, read, update, delete
+(CRUD) pattern. The following subcommands are available:
+
+## CREATE
+__knife environment create__ _environment_ _(options)_
+
+ * `-d`, `--description DESCRIPTION`:
+ The value of the description field.
+
+Create a new environment object on the Chef Server. The envrionment will
+be opened in the text editor for editing prior to creation if the -n
+option is not present.
+
+## DELETE
+__knife environment delete__ _environment_ _(options)_
+
+Destroy an environment on the Chef Server. A prompt for confirmation
+will be displayed if the -y options is not given.
+
+## EDIT
+__knife environment edit__ _environment_ _(options)_
+
+Fetch _environment_ and display it in the text editor for editing. The
+environment will be saved to the Chef Server when the editing session
+exits.
+
+## FROM FILE
+__knife environment from file__ _file_ _(options)_
+
+Create or update an environment from the JSON or Ruby format _file_. See
+__format__ for the proper format of this file.
+
+## LIST
+__knife environment list__ _(options)_
+ * `-w`, `--with-uri`:
+ Show the resource URI for each environment
+
+## SHOW
+__knife environment show__ _environment_ _(options)_
+
+## DESCRIPTION
+Environments provide a means to apply policies to hosts in your
+infrastructure based on business function. For example, you may have a
+separate copy of your infrastructure called "dev" that runs the latest
+version of your application and should use the newest versions of your
+cookbooks when configuring systems, and a production instance of your
+infrastructure where you wish to update code and cookbooks in a more
+controlled fashion. In Chef, this function is implemented with
+_environments_.
+
+Environments contain two major components: a set of cookbook version
+constraints and environment attributes.
+
+## SYNTAX
+A cookbook version constraint is comprised of a _cookbook name_ and a
+_version constraint_. The _cookbook name_ is the name of a cookbook in
+your system, and the _version constraint_ is a String describing the
+version(s) of that cookbook allowed in the environment. Only one
+_version constraint_ is supported for a given _cookbook name_.
+
+The exact syntax used to define a cookbook version constraint varies
+depending on whether you use the JSON format or the Ruby format. In the
+JSON format, the cookbook version constraints for an environment are
+represented as a single JSON object, like this:
+
+ {"apache2": ">= 1.5.0"}
+
+In the Ruby format, the cookbook version contraints for an environment
+are represented as a Ruby Hash, like this:
+
+ {"apache2" => ">= 1.5.0"}
+
+A _version number_ is a String comprised of two or three digits
+separated by a dot (.) character, or in other words, strings of the form
+"major.minor" or "major.minor.patch". "1.2" and "1.2.3" are examples of
+valid version numbers. Version numbers containing more than three digits
+or alphabetic characters are not supported.
+
+A _version constraint_ String is composed of an _operator_ and a
+_version number_. The following operators are available:
+
+ * `= VERSION`:
+ Equality. Only the exact version specified may be used.
+ * `> VERSION`:
+ Greater than. Only versions greater than `VERSION` may be used.
+ * `>= VERSION`:
+ Greater than or equal to. Only versions equal to VERSION or greater
+ may be used.
+ * `< VERSION`:
+ Less than. Only versions less than VERSION may be used.
+ * `<= VERSION`:
+ Less than or equal to. Only versions lesser or equal to VERSION may
+ be used.
+ * `~> VERSION`:
+ Pessimistic greater than. Depending on the number of components in
+ the given VERSION, the constraint will be optimistic about future
+ minor or patch revisions only. For example, `~> 1.1` will match any
+ version less than `2.0` and greater than or equal to `1.1.0`,
+ whereas `~> 2.0.5` will match any version less than `2.1.0` and
+ greater than or equal to `2.0.5`.
+
+## FORMAT
+The JSON format of an envioronment is as follows:
+
+ {
+ "name": "dev",
+ "description": "The development environment",
+ "cookbook_versions": {
+ "couchdb": "= 11.0.0"
+ },
+ "json_class": "Chef::Environment",
+ "chef_type": "environment",
+ "default_attributes": {
+ "apache2": { "listen_ports": [ "80", "443" ] }
+ },
+ "override_attributes": {
+ "aws_s3_bucket": "production"
+ }
+ }
+
+The Ruby format of an environment is as follows:
+
+ name "dev"
+ description "The development environment"
+ cookbook_versions "couchdb" => "= 11.0.0"
+ default_attributes "apache2" => { "listen_ports" => [ "80", "443" ] }
+ override_attributes "aws_s3_bucket" => "production"
+
+
+## SEE ALSO
+ __knife-node(1)__ __knife-cookbook(1)__ __knife-role(1)__
+ <http://wiki.opscode.com/display/chef/Environments>
+ <http://wiki.opscode.com/display/chef/Version+Constraints>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Daniel DeLeo <dan@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/distro/common/markdown/man1/knife-exec.mkd b/distro/common/markdown/man1/knife-exec.mkd
new file mode 100644
index 0000000000..d4aa87ca46
--- /dev/null
+++ b/distro/common/markdown/man1/knife-exec.mkd
@@ -0,0 +1,42 @@
+knife-exec(1) -- Run user scripts using the Chef API DSL
+========================================
+
+## SYNOPSIS
+
+__knife__ __exec__ _(options)_
+
+ * `-E`, `--exec CODE`:
+ Provide a snippet of code to evaluate on the command line
+
+## DESCRIPTION
+
+`knife exec` runs arbitrary ruby scripts in a context similar to that
+of the chef-shell(1) DSL. See the chef-shell documentation for a
+description of the commands available.
+
+## EXAMPLES
+
+ * Make an API call against an arbitrary endpoint:
+ knife exec -E 'api.get("nodes/fluke.localdomain/cookbooks")'
+ => list of cookbooks for the node _fluke.localdomain_
+ * Remove the role _obsolete_ from all nodes:
+ knife exec -E 'nodes.transform(:all){|n| n.run\_list.delete("role[obsolete]")}'
+ * Generate the expanded run list for hosts in the `webserver` role:
+ knife exec -E 'nodes.find(:roles => "webserver") {|n| n.expand!; n[:recipes]}'
+
+## SEE ALSO
+
+ __chef-shell(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/distro/common/markdown/man1/knife-index.mkd b/distro/common/markdown/man1/knife-index.mkd
new file mode 100644
index 0000000000..812f3fe7dd
--- /dev/null
+++ b/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/distro/common/markdown/man1/knife-node.mkd b/distro/common/markdown/man1/knife-node.mkd
new file mode 100644
index 0000000000..72b7d0072f
--- /dev/null
+++ b/distro/common/markdown/man1/knife-node.mkd
@@ -0,0 +1,130 @@
+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
+The following `node` subcommands are available:
+
+## 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 --disable-editing 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.
+
+## 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/distro/common/markdown/man1/knife-role.mkd b/distro/common/markdown/man1/knife-role.mkd
new file mode 100644
index 0000000000..7e0dac9bc5
--- /dev/null
+++ b/distro/common/markdown/man1/knife-role.mkd
@@ -0,0 +1,85 @@
+knife-role(1) -- Group common configuration settings
+========================================
+
+## SYNOPSIS
+
+__knife__ __role__ _sub-command_ _(options)_
+
+## ROLE SUB-COMMANDS
+The following `role` subcommands are available:
+
+## LIST
+__knife role list__ _(options)_
+
+ * `-w`, `--with-uri`:
+ Show corresponding URIs
+
+List roles.
+
+## SHOW
+__knife role show ROLE__ _(options)_
+
+ * `-a`, `--attribute ATTR`:
+ Show only one attribute
+
+Show a specific role.
+
+## CREATE
+__knife role create ROLE__ _(options)_
+
+ * `-d`, `--description`:
+ The role description
+
+Create a new role.
+
+## EDIT
+__knife role edit ROLE__ _(options)_
+
+Edit a role.
+
+## FROM FILE
+__knife role from file FILE__ _(options)_
+
+Create or update a role from a role Ruby DSL (`.rb`) or JSON file.
+
+## DELETE
+__knife role delete ROLE__ _(options)_
+
+Delete a role.
+
+## BULK DELETE
+__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.
+
+## 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.
+
+## SEE ALSO
+ __knife-node(1)__ __knife-environment(1)__
+ <http://wiki.opscode.com/display/chef/Roles>
+ <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/distro/common/markdown/man1/knife-search.mkd b/distro/common/markdown/man1/knife-search.mkd
new file mode 100644
index 0000000000..d6729be322
--- /dev/null
+++ b/distro/common/markdown/man1/knife-search.mkd
@@ -0,0 +1,180 @@
+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
+ * `-q`, `--query QUERY`:
+ The search query; useful to protect queries starting with -
+ * `-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 is a feature of the Chef Server that allows you to use a
+full-text search engine to query information about your infrastructure
+and applications. You can utilize this service via search calls in a
+recipe or the knife search command. The search syntax is based on
+Lucene.
+
+
+## INDEXES
+
+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_
+ * _clients_
+ * _data bag_
+
+Data bags are indexed by the data bag's name. For example, to search a
+data bag named "admins":
+
+ knife search admins "field:search_pattern"
+
+## QUERY SYNTAX
+
+Queries have the form `field:search_pattern` where `field` is a key in
+the JSON description of the relevant objects (nodes, roles,
+environments, or data bags). Both `field` and `search_pattern` are
+case-sensitive. `search_pattern` can be an exact, wildcard,
+range, or fuzzy match (see below). The `field` supports exact
+matching and limited wildcard matching.
+
+Searches will return the relevant objects (nodes, roles, environments,
+or data bags) where the `search_pattern` matches the object's value of
+`field`.
+
+### FIELD NAMES
+
+Field names are the keys within the JSON description of the object
+being searched. Nested Keys can be searched by placing an underscore
+("_") between key names.
+
+### WILDCARD MATCHING FOR FIELD NAMES
+
+The field name also has limited support for wildcard matching. Both
+the "*" and "?" wildcards (see below) can be used within a field name;
+however, they cannot be the first character of the field name.
+
+### EXACT MATCHES
+Without any search modifiers, a search returns those fields for which
+the `search_pattern` exactly matches the value of `field` in the JSON
+description of the object.
+
+### WILDCARD MATCHES
+
+Search support both single- and multi-character wildcard searches
+within a search pattern.
+
+'?' matches exactly one character.
+
+'*' matches zero or more characters.
+
+### RANGE MATCHES
+Range searches allows one to match values between two given values. To
+match values between X and Y, inclusively, use square brackets:
+
+ knife search INDEX 'field:[X TO Y]
+
+To match values between X and Y, exclusively, use curly brackets:
+
+ knife search INDEX 'field:{X TO Y}'
+
+Values are sorted in lexicographic order.
+
+### FUZZY MATCHES
+
+Fuzzy searches allows one to match values based on the Levenshtein
+Distance algorithm. To perform a fuzzy match, append a tilda (~) to
+the search term:
+
+ knife search INDEX 'field:term~'
+
+This search would return nodes whose `field` was 'perm' or 'germ'.
+
+### BOOLEAN OPERATORS
+
+The boolean operators NOT, AND, and OR are supported. To find values
+of `field` that are not X:
+
+ knife search INDEX 'field:(NOT X)'
+
+To find records where `field1` is X and `field2` is Y:
+
+ knife search INDEX 'field1:X AND field2:Y'
+
+To find records where `field` is X or Y:
+
+ knife search INDEX 'field:X OR field:Y'
+
+### QUOTING AND SPECIAL CHARACTERS
+
+In order to avoid having special characters and escape sequences
+within your search term interpreted by either Ruby or the shell,
+enclose them in single quotes.
+
+Search terms that include spaces should be enclosed in double-quotes:
+
+ knife search INDEX 'field:"term with spaces"'
+
+The following characters must be escaped:
+
+ + - && || ! ( ) { } [ ] ^ " ~ * ? : \
+
+## EXAMPLES
+
+Find the nodes with the fully-qualified domain name (FQDN)
+www.example.com:
+
+ knife search node 'fqdn:www.example.com'
+
+Find the nodes running a version of Ubuntu:
+
+ knife search node 'platform:ubuntu*'
+
+Find all nodes running CentOS in the production environment:
+
+ knife search node 'chef_environment:production AND platform:centos'
+
+## KNOWN BUGS
+
+ * Searches against the client index return no results in most cases. (CHEF-2477)
+ * Searches using the fuzzy match operator (~) produce an error. (CHEF-2478)
+
+## SEE ALSO
+ __knife-ssh__(1)
+ <http://wiki.opscode.com/display/chef/Attributes>
+ [Lucene Query Parser Syntax](http://lucene.apache.org/java/2_3_2/queryparsersyntax.html)
+
+## 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/distro/common/markdown/man1/knife-ssh.mkd b/distro/common/markdown/man1/knife-ssh.mkd
new file mode 100644
index 0000000000..07fc5940ce
--- /dev/null
+++ b/distro/common/markdown/man1/knife-ssh.mkd
@@ -0,0 +1,69 @@
+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
+ * `-i`, `--identity-file IDENTITY_FILE`:
+ The SSH identity file used for authentication
+ * `-p`, `--ssh-port PORT`:
+ The ssh port
+ * `--[no-]host-key-verify`:
+ Verify host key, enabled by default.
+
+## 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)
+
+## 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/distro/common/markdown/man1/knife-status.mkd b/distro/common/markdown/man1/knife-status.mkd
new file mode 100644
index 0000000000..07f0ff305a
--- /dev/null
+++ b/distro/common/markdown/man1/knife-status.mkd
@@ -0,0 +1,36 @@
+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)
+
+## 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/distro/common/markdown/man1/knife-tag.mkd b/distro/common/markdown/man1/knife-tag.mkd
new file mode 100644
index 0000000000..6a1a2c4b56
--- /dev/null
+++ b/distro/common/markdown/man1/knife-tag.mkd
@@ -0,0 +1,39 @@
+knife-tag(1) -- Apply tags to nodes on a Chef Server
+========================================
+
+## SYNOPSIS
+
+__knife__ __tag__ _subcommand_ _(options)_
+
+## TAG SUBCOMMANDS
+The following `tag` subcommands are available:
+
+## CREATE
+__knife tag create__ _node_ _tag_ [_..._]
+
+Adds one or more tags to _node_
+
+## DELETE
+__knife tag delete__ _node_ _tag_ [_..._]
+
+Removes one or more tags from _node_
+
+## LIST
+__knife tag list__ _node_
+
+Lists the tags applied to _node_
+
+
+## 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 Daniel DeLeo <dan@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/distro/common/markdown/man1/knife.mkd b/distro/common/markdown/man1/knife.mkd
new file mode 100644
index 0000000000..054e220cf9
--- /dev/null
+++ b/distro/common/markdown/man1/knife.mkd
@@ -0,0 +1,218 @@
+knife(1) -- Chef Server API client utility
+========================================
+
+## SYNOPSIS
+
+__knife__ _sub-command_ [_argument_...] _(options)_
+
+## DESCRIPTION
+
+Knife is a command-line utility used to manage data on a Chef server
+through the HTTP(S) API. Knife is organized into groups of subcommands
+centered around the various object types in Chef. Each category of
+subcommand is documented in its own manual page. Available topics are:
+
+ * bootstrap
+ * client
+ * configure
+ * cookbook-site
+ * cookbook
+ * data-bag
+ * environment
+ * exec
+ * index
+ * node
+ * recipe
+ * role
+ * search
+ * ssh
+ * status
+ * tag
+
+If the knife manuals are in your `MANPATH`, you can access help for the
+above topics using `man knife-TOPIC`; otherwise, you can view the
+documentation using `knife help TOPIC`.
+
+## 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`, `--environment ENVIRONMENT`:
+ Set the Chef environment
+ * `-e`, `--editor` EDITOR:
+ Set the editor to use for interactive commands
+ * `-F`, `--format` FORMAT:
+ Which format to use for output. See FORMATS for details.
+ * `-d`, `--disable-editing`:
+ 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
+ * `-V`, `--verbose`:
+ More verbose output. Use twice for max verbosity.
+ * `-y`, `--yes`:
+ Say yes to all prompts for confirmation
+ * `--defaults`:
+ Accept default values for all questions
+ * `--[no-]color`:
+ Use colored output. Color enabled by default.
+ * `-h`, `--help`:
+ Show the available options for a command.
+
+## SUB-COMMANDS
+
+Sub-commands that operate on the basic Chef data types are structured as
+_NOUN verb NOUN (options)_. For all data types, the following commands
+are available:
+
+* create (create)
+* list and show (read)
+* edit (update)
+* delete (destroy)
+
+Knife also includes commands that take actions other than displaying or
+modifying data on the Chef Server, such as __knife-ssh(1)__.
+
+## 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.
+
+ * `node_name`:
+ User or client identity (i.e., _name_) to use for authenticating
+ requests to the Chef Server.
+ * `client_key`:
+ Private key file to authenticate to the Chef server. Corresponds to the
+ `-k` or `--key` option.
+ * `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. These options are
+ dependent on the `cache_type`.
+ * `validation_client_name`:
+ Specifies the name of the client used to validate new clients.
+ * `validation_key`:
+ Specifies the private key file to use when bootstrapping new hosts.
+ See knife-client(1) for more information about the validation
+ client.
+ * `cookbook_copyright`, `cookbook_email`, `cookbook_license`, `readme_format`
+ Used by `knife cookbook create` sub-command to specify the copyright
+ holder, maintainer email, license and readme format (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. Currently supported
+ readme formats are "md", "mkd", "txt", and "rdoc". Any other value will
+ result in an unformatted README.
+
+## FILES
+
+_~/.chef/knife.rb_
+
+Ruby DSL configuration file for knife. See __CONFIGURATION__.
+
+## FORMATS
+
+The amount of content displayed and the output format are
+modified by the `--format` option. If no alternate format is selected,
+the default is summary.
+
+Valid formats are:
+
+ * `summary`:
+ displays the node in a custom, summarized format (default)
+ * `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.
+
+## 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
+
+
+## ENVIRONMENT
+ * `EDITOR`:
+ The text editor to use for editing data. The --editor option takes
+ precedence over this value, and the --disable-editing option supresses
+ data editing entirely.
+
+## SEE ALSO
+ __chef-client(8)__ __chef-server(8)__ __chef-shell(1)__
+
+ __knife-bootstrap(1)__ __knife-client(1)__ __knife-configure(1)__
+ __knife-cookbook-site(1)__ __knife-cookbook(1)__ __knife-data-bag(1)__
+ __knife-environment(1)__ __knife-exec(1)__ __knife-index(1)__
+ __knife-node(1)__ __knife-recipe(1)__ __knife-role(1)__
+ __knife-search(1)__ __knife-ssh(1)__ __knife-tag(1)__
+
+ Complete Chef documentation is available online: <http://wiki.opscode.com/display/chef/Home/>
+
+ JSON is JavaScript Object Notation <http://json.org/>
+
+ SOLR is an open source search engine. <http://lucene.apache.org/solr/>
+
+ __git(1)__ is a version control system <http://git-scm.com/>
+
+ This manual page was generated from Markdown with __ronn(1)__ <http://rtomayko.github.com/ronn/ronn.1.html>
+
+## AUTHOR
+ Chef was written by Adam Jacob <adam@opscode.com> of Opscode
+ (<http://www.opscode.com>), with contributions from the community.
+
+## DOCUMENTATION
+ This manual page was written by Joshua Timberman <joshua@opscode.com>.
+
+## LICENSE
+ Both Chef and this documentation are released under the terms of the
+ Apache 2.0 License. You may view the license online: <http://www.apache.org/licenses/LICENSE-2.0.html>
+ On some systems, the complete text of the Apache 2.0 License may be found in `/usr/share/common-licenses/Apache-2.0`.
+
+## CHEF
+ Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>
+
diff --git a/distro/common/markdown/man8/chef-client.mkd b/distro/common/markdown/man8/chef-client.mkd
new file mode 100644
index 0000000000..e37d283133
--- /dev/null
+++ b/distro/common/markdown/man8/chef-client.mkd
@@ -0,0 +1,74 @@
+chef-client(8) -- Runs a client node connecting to a chef-server.
+========================================
+
+## SYNOPSIS
+
+__chef-client__ _(options)_
+
+ * `-S`, `--server CHEFSERVERURL`:
+ The chef server URL
+ * `-c`, `--config CONFIG`:
+ The configuration file to use
+ * `-d`, `--daemonize`:
+ Daemonize the process
+ * `-g`, `--group GROUP`:
+ Group to set privilege to
+ * `-i`, `--interval SECONDS`:
+ Run chef-client periodically, in seconds
+ * `-j`, `--json-attributes JSON_ATTRIBS`:
+ Load attributes from a JSON file or URL
+ * `-E`, `--environment ENVIRONMENT`:
+ Set the Chef Environment on the node
+ * `-l`, `--log_level LEVEL`:
+ Set the log level (debug, info, warn, error, fatal)
+ * `-L`, `--logfile LOGLOCATION`:
+ Set the log file location, defaults to STDOUT - recommended for
+ daemonizing
+ * `-N`, `--node-name NODE_NAME`:
+ The node name for this client
+ * `-o`, `--override-runlist`:
+ Replace current run list with specified items
+ * `-K`, `--validation_key KEY_FILE`:
+ Set the validation key file location, used for registering new clients
+ * `-k`, `--client_key KEY_FILE`:
+ Set the client key file location
+ * `-s`, `--splay SECONDS`:
+ The splay time for running at intervals, in seconds
+ * `-u`, `--user USER`:
+ User to set privilege to
+ * `-P`, `--pid PIDFILE`:
+ Set the PID file location, defaults to /tmp/chef-client.pid
+ * `--once`:
+ Cancel any interval or splay options, run chef once and exit
+ * `-v`, `--version`:
+ Show chef version
+ * `-h`, `--help`:
+ Show this message
+
+## DESCRIPTION
+
+The Chef Client is where almost all of the work in Chef is done. It
+communicates with the Chef Server via REST, authenticates via Signed
+Header Authentication, and compiles and executes Cookbooks.
+
+A Chef Client does work on behalf of a Node. A single Chef Client can
+run recipes for multiple Nodes.
+
+Clients are where all the action happens - the Chef Server and Chef Expander
+are largely services that exist only to provide the Client with information.
+
+## SEE ALSO
+
+Full documentation for Chef and chef-client is located on the Chef
+wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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/distro/common/markdown/man8/chef-expander.mkd b/distro/common/markdown/man8/chef-expander.mkd
new file mode 100644
index 0000000000..d72ee1df9f
--- /dev/null
+++ b/distro/common/markdown/man8/chef-expander.mkd
@@ -0,0 +1,82 @@
+chef-expander(8) -- fetches messages from RabbitMQ, processes, and loads into chef-solr
+========================================
+
+## SYNOPSIS
+
+__chef-expander__ _(options)_
+
+ * `-c`, `--config CONFIG_FILE`:
+ a configuration file to use
+ * `-i`, `--index INDEX`:
+ the slot this node will occupy in the ring
+ * `-n`, `--node-count NUMBER`:
+ the number of nodes in the ring
+ * `-l`, `--log-level LOG_LEVEL`:
+ set the log level
+ * `-L`, `--logfile LOG_LOCATION`:
+ Logfile to use
+ * `-d`, `--daemonize`:
+ fork into the background
+ * `-P`, `--pid PIDFILE`:
+ PID file
+ * `-h`, `--help`:
+ show help message
+ * `-v`, `--version`:
+ show the version and exit
+
+## DESCRIPTION
+
+Chef Expander fetches messages from RabbitMQ, processes them into the
+correct format to be loaded into Solr and loads them into Solr.
+
+__Running Chef Expander__
+
+Chef Expander is designed for clustered operation, though small
+installations will only need one worker process. To run Chef
+Expander with one worker process, run chef-expander -n 1.
+You will then have a master and worker process, which looks like
+this in ps:
+
+ your-shell> ps aux|grep expander
+ you 52110 0.1 0.7 2515476 62748 s003 S+ 3:49PM 0:00.80 chef-expander worker #1 (vnodes 0-1023)
+ you 52108 0.1 0.5 2492880 41696 s003 S+ 3:49PM 0:00.91 ruby bin/chef-expander -n 1
+
+Workers are single threaded and therefore cannot use more than 100%
+of a single CPU. If you find that your queues are getting backlogged,
+increase the number of workers
+
+__Design__
+
+Chef Expander uses 1024 queues (called vnodes in some places) to allow
+you to scale the number of Chef Expander workers to meet the needs of
+your infrastructure. When objects are saved in the API server, they are
+added to queues based on their database IDs. These queues can be assigned
+to different Chef Expander workers to distribute the load of processing
+the index updates.
+
+__Chef Expander Operation and Troubleshooting__
+
+Chef Expander includes chef-expanderctl, a management program that allows
+you to get status information or change the logging verbosity (without
+restarting).
+
+See __chef-expanderctl__(8) for details.
+
+## SEE ALSO
+
+__chef-expanderctl__(8)
+__chef-solr__(8)
+
+Full documentation for Chef and chef-server is located on the Chef
+wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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 created by Nuo Yan <nuo@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. \ No newline at end of file
diff --git a/distro/common/markdown/man8/chef-expanderctl.mkd b/distro/common/markdown/man8/chef-expanderctl.mkd
new file mode 100644
index 0000000000..00b34e7734
--- /dev/null
+++ b/distro/common/markdown/man8/chef-expanderctl.mkd
@@ -0,0 +1,58 @@
+chef-expanderctl(8) -- management program for chef-expander
+========================================
+
+## SYNOPSIS
+
+__chef-expanderctl__ _COMMAND_
+
+__Commands:__
+
+ * `help`:
+ Show help message
+ * `queue-depth`:
+ display the aggregate queue backlog
+ * `queue-status`:
+ show the backlog and consumer count for each vnode queue
+ * `node-status`:
+ show the status of the nodes in the cluster
+ * `log-level`:
+ sets the log level of all nodes in the cluster
+
+## DESCRIPTION
+
+Chef-expanderctl is a management program that allows
+you to get status information or change the logging
+verbosity (without restarting). chef-expanderctl has
+the following commands:
+
+* __chef-expanderctl help__
+prints usage.
+* __chef-expanderctl queue-depth__
+Shows the total number of messages in the queues.
+* __chef-expanderctl queue-status__
+Show the number of messages in each queue. This is mainly of use when
+debugging a Chef Expander cluster.
+* __chef-expanderctl log-level LEVEL__
+Sets the log level on a running Chef Expander or cluster.
+If you suspect that a worker process is stuck, as long as you are using
+clustered operation, you can simply kill the worker process and it will
+be restarted by the master process.
+
+## SEE ALSO
+
+__chef-expander-cluster__(8)
+__chef-solr__(8)
+
+Full documentation for Chef and chef-server is located on the Chef
+wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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 created by Nuo Yan <nuo@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. \ No newline at end of file
diff --git a/distro/common/markdown/man8/chef-server-webui.mkd b/distro/common/markdown/man8/chef-server-webui.mkd
new file mode 100644
index 0000000000..977e1495e2
--- /dev/null
+++ b/distro/common/markdown/man8/chef-server-webui.mkd
@@ -0,0 +1,121 @@
+chef-server-webui(8) -- Start the Chef Server merb application slice providing Web User Interface (Management Console).
+========================================
+
+## SYNOPSIS
+
+__chef-server-webui__ _(options)_
+
+ * `-u`, `--user USER`:
+ This flag is for having chef-server-webui run as a user other than the
+ one currently logged in. Note: if you set this you must also provide a
+ --group option for it to take effect.
+ * `-G`, `--group GROUP`:
+ This flag is for having chef-server-webui run as a group other than the
+ one currently logged in. Note: if you set this you must also provide a
+ --user option for it to take effect.
+ * `-d`, `--daemonize`:
+ This will run a single chef-server-webui in the background.
+ * `-N`, `--no-daemonize`:
+ This will allow you to run a cluster in console mode.
+ * `-c`, `--cluster-nodes NUM_MERBS`:
+ Number of merb daemons to run for chef-server-webui.
+ * `-I`, `--init-file FILE`:
+ File to use for initialization on load, defaults to config/init.rb.
+ * `-p`, `--port PORTNUM`:
+ Port to run chef-server-webui on, defaults to 4040. Additional nodes (-c)
+ listen on incrementing port numbers.
+ * `-o`, `--socket-file FILE`:
+ Socket file to run chef-server-webui on, defaults to
+ [Merb.root]/log/merb.sock. This is for web servers, like thin, that use
+ sockets. Specify this *only* if you *must*.
+ * `-s`, `--socket SOCKNUM`:
+ Socket number to run chef-server-webui on, defaults to 0.
+ * `-n`, `--name NAME`:
+ Set the name of the application. This is used in the process title and
+ log file names.
+ * `-P`, `--pid PIDFILE`:
+ PID file, defaults to [Merb.root]/log/merb.main.pid for the master
+ process and[Merb.root]/log/merb.[port number].pid for worker processes.
+ For clusters, use %s to specify where in the file chef-server-webui
+ should place the port number. For instance: -P myapp.%s.pid.
+ * `-h`, `--host HOSTNAME`:
+ Host to bind to (default is 0.0.0.0).
+ * `-m`, `--merb-root PATH_TO_APP_ROOT`:
+ The path to the Merb.root for the app you want to run
+ (default is current working directory).
+ * `-a`, `--adapter ADAPTER`:
+ The rack adapter to use to run chef-server-webui (default is mongrel)
+ [mongrel, emongrel, thin, ebb, fastcgi, webrick].
+ * `-R`, `--rackup FILE`:
+ Load an alternate Rack config file (default is config/rack.rb).
+ * `-i`, `--irb-console`:
+ This flag will start chef-server-webui in irb console mode. All your models
+ and other classes will be available for you in an irb session.
+ * `-S`, `--sandbox`:
+ This flag will enable a sandboxed irb console. If your ORM supports
+ transactions, all edits will be rolled back on exit.
+ * `-l`, `--log-level LEVEL`:
+ Log levels can be set to any of these options:
+ debug < info < warn < error < fatal (default is info).
+ * `-L`, `--log LOGFILE`:
+ A string representing the logfile to use. Defaults to
+ [Merb.root]/log/merb.[main].log for the master process and
+ [Merb.root]/log/merb[port number].logfor worker processes.
+ * `-e`, `--environment STRING`:
+ Environment to run Merb under [development, production, testing]
+ (default is development).
+ * `-r`, `--script-runner ['RUBY CODE'| FULL_SCRIPT_PATH]`:
+ Command-line option to run scripts and/or code in the chef-server-webui
+ app.
+ * `-K`, `-graceful PORT or all`:
+ Gracefully kill chef-server-webui proceses by port number.
+ Use chef-server -K all to gracefully kill all merbs.
+ * `-k`, `--kill PORT`:
+ Force kill one merb worker by port number. This will cause the worker
+ to be respawned.
+ * `--fast-deploy`:
+ Reload the code, but not yourinit.rb or gems.
+ * `-X`, `--mutex on/off`:
+ This flag is for turning the mutex lock on and off.
+ * `-D`, `--debugger`:
+ Run chef-server-webui using rDebug.
+ * `-V`, `--verbose`:
+ Print extra information.
+ * `-C`, `--console-trap`:
+ Enter an irb console on ^C.
+ * `-?`, `-H`, `--help`:
+ Show this help message.
+
+## DESCRIPTION
+
+The Chef Server WebUI (Management Console) is a Merb application slice.
+The default listen port is 4040.
+
+The Management Console is Chef Server's web interface. Nodes, roles,
+cookbooks, data bags, and API clients can be managed through the Management
+Console. Search can also be done on the console.
+
+In order to start using the Management Console, you need to first create
+a user or change the default password on the "admin" user.
+
+The default credentials are:
+
+- `Username`: admin
+- `Password`: p@ssw0rd1
+
+## SEE ALSO
+
+Full documentation for Chef and chef-server-webui (Management Console)
+is located on the Chef wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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 for the Debian project (but may be used by others). 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/distro/common/markdown/man8/chef-server.mkd b/distro/common/markdown/man8/chef-server.mkd
new file mode 100644
index 0000000000..1b0f35eb77
--- /dev/null
+++ b/distro/common/markdown/man8/chef-server.mkd
@@ -0,0 +1,121 @@
+chef-server(8) - Start the Chef Server merb application slice.
+========================================
+
+## SYNOPSIS
+
+__chef-server__ _(options)_
+
+ * `-u`, `--user USER`:
+ This flag is for having chef-server-webui run as a user other than the
+ one currently logged in. Note: if you set this you must also provide a
+ --group option for it to take effect.
+ * `-G`, `--group GROUP`:
+ This flag is for having chef-server-webui run as a group other than the
+ one currently logged in. Note: if you set this you must also provide a
+ --user option for it to take effect.
+ * `-d`, `--daemonize`:
+ This will run a single chef-server-webui in the background.
+ * `-N`, `--no-daemonize`:
+ This will allow you to run a cluster in console mode.
+ * `-c`, `--cluster-nodes NUM_MERBS`:
+ Number of merb daemons to run for chef-server-webui.
+ * `-I`, `--init-file FILE`:
+ File to use for initialization on load, defaults to config/init.rb.
+ * `-p`, `--port PORTNUM`:
+ Port to run chef-server-webui on, defaults to 4040. Additional nodes (-c)
+ listen on incrementing port numbers.
+ * `-o`, `--socket-file FILE`:
+ Socket file to run chef-server-webui on, defaults to
+ [Merb.root]/log/merb.sock. This is for web servers, like thin, that use
+ sockets. Specify this *only* if you *must*.
+ * `-s`, `--socket SOCKNUM`:
+ Socket number to run chef-server-webui on, defaults to 0.
+ * `-n`, `--name NAME`:
+ Set the name of the application. This is used in the process title and
+ log file names.
+ * `-P`, `--pid PIDFILE`:
+ PID file, defaults to [Merb.root]/log/merb.main.pid for the master
+ process and[Merb.root]/log/merb.[port number].pid for worker processes.
+ For clusters, use %s to specify where in the file chef-server-webui
+ should place the port number. For instance: -P myapp.%s.pid.
+ * `-h`, `--host HOSTNAME`:
+ Host to bind to (default is 0.0.0.0).
+ * `-m`, `--merb-root PATH_TO_APP_ROOT`:
+ The path to the Merb.root for the app you want to run
+ (default is current working directory).
+ * `-a`, `--adapter ADAPTER`:
+ The rack adapter to use to run chef-server-webui (default is mongrel)
+ [mongrel, emongrel, thin, ebb, fastcgi, webrick].
+ * `-R`, `--rackup FILE`:
+ Load an alternate Rack config file (default is config/rack.rb).
+ * `-i`, `--irb-console`:
+ This flag will start chef-server-webui in irb console mode. All your models
+ and other classes will be available for you in an irb session.
+ * `-S`, `--sandbox`:
+ This flag will enable a sandboxed irb console. If your ORM supports
+ transactions, all edits will be rolled back on exit.
+ * `-l`, `--log-level LEVEL`:
+ Log levels can be set to any of these options:
+ debug < info < warn < error < fatal (default is info).
+ * `-L`, `--log LOGFILE`:
+ A string representing the logfile to use. Defaults to
+ [Merb.root]/log/merb.[main].log for the master process and
+ [Merb.root]/log/merb[port number].logfor worker processes.
+ * `-e`, `--environment STRING`:
+ Environment to run Merb under [development, production, testing]
+ (default is development).
+ * `-r`, `--script-runner ['RUBY CODE'| FULL_SCRIPT_PATH]`:
+ Command-line option to run scripts and/or code in the chef-server-webui
+ app.
+ * `-K`, `-graceful PORT or all`:
+ Gracefully kill chef-server-webui proceses by port number.
+ Use chef-server -K all to gracefully kill all merbs.
+ * `-k`, `--kill PORT`:
+ Force kill one merb worker by port number. This will cause the worker
+ to be respawned.
+ * `--fast-deploy`:
+ Reload the code, but not yourinit.rb or gems.
+ * `-X`, `--mutex on/off`:
+ This flag is for turning the mutex lock on and off.
+ * `-D`, `--debugger`:
+ Run chef-server-webui using rDebug.
+ * `-V`, `--verbose`:
+ Print extra information.
+ * `-C`, `--console-trap`:
+ Enter an irb console on ^C.
+ * `-?`, `-H`, `--help`:
+ Show this help message.
+
+## DESCRIPTION
+
+The Chef Server provides a central point for the distribution of Cookbooks,
+management and authentication of Nodes, and the use of Search. It provides
+a REST API.
+
+The API service is what clients use to interact with the server to manage
+node configuration in Chef. By default, the service is started on port 4000
+as a Merb application slice running with the thin server adapter.
+
+The two methods of interaction with the API for humans are the command-line
+tool Knife and the Management Console. The Chef Client library is used for
+interacting with the API for client nodes.
+
+## SEE ALSO
+
+__chef-client__(8)
+__chef-server-webui__(8)
+__knife__(1)
+
+Full documentation for Chef and chef-server is located on the Chef
+wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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/distro/common/markdown/man8/chef-solo.mkd b/distro/common/markdown/man8/chef-solo.mkd
new file mode 100644
index 0000000000..861a0faa2d
--- /dev/null
+++ b/distro/common/markdown/man8/chef-solo.mkd
@@ -0,0 +1,107 @@
+chef-solo(8) -- Runs chef in solo mode against a specified cookbook location.
+========================================
+
+## SYNOPSIS
+
+__chef-solo__ _(options)_
+
+ * `-c`, `--config CONFIG`:
+ The configuration file to use
+ * `-d`, `--daemonize`:
+ Daemonize the process
+ * `-g`, `--group GROUP`:
+ Group to set privilege to
+ * `-i`, `--interval SECONDS`:
+ Run chef-client periodically, in seconds
+ * `-j`, `--json-attributes JSON_ATTRIBS`:
+ Load attributes from a JSON file or URL
+ * `-l`, `--log_level LEVEL`:
+ Set the log level (debug, info, warn, error, fatal)
+ * `-L`, `--logfile LOGLOCATION`:
+ Set the log file location, defaults to STDOUT - recommended for
+ daemonizing
+ * `-N`, `--node-name NODE_NAME`:
+ The node name for this client
+ * `-r`, `--recipe-url RECIPE_URL`:
+ Pull down a remote gzipped tarball of recipes and untar it to the
+ cookbook cache.
+ * `-s`, `--splay SECONDS`:
+ The splay time for running at intervals, in seconds
+ * `-u`, `--user USER`:
+ User to set privilege to
+ * `-v`, `--version`:
+ Show chef version
+ * `-h`, `--help`:
+ Show this message
+
+## DESCRIPTION
+
+Chef Solo allows you to run Chef Cookbooks in the absence of a Chef Server.
+To do this, the complete cookbook needs to be present on disk.
+
+By default Chef Solo will look in /etc/chef/solo.rb for its configuration.
+This configuration file has two required variables: file_cache_path and
+cookbook_path.
+
+For example:
+ file_cache_path "/var/chef-solo"
+ cookbook_path "/var/chef-solo/cookbooks"
+
+For your own systems, you can change this to reflect any directory you like,
+but you'll need to specify absolute paths and the cookbook_path directory
+should be a subdirectory of the file_cache_path.
+
+You can also specify cookbook_path as an array, passing multiple locations
+to search for cookbooks.
+
+For example:
+ file_cache_path "/var/chef-solo"
+ cookbook_path ["/var/chef-solo/cookbooks", "/var/chef-solo/site-cookbooks"]
+
+Note that earlier entries are now overridden by later ones.
+
+Since chef-solo doesn't have any interaction with a Chef Server, you'll need
+to specify node-specifc attributes in a JSON file. This can be located on the
+target system itself, or it can be stored on a remote server such as S3, or a
+web server on your network.
+
+Within the JSON file, you'll also specify the recipes that Chef should run in
+the "run_list". An example JSON file, which sets a resolv.conf:
+
+ {
+ "resolver": {
+ "nameservers": [ "10.0.0.1" ],
+ "search":"int.example.com"
+ },
+ "run_list": [ "recipe[resolver]" ]
+ }
+
+Then you can run chef-solo with -j to specify the JSON file. It will look for
+cookbooks in the cookbook_path configured in the configuration file, and apply
+attributes and use the run_list from the JSON file specified.
+
+You can use -c to specify the path to the configuration file (if you don't want
+chef-solo to use the default). You can also specify -r for a cookbook tarball.
+
+For example:
+ chef-solo -c ~/solo.rb -j ~/node.json -r http://www.example.com/chef-solo.tar.gz
+
+In the above case, chef-solo would extract the tarball to your specified
+cookbook_path, use ~/solo.rb as the configuration file, and apply attributes
+and use the run_list from ~/node.json.
+
+## SEE ALSO
+
+Full documentation for Chef and chef-solo is located on the Chef wiki,
+http://wiki.opscode.com/display/chef/Home.
+
+## 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/distro/common/markdown/man8/chef-solr.mkd b/distro/common/markdown/man8/chef-solr.mkd
new file mode 100644
index 0000000000..02e7d6285e
--- /dev/null
+++ b/distro/common/markdown/man8/chef-solr.mkd
@@ -0,0 +1,89 @@
+chef-solr(8) -- Runs as Chef's search server
+========================================
+
+## SYNOPSIS
+
+__chef-solr__ _(options)_
+
+ * `-c`, `--config CONFIG`:
+ The configuration file to use
+ * `-d`, `--daemonize`:
+ Daemonize the process
+ * `-g`, `--group GROUP`:
+ Group to set privilege to
+ * `-l`, `--log_level LEVEL`:
+ Set the log level (debug, info, warn, error, fatal)
+ * `-L`, `--logfile LOGLOCATION`:
+ Set the log file location, defaults to STDOUT - recommended for daemonizing
+ * `-P`, `--pid PIDFILE`:
+ Set the PID file location, defaults to /tmp/chef-solr.pid
+ * `-D`, `--solr-data-dir PATH`:
+ Where the Solr data lives
+ * `-x`, `--solor-heap-size SIZE`:
+ Set the size of the Java Heap
+ * `-H`, `--solr-home-dir PATH`:
+ Solr home directory
+ * `-j`, `--java-opts OPTS`:
+ Raw options passed to Java
+ * `-x`, `--solor-heap-size`:
+ Set the size of the Java Heap
+ * `-W`, `--solr-jetty-dir PATH`:
+ Where to place the Solr Jetty instance
+ * `-u`, `--user USER`:
+ User to set privilege to
+ * `-v`, `--version`:
+ Show chef-solr version
+ * `-h`, `--help`:
+ Show this message
+
+## DESCRIPTION
+
+Chef-solr provides search service for Chef. You need to have both
+chef-solr and chef-expander-cluster running in order for search to work.
+
+__Installation__
+
+Make sure you backed up your data if you are upgrading from a previous version.
+Run chef-solr-installer to upgrade your Chef Solr installation. Answer "yes"
+when prompted for confirmation. The process should look like this:
+
+ yourshell> chef-solr-installer
+ Configuration setting solr_heap_size is unknown and will be ignored
+
+ Chef Solr is already installed in /var/chef/solr
+ Do you want to overwrite the current install? All existing Solr data will be lost. [y/n] y
+ Removing the existing Chef Solr installation
+ rm -rf /var/chef/solr
+ rm -rf /var/chef/solr-jetty
+ rm -rf /var/chef/solr/data
+ Creating Solr Home Directory
+ mkdir -p /var/chef/solr
+ entering /var/chef/solr
+ tar zxvf /Users/ddeleo/opscode/chef/chef-solr/solr/solr-home.tar.gz
+ Creating Solr Data Directory
+ mkdir -p /var/chef/solr/data
+ Unpacking Solr Jetty
+ mkdir -p /var/chef/solr-jetty
+ entering /var/chef/solr-jetty
+ tar zxvf /Users/ddeleo/opscode/chef/chef-solr/solr/solr-jetty.tar.gz
+
+ Successfully installed Chef Solr.
+ You can restore your search index using `knife index rebuild`
+
+## SEE ALSO
+
+__chef-expander-cluster__(8)
+
+Full documentation for Chef and chef-server is located on the Chef
+wiki, http://wiki.opscode.com/display/chef/Home.
+
+## 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.