Community Plugins: KnifeΒΆ

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 plugins for cloud hosting platforms— knife azure, knife bluebox, knife ec2, knife eucalyptus, knife google, knife hp, knife linode, knife openstack, knife rackspace, and knife terremark —are built and maintained by Chef.

The following table lists knife plugins built by the Chef community.

Plugin Description
knife-audit Adds the ability to see how many (and which) nodes have a cookbook in its run list.
knife-baremetalcloud Adds the ability to manage compute nodes in baremetalcloud.
knife-batch Adds the ability to execute commands like knife ssh, but in groups of N with a sleep between execution iterations.
knife-block Adds the ability to create and manage multiple knife.rb files for working with many servers.
knife-brightbox Adds the ability to create, bootstrap, and manage instances in the brightbox cloud.
knife-bulk-change-environment Adds the ability to move nodes from one environment to another.
knife-canon Adds the ability to compare command output across hosts.
knife-cfn Adds the ability to validate, create, describe, and delete stacks in AWS CloudFormation.
knife-cisco_asa Adds the ability to manage Cisco ASA devices.
knife-cleanup Adds the ability to remove unused versions of cookbooks that are hosted on the Chef server. (Cookbook versions that are removed are backed-up prior to deletion.)
knife-cloudstack-fog Adds the ability to create, bootstrap, and manage instances in CloudStack using Fog, a Ruby gem for interacting with various cloud providers.
knife-cloudstack Adds the ability to create, bootstrap, and manage CloudStack instances.
knife-community Adds the ability to assist with deploying completed cookbooks to the community web site.
knife-crawl Adds the ability to display the roles that are included recursively within a role and (optionally) all of the roles that include it.
knife-digital_ocean Adds the ability to create, bootstrap, and manage instances in DigitalOcean.
knife-ec2-amis-ubuntu Adds the ability to retrieve a list of released Ubuntu Amazon Machine Images (AMI).
knife-elb Adds the ability to add and remove instances from existing enterprise load balancers, enlist them, and then show them. (This does not add the ability to create or delete enterprise load balancers.)
knife-env-diff Adds the ability to diff the cookbook versions for two (or more) environments.
knife-esx Adds support for VMware.
knife-file Adds utilities that help manipulate files in a chef-repo.
knife-flip Adds improvements to knife-set-environment with added functionality and failsafes.
knife-gandi Adds the ability to create, bootstrap, and manage servers on the hosting platform.
knife-gather Adds the ability to collate multi-line output from parallel knife ssh outputs into one section per host.
knife-github-cookbooks Adds the ability to create vendor branches automatically from any GitHub cookbook.
knife-glesys Adds the ability to create, delete, list, and bootstrap servers on GleSYS.
knife-ipmi Adds simple power control of nodes using IPMI.
knife-kvm Adds Linux support for KVM.
knife-lastrun Adds key metrics from the last chef-client run on a given node.
knife-ohno Adds the ability to view nodes that haven’t checked into the platform for N hours.
knife-oktawave Adds the ability to manage Oktawave Cloud Instances.
knife-onehai Adds the ability to get the last seen time of a single node.
knife-playground Adds miscellaneous tools for knife.
knife-plugins Adds a set of plugins that help manage data bags.
knife-pocket Adds the ability to save a knife search query for later use, such as when using knife ssh.
knife-preflight Adds the ability to check which nodes and roles use a cookbook. This is helpful when making changes to a cookbook.
knife-profitbricks Adds the ability to create, bootstrap, and manage instances in the ProfitBricks IaaS.
knife-rhn Adds the ability to manage the Red Hat network.
knife-rightscale Adds the ability to provision servers on clouds managed by the RightScale platform.
knife-role_copy Adds the ability to get data from a role, and then set up a new role using that data (as long as the new role doesn’t have the same name as an existing role).
knife-rvc Integrates a subset of knife functionality with Ruby vSphere Console.
knife-santoku Adds the ability to build processes around the chef-client.
knife-select Adds the ability for selecting the chef server or organisation to interact with.
knife-server Adds the ability to manage a Chef server, including bootstrapping a Chef server on Amazon EC2 or a standalone server and backing up and/or restoring node, role, data bag, and environment data.
knife-set-environment Adds the ability to set a node environment.
knife-skeleton Adds the ability to create skeleton integrating chefspec, rubocop, foodcritic, knife test and kitchen.
knife-softlayer Adds the ability to launch and bootstrap instances in the IBM SoftLayer cloud.
knife-solo Adds support for bootstrapping and running chef-solo, search, and data bags.
knife-slapchop Adds the ability create and tag clusters of Amazon EC2 nodes with a multi-threading bootstrap process.
knife-spork Adds a simple environment workflow so that teams can more easily work together on the same cookbooks and environments.
knife-ssh_cheto Adds extra features to be used with SSH.
knife-ucs Adds the ability to provision, list, and manage Cisco UCS servers.
knife-voxel Adds the ability to provision instances in the Voxel cloud.
knife-whisk Adds the ability to create new servers in a team environment.
knife-xapi Adds support for Citrix XenServer.