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 --no-editor option is given, an empty node
object will be created and displayed in your text editor. If the editor
exits with a successful exit status, the node data will be posted to the
Chef Server to create the node.

## DELETE
__knife node delete__ _name_ _(options)_

Deletes the node identified by _name_ on the Chef Server.

## EDIT
__knife node edit__ _name_ _(options)_

  * `-a`, `--all`:
    Display all node data in the editor. By default, default, override,
    and automatic attributes are not shown.

Edit the node identified by _name_. Like __knife node create__, the node
will be displayed in your text editor unless the -n option is present.

## FROM FILE
__knife node from file__ _file_ _(options)_

Create a node from a JSON format _file_.

## LIST
__knife node list__ _(options)_

  * `-w`, `--with-uri`:
    Show corresponding URIs

List all nodes.

## RUN\_LIST ADD
__knife node run_list add__ _name_ _run list item_ _(options)_

  * `-a`, `--after ITEM`:
    Place the ENTRY in the run list after ITEM

Add the _run list item_ to the node's `run_list`. See Run list

## RUN\_LIST REMOVE
__knife node run_list remove__ _node name_ _run list item_ _(options)_

Remove the _run list item_ from the node's `run_list`.

## SHOW
__knife node show__ _node name_ _(options)_

  * `-a`, `--attribute [ATTR]`:
    Show only one attribute
  * `-r`, `--run-list        `:
    Show only the run list
  * `-F`, `--format FORMAT`:
    Display the node in a different format.
  * `-m`, `--medium`:
    Display more, but not all, of the node's data when using the default
    _summary_ format

Displays the node identified by _node name_ on stdout. The amount of
content displayed and the output format are modified by the --format
option. Valid formats are:

  * summary:
    displays the node in a custom, summarized format
  * text
    displays the node data in its entirety using the colorized tree
display
  * json:
    displays the node in JSON format
  * yaml:
    displays the node in YAML format
  * pp
    displays the node using Ruby's pretty printer.

For brevity, only the first character of the format is required, for
example, -Fj will produce JSON format output.

## RUN LIST ITEM FORMAT
Run list items may be either roles or recipes. When adding a role to a
run list, the correct syntax is "role[ROLE\_NAME]"

When adding a recipe to a run list, there are several valid formats:

  * Fully Qualified Format:
    "recipe[COOKBOOK::RECIPE\_NAME]", for example, "recipe[chef::client]"
  * Cookbook Recipe Format:
    For brevity, the recipe part of the fully qualified format may be omitted, and recipes specified as "COOKBOOK::RECIPE\_NAME", e.g., "chef::client"
  * Default Recipe Format:
    When adding the default recipe of a cookbook to a run list, the recipe name may be omitted as well, e.g., "chef::default" may be written as just "chef"

## SEE ALSO
  __knife-client__(1) __knife-search__(1) __knife-role__(1)

## AUTHOR
   Chef was written by Adam Jacob <adam@opscode.com> with many contributions from the community.

## DOCUMENTATION
   This manual page was written by Joshua Timberman <joshua@opscode.com>.
   Permission is granted to copy, distribute and / or modify this document under the terms of the Apache 2.0 License.

## CHEF
   Knife is distributed with Chef. <http://wiki.opscode.com/display/chef/Home>

