knife(1) - The man page for the knife command line tool.



  • KNIFE(1)			     knife			      KNIFE(1)
    
    
    
    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 Chef 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 Chef 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  Chef
           server  and  an	organization's	infrastructure. knife interacts with a
           Chef 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 Enterprise  Chef.  knife	is  configured
           during  workstation  setup,  but  subsequent  modifications can be made
           using the knife.rb configuration file.
    
       Common Options
           The following options can  be  run  with  all  knife  sub-commands  and
           plug-ins:
    
           -c CONFIG_FILE, --config CONFIG_FILE
    	      The  configuration  file	to use. For example, when knife is run
    	      from a node that is configured to be managed by the Chef server,
    	      this  option  is used to allow knife to use the same credentials
    	      as the chef-client when communicating with the Chef server.
    
           --chef-zero-port PORT
    	      The port on which chef-zero will listen.
    
           -d, --disable-editing
    	      Use to prevent the $EDITOR from being opened and to accept  data
    	      as-is.
    
           --defaults
    	      Use to have knife use the default value instead of asking a user
    	      to provide one.
    
           -e EDITOR, --editor EDITOR
    	      The $EDITOR that is used for all interactive commands.
    
           -E ENVIRONMENT, --environment ENVIRONMENT
    	      The name of the environment. When this option is added to a com‐
    	      mand,  the  command will run only against the named environment.
    	      This option is ignored during  search  queries  made  using  the
    	      knife search subcommand.
    
           -F FORMAT, --format FORMAT
    	      The output format: summary (default), text, json, yaml, and pp.
    
           -h, --help
    	      Shows help for the command.
    
           -k KEY, --key KEY
    	      The private key that knife will use to sign requests made by the
    	      API client to the Chef server.
    
           --[no-]color
    	      Use to view colored output.
    
           --print-after
    	      Use to show data after a destructive operation.
    
           -s URL, --server-url URL
    	      The URL for the Chef server.
    
           -u USER, --user USER
    	      The user name used by knife to sign requests  made  by  the  API
    	      client  to the Chef server. Authentication will fail if the user
    	      name does not match the private key.
    
           -v, --version
    	      The version of the chef-client.
    
           -V, --verbose
    	      Set for more verbose outputs. Use -VV for maximum verbosity.
    
           -y, --yes
    	      Use to respond to all confirmation  prompts  with  "Yes".  knife
    	      will not ask for confirmation.
    
           -z, --local-mode
    	      Use  to  run the chef-client in local mode. This allows all com‐
    	      mands that work against the Chef server to also work against the
    	      local chef-repo.
    
       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  represen‐
           tation  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 informa‐
           tion  be edited as JSON data using a text editor. For example, the fol‐
           lowing 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 environ‐
           ment 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 char‐
           acter. The knife.rb file is a Ruby file; therefore, file  path  separa‐
           tors  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  Chef
    	  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
           Chef
    
    
    
    				   Chef 12.0			      KNIFE(1)
    

Log in to reply
 

© Lightnetics 2024