Provided by: chef_11.8.2-2_all bug

NAME

       knife-cookbook - The man page for the knife cookbook subcommand.

       A cookbook is the fundamental unit of configuration and policy distribution. Each cookbook
       defines a scenario, such as everything needed to install and configure MySQL, and then  it
       contains all of the components that are required to support that scenario, including:

       • Attribute values that are set on nodes

       • Definitions that allow the creation of reusable collections of resources

       • File distributions

       • Libraries that extend the chef-client and/or provide helpers to Ruby code

       • Recipes  that  specify  which resources to manage and the order in which those resources
         will be applied

       • Custom resources and providers

       • Templates

       • Versions

       • Metadata  about  recipes  (including  dependencies),  version   constraints,   supported
         platforms, and so on

       The  knife  cookbook subcommand is used to interact with cookbooks that are located on the
       server or the local chef-repo.

       This subcommand has the following syntax:

       $ knife cookbook [ARGUMENT] (options)

COMMON OPTIONS

       The following options can be run with all Knife sub-commands and plug-ins:

       -c CONFIG, --config CONFIG
              The configuration file to use.

       --color
              Indicates that colored output will be used.

       -d, --disable-editing
              Indicates that $EDITOR will not be opened; data will be accepted as-is.

       --defaults
              Indicates that Knife will 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 command, the command
              will run only against the named environment.

       -f FILE_NAME, --file FILE_NAME
              Indicates that the private key will be saved to a specified file name.

       -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
              server.

       --no-color
              Indicates that color will not be used in the output.

       -p PASSWORD, --password PASSWORD
              The user password.

       --print-after
              Indicates that data will be shown after a destructive operation.

       -s URL, --server-url URL
              The URL for the server.

       -u USER, --user USER
              The  user name used by Knife to sign requests made by the API client to the 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
              Indicates that the response to all confirmation prompts will  be  "Yes"  (and  that
              Knife will not ask for confirmation).

BULK DELETE

       The  bulk delete argument is used to delete cookbook files that match a pattern defined by
       a regular expression. The regular expression must be within quotes and not  be  surrounded
       by forward slashes (/).

       Syntax

       This argument has the following syntax:

       $ knife cookbook bulk delete REGEX (options)

       Options

       This argument has the following options:

       -p, --purge
              Indicates  that  a cookbook (or cookbook version) will be removed entirely from the
              server. This action should be used carefully because only one copy  of  any  single
              file  is  stored  on  the server. Consequently, purging a cookbook will disable any
              other cookbook that references one or more files from  a  cookbook  that  has  been
              purged.

       Examples

       To bulk delete many cookbooks, use a regular expression to define the pattern:

       $ knife cookbook bulk delete "^[0-9]{3}$" -p

CREATE

       The  create  argument  is  used  to  create a new cookbook directory on the local machine,
       including the following directories and files:

          • cookbook/attributes

          • cookbook/CHANGELOG.md

          • cookbook/definitions

          • cookbook/files/default

          • cookbook/libraries

          • cookbook/metadata.rb

          • cookbook/providers

          • cookbook/README.md (or .rdoc)

          • cookbook/recipes/default.rb

          • cookbook/resources

          • cookbook/templates/default

       After the cookbook is created, it can be uploaded to the server  using  the  knife  upload
       argument.

       Syntax

       This argument has the following syntax:

       $ knife cookbook create COOKBOOK_NAME (options)

       Options

       This argument has the following options:

       -C COPYRIGHT_HOLDER, --copyright COPYRIGHT_HOLDER
              The  name  of  the copyright holder. This option will place a copyright notice that
              contains the name of the copyright holder in each of the pre-created files. If this
              option  is  not  specified,  a  copyright  name of "your_company_name" will be used
              instead; it can be easily modified later.

       -I LICENSE, --license LICENSE
              The type of license under which a cookbook is distributed: apachev2, gplv2,  gplv3,
              mit,  or  none  (default). This option will place the appropriate license notice in
              the pre-created files. Be aware of the licenses for files inside of a cookbook  and
              be sure to follow any restrictions they describe.

       -m EMAIL, --email EMAIL
              The  email  address for the individual who maintains the cookbook. This option will
              place an email address in each of the pre-created files.  If  this  option  is  not
              specified,  an  email  name  of "your_email" will be used instead; it can be easily
              modified later.

       -o PATH, --cookbook-path PATH
              The directory in which cookbook are created. This can be a colon-separated path.

       -r FORMAT, --readme-format FORMAT
              The document format of the readme file: md (markdown) and rdoc (Ruby docs).

       Examples

       To create a cookbook named "my_cookbook" with copyright, email, license, and readme format
       options specified, enter:

       $ knife cookbook create my_cookbook -C "My Name" -m "my@email.com" -I apachev2 -r md

       to return something like:

       ** Creating cookbook my_cookbook
       ** Creating README for cookbook: my_cookbook
       ** Creating metadata for cookbook: my_cookbook

