Provided by: chef_11.8.2-2_all bug

NAME

       knife - The man page for the knife command line tool.

       Knife  is a command-line tool that provides an interface between a local chef-repo and the
       server. Knife helps users to manage:

       • Nodes

       • Cookbooks and recipes

       • Roles

       • Stores of JSON data (data bags), including encrypted data

       • Environments

       • Cloud resources, including provisioning

       • The installation of the chef-client on management workstations

       • Searching of indexed data on the server

       Knife subcommands:

       • knife bootstrap

       • knife client

       • knife configure

       • knife cookbook

       • knife cookbook site

       • knife data bag

       • knife delete

       • knife deps

       • knife diff

       • knife download

       • knife edit

       • knife environment

       • knife exec

       • knife list

       • knife node

       • knife raw

       • knife recipe list

       • knife role

       • knife search

       • knife show

       • knife ssh

       • knife status

       • knife tag

       • knife upload

       • knife user

       • knife xargs

WORKING WITH KNIFE

       Knife  runs  from  a  management  workstation  and  sits  in-between  a  server   and   an
       organization's  infrastructure.  Knife  interacts with a server by using the same REST API
       that is used by a chef-client. Role-based authentication controls (RBAC) can  be  used  to
       authorize  changes when Knife is run with Hosted Chef or Private Chef. Knife is configured
       during workstation setup, but subsequent modifications can  be  made  using  the  knife.rb
       configuration file.

   JSON Data Format
       Most  data  is  entered  using  a text editor in JSON format, unless the --disable-editing
       option is entered as part of a command. (Encrypted data bags use YAML, which is a superset
       of  JSON.)  JSON is a common, language-independent data format that provides a simple text
       representation of  arbitrary  data  structures.  For  more  information  about  JSON,  see
       http://www.json.org/ or http://en.wikipedia.org/wiki/JSON.

   Set the Text Editor
       Some  Knife  commands,  such as knife data bag edit, require that information be edited as
       JSON data using a text editor. For example, the following command:

       $ knife data bag edit admins admin_name

       will open up the text editor with data similar to:

       {
         "id": "admin_name"
       }

       Changes to that file can then be made:

       {
         "id": "Justin C."
         "description": "I am passing the time by letting time pass over me ..."
       }

       The type of text editor that is used by Knife can be configured by adding an entry to  the
       knife.rb  file or by setting an EDITOR environment variable. For example, to configure the
       text editor to always open with vim, add the following to the knife.rb file:

       knife[:editor] = "/usr/bin/vim"

       When a Microsoft Windows file path is enclosed in a double-quoted string (" "),  the  same
       backslash  character  (\)  that  is used to define the file path separator is also used in
       Ruby to define an escape character. The knife.rb file is a Ruby file; therefore, file path
       separators  must be escaped. In addition, spaces in the file path must be replaced with ~1
       so that the length of each section within the file path is not more than 8 characters. For
       example, if EditPad Pro is the text editor of choice and is located at the following path:

       C:\\Program Files (x86)\EditPad Pro\EditPad.exe

       the setting in the knife.rb file would be similar to:

       knife[:editor] = "C:\\Progra~1\\EditPa~1\\EditPad.exe"

       One  approach  to  working  around  the  double-  vs.  single-quote  issue  is  to put the
       single-quotes outside of the double-quotes. For example, for Notepad++:

       knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe -nosession -multiInst"'

       for Sublime Text:

       knife[:editor] = '"C:\Program Files\Sublime Text 2\sublime_text.exe --wait"'

       for TextPad:

       knife[:editor] = '"C:\Program Files (x86)\TextPad 7\TextPad.exe"'

       and for vim:

       knife[:editor] = '"C:\Program Files (x86)\vim\vim74\gvim.exe"'

   Using Quotes
       Values can be entered with double quotes (" ") or single quotes (' '), but this should  be
       done consistently.

   Sub-commands
       Knife comes with a collection of built in subcommands that work together to provide all of
       the functionality required to take specific actions against any object in an organization,
       including  cookbooks,  nodes,  roles,  data  bags, environments, and users. A Knife plugin
       extends the functionality beyond built-in subcommands.

       Knife has the following subcommands:  bootstrap,  client,  configure,  cookbook,  cookbook
       site,  data  bag,  delete,  deps,  diff, download, edit, environment, exec, index rebuild,
       list, node, recipe list, role, search, show, ssh, status, tag, upload, user, and xargs.

       Note   The following subcommands run only against the open source  server:  index  rebuild
              and user.

   Syntax
       All Knife subcommands have the following syntax:
          knife subcommand [ARGUMENT] (options)

       Each subcommand has its own set of arguments and options.

       Note   All  syntax  examples  in  this document show variables in ALL_CAPS. For example -u
              PORT_LIST (where PORT_LIST is a comma-separated list of local and public UDP ports)
              or  -F  FORMAT  (where  FORMAT  determines the output format, either summary, text,
              json, yaml, or pp). These variables often require specific values that  are  unique
              to each organization.

AUTHOR

       Opscode

                                           Chef 11.8.0                                   KNIFE(1)