DELETE

       The  delete  argument  is  used  to delete a specified cookbook or cookbook version on the
       server (and not locally).

       Syntax

       This argument has the following syntax:

       $ knife cookbook delete COOKBOOK_NAME [COOKBOOK_VERSION] (options)

       Options

       This argument has the following options:

       -a, --all
              Indicates that a cookbook and every version of that cookbook will be deleted.

       COOKBOOK_VERSION
              The version of a cookbook to be deleted. If a cookbook has only one  version,  this
              option  does  not need to be specified. If a cookbook has more than one version and
              this option is not specified, Knife will prompt for a version.

       -p, --purge
              Indicates that a cookbook (or cookbook version) will be removed entirely  from  the
              server.  This  action  should be used carefully because only one copy of any single
              file is stored on the server. Consequently, purging a  cookbook  will  disable  any
              other  cookbook  that  references  one  or more files from a cookbook that has been
              purged.

       Examples

       To delete version "0.8" from a cookbook named "smartmon", enter:

       $ knife cookbook delete smartmon 0.8

       Type Y to confirm a deletion.

DOWNLOAD

       The download argument is used to download a  cookbook  from  the  server  to  the  current
       working directory.

       Syntax

       This argument has the following syntax:

       $ knife cookbook download COOKBOOK_NAME [COOKBOOK_VERSION] (options)

       Options

       This argument has the following options:

       -d DOWNLOAD_DIRECTORY, --dir DOWNLOAD_DIRECTORY
              The directory into which a cookbook will be downloaded.

       -f, --force
              Indicates that an existing directory will be overwritten.

       -N, --latest
              Indicates that the most recent version of a cookbook will be downloaded.

       Examples

       To download a cookbook named "smartmon", enter:

       $ knife cookbook download smartmon

LIST

       The  list argument is used to view a list of cookbooks that are currently available on the
       server. The list will contain only the most recent version for each cookbook by default.

       Syntax

       This argument has the following syntax:

       $ knife cookbook list (options)

       Options

       This argument has the following options:

       -a, --all
              Indicates that all available versions of each cookbook will be returned.

       -w, --with-uri
              Indicates that the corresponding URIs will be shown.

       Examples

       To view a list of cookbooks:

       $ knife cookbook list

METADATA

       The metadata argument is used to generate the metadata for one or more cookbooks.

       Syntax

       This argument has the following syntax:

       $ knife cookbook metadata (options)

       Options

       This argument has the following options:

       -a, --all
              Indicates that metadata should be generated for all cookbooks, and not just  for  a
              specified cookbook.

       -o PATH:PATH, --cookbook-path PATH:PATH
              The directory in which cookbook are created. This can be a colon-separated path.

       Examples

       To generate metadata for all cookbooks:

       $ knife cookbook metadata -a

METADATA FROM FILE

       The metadata from file argument is used to load the metadata for a cookbook from a file.

       Syntax

       This argument has the following syntax:

       $ knife cookbook metadata from file FILE

       Options

       This command does not have any specific options.

       Examples

       To view cookbook metadata from a JSON file:

       $ knife cookbook metadta from file /path/to/file

SHOW

       The  show  argument  is  used  to  view  information about a cookbook, parts of a cookbook
       (attributes, definitions, files, libraries, providers, recipes, resources, and templates),
       or  a  file  that  is associated with a cookbook (including attributes such as checksum or
       specificity).

       Syntax

       This argument has the following syntax:

       $ knife cookbook show COOKBOOK_NAME [COOKBOOK_VERSION] [PART...] [FILE_NAME] (options)

       Options

       This argument has the following options:

       COOKBOOK_VERSION
              The version of a cookbook to be shown. If a cookbook has  only  one  version,  this
              option  does  not need to be specified. If a cookbook has more than one version and
              this option is not specified, a list of cookbook versions will be returned.

       -f FQDN, --fqdn FQDN
              The FQDN of the host.

       FILE_NAME
              The name of a file that is associated with a cookbook.

       -p PLATFORM, --platform PLATFORM
              The platform for which a cookbook is designed.

       PART   The part of the  cookbook  to  show:  attributes,  definitions,  files,  libraries,
              providers, recipes, resources, or templates. More than one part can be specified.

       -V PLATFORM_VERSION, --platform-version PLATFORM_VERSION
              The version of the platform.

       -w, --with-uri
              Indicates that the corresponding URIs will be shown.

       Examples

       To get the list of available versions of a cookbook named "getting-started", enter:

       $ knife cookbook show getting-started

       to return something like:

       getting-started   0.3.0  0.2.0

       To  show  a  list of data about a cookbook using the name of the cookbook and the version,
       enter:

       $ knife cookbook show getting-started 0.3.0

       to return something like:

       attributes:
         checksum:     fa0fc4abf3f6787aeb5c3c5c35de667c
         name:         default.rb
         path:         attributes/default.rb
         specificity:  default
         url:          https://somelongurlhere.com
       chef_type:      cookbook_version
       cookbook_name:  getting-started
       definitions:    []
       files:          []
       frozen?:        false
       json_class:     Chef::CookbookVersion
       libraries:      []

       To only view data about "templates", enter:

       $ knife cookbook show getting-started 0.3.0 templates

       to return something like:

       checksum:     a29d6f254577b830091f140c3a78b1fe
       name:         chef-getting-started.txt.erb
       path:         templates/default/chef-getting-started.txt.erb
       specificity:  default
       url:          https://someurlhere.com

       To view information in JSON format, use the -F common option as part of the  command  like
       this:

       $ knife role show devops -F json

       Other formats available include text, yaml, and pp.

TEST

       The  test  argument  is used to test a cookbook for syntax errors. This argument uses Ruby
       syntax checking to verify every file in a cookbook that ends  in  .rb  and  Embedded  Ruby
       (ERB).

       Syntax

       This argument has the following syntax:

       $ knife cookbook test COOKBOOK_NAME (options)

       Options

       This argument has the following options:

       -a, --all
              Indicates that all cookbooks will be tested.

       -o PATH:PATH, --cookbook-path PATH:PATH
              The directory in which cookbook are created. This can be a colon-separated path.

       Examples

       To test a cookbook named "getting-started", enter:

       $ knife cookbook test getting-started

UPLOAD

       The  upload  argument  is  used  to  upload  one or more cookbooks (and any files that are
       associated with those cookbooks) from a local repository to the server. Only files that do
       not already exist on the server will be uploaded.

       Note   Use  a chefignore file to prevent the upload of specific files and file types, such
              as temporary files or files placed in  folders  by  version  control  systems.  The
              chefignore file must be located in the root of the cookbook repository and must use
              rules similar to filename globbing (as defined by the Ruby File.fnmatch syntax).

       Syntax

       This argument has the following syntax:

       $ knife cookbook upload [COOKBOOK_NAME...] (options)

       Options

       This argument has the following options:

       -a, --all
              Indicates that all cookbooks will be uploaded.

       -d, --include-dependencies
              Indicates that when a cookbook has a dependency on one (or more)  cookbooks,  those
              cookbooks will also be uploaded.

       --force
              Indicates that a cookbook should be updated even if the --freeze flag has been set.

       --freeze
              Indicates  that a cookbook cannot be modified; any changes to this cookbook must be
              included as a new version. Only the --force option can override this setting.

       -o PATH:PATH, --cookbook-path PATH:PATH
              The directory in which cookbook are created. This can be a colon-separated path.

       Examples

       To upload a cookbook named "getting-started":

       $ knife cookbook upload getting-started

       To upload a cookbook, and then prevent other users from being able to make changes to  it,
       enter:

       $ knife cookbook upload redis --freeze

       to return something like:

       Uploading redis...
       Upload completed

       If  a  cookbook  is  frozen  and the --force option is not specified, Knife will return an
       error message similar to the following:

       Uploading redis...
       ERROR: Version 0.1.6 of cookbook redis is frozen. Use --force to override.

AUTHOR

       Opscode

                                           Chef 11.8.0                          KNIFE-COOKBOOK(1)