Book Image

Mastering Chef

By : Mayank Joshi
Book Image

Mastering Chef

By: Mayank Joshi

Overview of this book

Table of Contents (20 chapters)
Mastering Chef
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
2
Knife and Its Associated Plugins
10
Data Bags and Templates
Index

Index

A

  • actions, Capistrano
    • $deploy / Actions
    • $force_deploy / Actions
    • $rollback / Actions
  • API client
    • managing / Managing an API client
    • new client, creating / Creating a new client
    • listing / Listing all available API clients
    • information, displaying / Displaying information about a client
    • existing client, deleting / Deleting an existing client
    • reregistering / Reregistering a client
  • arguments / Arguments
  • arithmetic operators
    • about / Arithmetic operators
  • arrays
    • about / Arrays
    • creating / Creating an array
    • elements, accessing / Accessing elements of an array
    • elements, adding / Adding elements to an array
    • elements, removing / Removing elements from an array
    • iterating over / Iterating over an array
    • elements, selecting / Selecting elements of an array
    • nondestructive way, of selecting elements / The nondestructive way
    • destructive way, of selecting elements / The destructive way
  • assignment operators
    • about / Assignment operators
  • attribute
    • defining / Different sources of attributes
    • sources / Different sources of attributes
    • life cycle / Different sources of attributes
  • attribute file
    • about / The attribute file
  • attribute naming
    • about / Attribute naming
  • attribute precedence
    • about / Attribute precedence, Attribute precedence
  • attributes
    • ignore_failure / Resources
    • provider / Resources
    • retries / Resources
    • retry_delay / Resources
    • supports / Resources
    • about / Attributes
    • default / Types of attributes
    • force_default / Types of attributes
    • normal / Types of attributes
    • override / Types of attributes
    • force_override / Types of attributes
    • automatic / Types of attributes
    • run_list, defining / The run_list
    • recipe DSL methods / Recipe DSL methods
  • attributes, Capistrano
    • after_restart / Attributes
    • before_migrate / Attributes
    • before_restart / Attributes
    • before_symlink / Attributes
    • create_dirs_before_symlink / Attributes
    • deploy_to / Attributes
    • environment / Attributes
    • keep_releases / Attributes
    • migrate / Attributes
    • migration_command / Attributes
    • purge_before_symlink / Attributes
    • repo / Attributes
    • revision / Attributes
    • rollback_on_error / Attributes
    • scm_provider / Attributes
    • symlink_before_migrate / Attributes
    • timeout / Attributes
    • user / Attributes
  • attribute types
    • defining / Different types of attributes
    • default / Different types of attributes
    • force_default / Different types of attributes
    • normal / Different types of attributes
    • override / Different types of attributes
    • force_override / Different types of attributes
    • automatic / Different types of attributes
  • attribute whitelisting
    • about / Attribute whitelisting
  • authentication
    • about / Authentication
    • chef-client / chef-client
    • Knife / Knife
    • custom API calls / Custom API calls
    • Open Source Chef server / The Open Source Chef server
    • Enterprise Chef / Enterprise Chef
  • authorization
    • about / Authorization
  • automatic attributes
    • defining / Ohai
    • node[*platform*] / Ohai
    • node[*platform_family*] / Ohai
    • node[*platform_version*] / Ohai
    • node[*ip_address*] / Ohai
    • node[*macaddress*] / Ohai
    • node[*hostname*] / Ohai
    • node[*fqdn*] / Ohai
    • node[*domain*] / Ohai
    • node[*recipes*] / Ohai
    • node[*roles*] / Ohai

B

  • bang methods
    • about / Bang methods
  • base
    • about / Using the data bags in recipes
  • bash automated testing system (bats)
    • about / Setting up a work environment
  • bash resource
    • about / The bash resource
    • syntax / The bash resource
    • URL / The bash resource
  • bash resource, actions
    • $run / The bash resource
    • $nothing / The bash resource
  • bash resource, attributes
    • code / The bash resource
    • command / The bash resource
    • creates / The bash resource
    • cwd / The bash resource
    • user / The bash resource
    • timeout / The bash resource
    • path / The bash resource
    • flags / The bash resource
    • environment / The bash resource
    • returns / The bash resource
    • group / The bash resource
    • umask / The bash resource
  • basic operations
    • about / Basic operations
    • arithmetic operators / Arithmetic operators
    • comparison operators / Comparison operators
    • assignment operators / Assignment operators
    • bitwise operators / Bitwise operators
    • logical operators / Logical operators
    • Ruby ternary operator / The Ruby ternary operator
    • Ruby range operators / Ruby range operators
    • Ruby defined? operator / The Ruby defined? operator
  • bitwise operators
    • about / Bitwise operators
  • bootstrap process
    • about / The bootstrap process

C

  • Cache_options
    • about / Setting up a work environment
  • callbacks, Capistrano
    • after_restart / Callbacks
    • before_restart / Callbacks
    • before_migrate / Callbacks
    • before_symlink / Callbacks
    • using / Callbacks
    • release_path / Callbacks
    • new_resource / Callbacks
  • Capistrano
    • about / The dynamic server list in Capistrano using Chef
    • dynamic server list, Chef used / The dynamic server list in Capistrano using Chef
    • using / The dynamic server list in Capistrano using Chef
    • installing / Installing Capistrano
    • application, preparing / Installing Capistrano
    • roles / Installing Capistrano
    • tasks / Installing Capistrano
    • use case / Installing Capistrano
  • case/when statement
    • about / The case/when statement
  • Chef
    • running, modes / Different modes of running Chef
    • defining / Terminology used in the world of Chef
    • node / Terminology used in the world of Chef
    • server / Terminology used in the world of Chef
    • workstation / Terminology used in the world of Chef
    • repository / Terminology used in the world of Chef
    • Knife / Terminology used in the world of Chef
    • cookbook / Terminology used in the world of Chef
    • recipes / Terminology used in the world of Chef
    • attributes / Terminology used in the world of Chef
    • roles / Terminology used in the world of Chef
    • run-list / Terminology used in the world of Chef
    • resources / Terminology used in the world of Chef
    • LWRP / Terminology used in the world of Chef
    • metadata / Terminology used in the world of Chef
    • chef-client / Terminology used in the world of Chef
    • Ohai / Terminology used in the world of Chef
    • Domain Specific Language (DSL) / Terminology used in the world of Chef
    • chef-solo / Terminology used in the world of Chef
    • chef-zero / Terminology used in the world of Chef
    • used, for dynamic server list in Capistrano / The dynamic server list in Capistrano using Chef
    • extending, for bootstrapping distributed systems / Extending Chef to bootstrap distributed systems
  • chef-client
    • used, for Chef Run / A Chef run using chef-client
  • chef-npm
    • URL / Resources
  • chef-repo
    • about / Setting up a work environment
  • chef-solo
    • about / Different modes of running Chef
    • used, for Chef Run / Using chef-solo
  • Chef API
    • using / Using the Chef API
    • pre-requisites / Prerequisites for using Chef API
  • Chef handlers
    • defining / Custom Chef handlers
  • Chef Run
    • anatomy / The anatomy of a Chef run
    • chef-client, using / A Chef run using chef-client
    • chef-solo, using / Using chef-solo
  • Chef Run, using chef-client
    • node object, building / Step 1 – Building a node object
    • authenticate / Step 2 – Authenticate
    • cookbook, synchronization / Step 3 – Synchronization of cookbooks
    • cookbooks, loading / Step 4 – Loading of cookbooks and convergence
    • convergence, loading / Step 4 – Loading of cookbooks and convergence
    • exception handling / Step 5 – Reporting and exception handling
    • reporting / Step 5 – Reporting and exception handling
  • Chef server
    • cookbook, uploading / Uploading a cookbook to the Chef server
  • Chef Server WebUI
    • using / Using the Chef server WebUI
  • ChefSpec
    • URL / Tools
    • about / Tools
    • advantages / Tools
  • classes
    • about / Classes and objects
    • example / Classes and objects
  • client-server model, Chef
    • about / Different modes of running Chef
  • Cloud-based deployment
    • defining / The dynamic server list in Capistrano using Chef
  • Cloud-based environments
    • benefits / Using Chef in a dynamic environment such as the cloud
  • command-line option, Knife plugin
    • about / The skeleton of a Knife plugin
  • community-written plugins
    • URL / Distributing plugins using gems
  • comparison operators
    • about / Comparison operators
  • compilation phase
    • about / Resources
  • components, chef-client
    • libraries / Step 4 – Loading of cookbooks and convergence
    • attributes / Step 4 – Loading of cookbooks and convergence
    • definitions / Step 4 – Loading of cookbooks and convergence
    • recipes / Step 4 – Loading of cookbooks and convergence
  • components, Chef ecosystem
    • chef-server / Setting up a work environment
    • chef-client / Setting up a work environment
    • developer workstation / Setting up a work environment
  • conditional statements and loops
    • about / Conditional statements and loops
    • if statement / The if statement
    • unless statement / The unless statement
    • case/when statement / The case/when statement
    • while loop / The while loop
    • until loop / The until loop
    • for loop / The for loop
  • configuration settings, cluster configuration file
    • Cloud provider settings / Running jobs from within recipes
    • base role definition / Running jobs from within recipes
    • environment definition / Running jobs from within recipes
    • various facets definition / Running jobs from within recipes
    • facet-specific roles and recipes / Running jobs from within recipes
  • configuration settings, knife.rb file
    • chef_server_url / Introducing Knife
    • node_name / Introducing Knife
    • client_key / Introducing Knife
    • cookbook_path / Introducing Knife
    • cookbook_copyright / Introducing Knife
    • cookbook_email / Introducing Knife
    • validation_client_name / Introducing Knife
    • validation_key / Introducing Knife
    • knife['editor'] / Introducing Knife
  • continuous deployment
    • achieving / Tools
  • convergence phase
    • about / Resources
  • cookbook
    • about / Cookbooks
    • authoring / Authoring a cookbook
    • uploading, to Chef server / Uploading a cookbook to the Chef server
    • deleting / Deleting a cookbook
    • testing / Testing a cookbook
    • versioning / Cookbook versioning
    • URL / Using the data bags in recipes
  • cookbook multiple versions, maintaining
    • maximum version control strategy / Maximum version control strategy
    • branch tracking strategy / Branch tracking strategy
  • cookbooks
    • managing / Managing cookbooks
    • operations / Managing cookbooks
    • new cookbook, creating / Creating a new cookbook
    • uploading, to chef-server / Uploading a cookbook to chef-server
    • list, obtaining on chef-server / Getting the list of all the cookbooks on chef-server
    • deleting / Deleting cookbooks
    • downloading / Downloading a cookbook
    • multiple cookbooks, deleting / Deleting multiple cookbooks
  • cookbook versions
    • operators / Operators available for use with versioning
    • freezing / Freezing versions
    • multiple versions, maintaining / Maintaining multiple versions of cookbooks
  • cookbook_file resource
    • about / The cookbook_file resource
    • URL / The cookbook_file resource
  • cookbook_file resource, actions
    • $create / The cookbook_file resource
    • $create_if_missing / The cookbook_file resource
    • $delete / The cookbook_file resource
    • $touch / The cookbook_file resource
  • cookbook_file resource, attributes
    • atomic_updates / The cookbook_file resource
    • backup / The cookbook_file resource
    • cookbook / The cookbook_file resource
    • force_unlink / The cookbook_file resource
    • group / The cookbook_file resource
    • owner / The cookbook_file resource
    • mode / The cookbook_file resource
    • path / The cookbook_file resource
    • source / The cookbook_file resource
    • manage_symlink_source / The cookbook_file resource
  • Create, Read, Update, and Delete (CRUD)
    • about / Ridley
  • cron resource
    • about / The cron resource
    • syntax / The cron resource
    • URL / The cron resource
  • cron resource, actions
    • $create / The cron resource
    • $delete / The cron resource
  • cron resource, attributes
    • command / The cron resource
    • day / The cron resource
    • hour / The cron resource
    • minute / The cron resource
    • month / The cron resource
    • weekday / The cron resource
    • path / The cron resource
    • shell / The cron resource
    • user / The cron resource
    • mailto / The cron resource
    • home / The cron resource
  • custom plugins
    • about / Custom plugins
    • syntax / Custom plugins
    • examples / Custom plugins
    • logging in / Logging in Ohai plugins
  • custom resources
    • about / Custom resources
    • setup / Setup
    • resource / Resource
    • provider / Provider
    • provider DSL / Provider DSL
    • logging / Logging

D

  • data bag
    • about / Data bags
    • managing / Management of a data bag
    • creating / Creating a data bag
    • item, editing / Editing a data bag item
    • deleting / Deleting a data bag item or a data bag
    • list of items, obtaining / Getting a list of items and their properties
    • using, in recipes / Using the data bags in recipes
    • encrypting / Encrypted data bags
  • data bag item
    • editing / Editing a data bag item
    • deleting / Deleting a data bag item or a data bag
  • data_bag method / Using the data bags in recipes
  • default attribute
    • about / Role and environment attributes
  • default groups, Enterprise Chef
    • admins / Groups
    • billing_admins / Groups
    • clients / Groups
    • users / Groups
  • dependencies / Dependencies
  • deployment, Capistrano
    • defining / Capistrano style deployments using Chef's "deploy" resource
    • phases / Phases of deployment
    • callbacks / Callbacks
    • actions / Actions
    • attributes / Attributes
  • deployment phases, Capistrano
    • Checkout / Phases of deployment
    • Migrate / Phases of deployment
    • Symlink / Phases of deployment
    • Restart / Phases of deployment
  • development, without TDD
    • about / Development without TDD
  • development, with TDD
    • about / Development with TDD
  • directory resource
    • about / The directory resource
    • URL / The directory resource
  • directory resource, actions
    • $create / The directory resource
    • $delete / The directory resource
  • directory resource, attributes
    • path / The directory resource
    • owner / The directory resource
    • group / The directory resource
    • mode / The directory resource
    • recursive / The directory resource
  • distributed systems
    • bootstrapping / Extending Chef to bootstrap distributed systems
  • Domain Specific Language (DSL)
    • about / Terminology used in the world of Chef

E

  • Embedded Ruby (ERB) templates
    • about / The template resource, Templates
  • encapsulation
    • about / Classes and objects
  • encrypted data bag item
    • about / Encrypted data bags
  • endpoints
    • about / Endpoints
    • /users / /users
    • /users/NAME / /users/NAME
    • /clients / /clients
    • /clients/NAME / /clients/NAME
    • /roles / /roles
    • /roles/NAME / /roles/NAME
    • roles/NAME/environments / /roles/NAME/environments
    • /roles/NAME/environments/NAME / /roles/NAME/environments/NAME
    • /cookbooks / /cookbooks
    • /cookbooks/NAME / /cookbooks/NAME
    • /cookbooks/NAME/VERSION / /cookbooks/NAME/VERSION
    • /data / /data
    • /data/NAME / /data/NAME
    • /data/NAME/ITEM / /data/NAME/ITEM
    • /environments / /environments
    • /environments/NAME / /environments/NAME
    • /environments/NAME/cookbooks / /environments/NAME/cookbooks
    • /environments/NAME/nodes / /environments/NAME/nodes
    • /environments/NAME/recipes / /environments/NAME/recipes
    • /environments/NAME/roles/NAME / /environments/NAME/roles/NAME
  • Enterprise Chef
    • organization / Enterprise Chef
    • group / Enterprise Chef
    • user / Enterprise Chef
    • Chef-client / Enterprise Chef
    • object permissions / Object permissions
    • global permissions / Object permissions
    • default groups / Groups
  • environment
    • setting up, on node / Setting up an environment on a node
  • environment, on node
    • Knife, using / Using Knife
    • client.rb file, editing on node / Editing the client.rb file on the node
  • environment attribute
    • defining / Role and environment attributes
  • environment run lists
    • about / Environment run lists
  • environments
    • managing / Managing environments, Managing environments
    • creating / Creating an environment
    • deleting / Deleting an environment
    • editing / Editing an environment
    • listing / Listing all environments
    • information, displaying / Displaying information about an environment
    • Ruby DSL, using / Using Ruby DSL
  • ERB templates
    • using / Partial templates
  • exception handling / Exception handling
  • execute resource
    • about / The execute resource
    • syntax / The execute resource
    • URL / The execute resource
  • execute resource, actions
    • $run / The execute resource
    • $nothing / The execute resource
  • execute resource, attributes
    • command / The execute resource
    • path / The execute resource
    • user / The execute resource
    • group / The execute resource
    • timeout / The execute resource
    • cwd / The execute resource
    • creates / The execute resource
    • returns / The execute resource
    • environment / The execute resource
    • umask / The execute resource
  • execution phase
    • about / Resources

F

  • file resource
    • about / The file resource
    • syntax / The file resource
    • URL / The file resource
  • file resource, actions
    • $create / The file resource
    • $create_if_missing / The file resource
    • $delete / The file resource
    • $touch / The file resource
  • file resource, attributes
    • atomic_update / The file resource
    • backup / The file resource
    • content / The file resource
    • owner / The file resource
    • group / The file resource
    • mode / The file resource
    • force_unlink / The file resource
    • manage_symlink_source / The file resource
    • path / The file resource
  • files/directories, Capistrano
    • creating / Installing Capistrano
  • Foodcritic
    • about / Attribute naming
  • for loop
    • about / The for loop
  • fuzzy matching
    • URL / Fuzzy matching

G

  • gem repository
    • URL / Distributing plugins using gems
  • gems
    • used, for distributing plugins / Distributing plugins using gems
  • GET method
    • parameters / GET
  • global permissions, Enterprise Chef
    • about / Object permissions
    • create / Object permissions
    • list / Object permissions
  • guard attributes / Guard attributes
    • not_if / Guard attributes
    • only_if / Guard attributes
  • guard attributes, arguments
    • $user / Guard attributes
    • $group / Guard attributes
    • $environment / Guard attributes
    • $cwd / Guard attributes
    • $timeout / Guard attributes

H

  • handlers, in Chef
    • exception handler / Custom Chef handlers
    • report handler / Custom Chef handlers
    • start handler / Custom Chef handlers
  • hashes
    • about / Hashes
    • creating / Creating hashes
    • iterating over / Iterating over a hash
  • headers, request authentication
    • accept / Authentication of requests
    • Content-Type / Authentication of requests
    • host / Authentication of requests
    • X-Chef-Version / Authentication of requests
    • X-Ops-Authorization-N / Authentication of requests
    • X-Ops-Content-Hash / Authentication of requests
    • X-Ops-Sign / Authentication of requests
    • X-Ops-Timestamp / Authentication of requests
    • X-Ops-UserId / Authentication of requests
  • helper modules
    • about / Helper modules
    • inline methods / Inline methods
    • inline modules / Inline modules
    • library modules / Library modules
  • hints
    • about / Logging in Ohai plugins

I

  • if statement
    • about / The if statement
  • integration tests
    • about / Types of tests
  • IRB
    • about / IRB
  • Ironfan
    • installing / Running jobs from within recipes
    • URL / Running jobs from within recipes
    • using / Running jobs from within recipes

J

  • jobs
    • running, from workstation / Running jobs from your workstation
    • running, from within recipes / Running jobs from within recipes
  • JSON file
    • using / Using a JSON file
    • key-value pairs / Creating a new environment

K

  • key-value pairs / Creating a new role
  • Knife
    • about / Setting up a work environment, Introducing Knife
    • knife command / Introducing Knife
    • knife.rb / Introducing Knife
    • cookbooks, managing / Managing cookbooks
    • environments, managing / Managing environments
    • roles, managing / Managing roles
    • nodes, managing / Managing nodes
    • API client, managing / Managing an API client
    • search command / The search command
    • node, bootstrapping / Bootstrapping a node
    • plugins / Some useful Knife plugins
    • using / Encrypted data bags
    • options / Encrypted data bags
    • used, for encryption / Encrypted data bags
  • Knife, environments
    • using / Using Knife
    • new environment, creating / Creating a new environment
    • environment configuration, editing / Editing an environment configuration
    • environment, deleting / Deleting an environment
    • environment, displaying / Displaying all the environments configured on the Chef server
    • details, displaying with environment / Showing details associated with an environment
    • cookbook versions, comparing across environments / Comparing cookbook versions across environments
    • environment, creating / Creating or editing an environment using the configuration specified in a file
    • environment, editing / Creating or editing an environment using the configuration specified in a file
  • Knife, roles
    • using / Using Knife
    • new role, creating / Creating a new role
    • existing role, editing / Editing an existing role
    • existing role, deleting / Deleting an existing role
    • existing role, defining / Showing details about an existing role
    • roles, on Chef server / Listing all roles on the Chef server
  • knife-azure plugin
    • about / The knife-azure plugin
  • knife-ec2 plugin
    • about / The knife-ec2 plugin
  • knife-google plugin
    • about / The knife-google plugin
  • knife-push plugin
    • about / The knife-push plugin
  • knife-ssh plugin
    • about / The knife-ssh plugin
  • knife.rb file
    • configuration settings / Introducing Knife
  • knife cluster list command
    • using / Running jobs from within recipes
  • knife cookbook compare command / Comparing cookbook versions across environments
  • knife data bag command
    • about / Creating a data bag
  • knife data bag edit BAG ITEM command / Editing a data bag item
  • knife data bag from file command / Editing a data bag item
  • knife data bag list command / Getting a list of all the data bags set up on the Chef server
  • knife data bag show command / Getting a list of items and their properties
  • knife environment create ENVIRONMENT_NAME command / Creating a new environment
  • knife environment delete ENVIRONMENT_NAME command / Deleting an environment
  • knife environment edit ENVIRONMENT_NAME command / Editing an environment configuration
  • knife environment from file command / Creating or editing an environment using the configuration specified in a file
  • knife environment list command / Displaying all the environments configured on the Chef server
  • knife environment show ENVIRONMENT_NAME command / Showing details associated with an environment
  • knife exec subcommand
    • URL / Using Knife
  • Knife plugins
    • defining / Custom Knife plugins
    • skeleton / The skeleton of a Knife plugin
    • namespace / Namespace
    • class name, defining / Class name
    • banner / Banner
    • dependencies / Dependencies
    • requirements / Requirements
    • options / Options
    • arguments / Arguments
    • run method / The run method
    • search functionality / Search inside a custom Knife plugin
    • knife.rb script, settings / knife.rb settings
    • user interactions / User interactions
    • exception handling / Exception handling
    • working / A simple Knife plugin
    • distributing, gems used / Distributing plugins using gems
    • knife-elb / Distributing plugins using gems
    • knife-inspect / Distributing plugins using gems
    • knife-community / Distributing plugins using gems
    • knife-block / Distributing plugins using gems
    • knife-tagbulk / Distributing plugins using gems
  • knife role create ROLE command / Creating a new role
  • knife role delete ROLE command / Deleting an existing role
  • knife role edit ROLE command / Editing an existing role
  • knife role list command / Listing all roles on the Chef server
  • knife role show ROLE command / Showing details about an existing role

L

  • Lightweight resources and providers (LWRP)
    • about / Terminology used in the world of Chef
  • logical operators
    • about / Logical operators

M

  • methods, /clients/NAME endpoint
    • DELETE method / DELETE
    • GET method / GET
    • PUT method / PUT
  • methods, /clients endpoint
    • GET method / GET
    • POST method / POST
  • methods, /cookbooks/NAME/VERSION endpoint
    • DELETE method / DELETE
    • GET method / GET
    • PUT method / PUT
  • methods, /cookbooks/NAME endpoint
    • GET method / GET
  • methods, /cookbooks endpoint
    • GET method / GET
  • methods, /data/NAME/ITEM endpoint
    • DELETE method / DELETE
    • GET method / GET
    • PUT method / PUT
  • methods, /data/NAME endpoint
    • DELETE method / DELETE
    • GET method / GET
    • POST method / POST
  • methods, /data endpoint
    • GET method / GET
    • POST method / POST
  • methods, /environments/NAME/cookbooks endpoint
    • GET method / GET
  • methods, /environments/NAME/nodes endpoint
    • GET method / GET
  • methods, /environments/NAME/recipes endpoint
    • GET method / GET
  • methods, /environments/NAME endpoint
    • DELETE method / DELETE
    • GET method / GET
    • PUT method / PUT
  • methods, /environments endpoint
    • GET method / GET
    • POST method / POST
  • methods, /roles/NAME/environments/NAME endpoint
    • GET method / GET
  • methods, /roles/NAME/environments endpoint
    • GET method / GET
  • methods, /roles/NAME endpoint
    • DELETE method / DELETE
    • GET method / GET
    • PUT method / PUT
  • methods, /roles endpoint
    • GET method / GET
    • POST method / POST
  • methods, /users/NAME endpoint
    • DELETE method / DELETE
    • GET method / GET
    • POST method / POST
    • PUT method / PUT
  • methods, /users endpoint
    • GET method / GET
    • POST method / POST
  • methods, Hash class
    • hash.clear / Creating hashes
    • hash.delete(key) / Creating hashes
    • hash.empty? / Creating hashes
    • hash.has_value? (value) / Creating hashes
    • has.has_key?(key) / Creating hashes
    • hash.keys / Creating hashes
    • hash.values / Creating hashes
    • hash.size / Creating hashes
    • hash.to_s / Creating hashes
    • hash.invert / Creating hashes
  • methods, user interactions
    • about / User interactions
    • ui.ask(*args, &block) / User interactions
    • ui.ask_question(question, opts={}) / User interactions
    • ui.color (string, *colors) / User interactions
    • ui.color?() / User interactions
    • ui.confirm / User interactions
    • ui.edit_data / User interactions
    • ui.edit_object / User interactions
    • ui.error / User interactions
    • ui.fatal / User interactions
    • ui.highline / User interactions
    • ui.info / User interactions
    • ui.interchange / User interactions
    • ui.list(*args) / User interactions
    • ui.msg(message) / User interactions
    • ui.output(data) / User interactions
    • ui.pretty_print / User interactions
    • ui.use_presenter / User interactions
    • ui.warn(message) / User interactions
  • minitest-chef-handler
    • URL / Tools
    • about / Tools
    • advantages / Tools
  • minitest-Chef-Handler
    • URL / Tools
  • minitest framework
    • URL / Tools
  • mixin
    • about / Classes and objects
  • mixlib authentication
    • URL / Custom API calls
  • modules
    • about / Modules

N

  • $nothing action
    • about / Resources
  • namespace / Namespace
  • net-scp gem
    • URL / A simple Knife plugin
  • nodes
    • about / Managing nodes
    • managing / Managing nodes
    • creating / Creating a node
    • listing / Listing all available nodes
    • information, displaying / Displaying information about a node
    • editing / Editing a node
    • stuff, adding to run_list / Adding stuff to the run_list associated with a node
    • stuff, deleting from run_list / Deleting stuff from the run_list associated with a node
    • node object, deleting / Deleting a node object
    • bootstrapping / Bootstrapping a node
  • notifications, Chef
    • notifies / Guard attributes
    • subscribes / Guard attributes
  • notification timers, Chef
    • defining / Guard attributes

O

  • object permissions, Enterprise Chef
    • delete / Object permissions
    • grant / Object permissions
    • read / Object permissions
    • update / Object permissions
  • objects
    • about / What's an object and a class?
  • Ohai 6
    • and Ohai 7, comparing / Custom plugins
  • Ohai binary
    • running / Running the Ohai binary
    • options / Running the Ohai binary
    • configuration settings / Running the Ohai binary
  • Ohai plugins
    • defining / Ohai plugins
  • Ohai tool
    • about / Ohai
    • attributes / Ohai
  • Open Source Chef server
    • about / The Open Source Chef server
    • requests, requiring admin privileges / The Open Source Chef server
  • operators
    • about / Operators
    • AND / Operators
    • OR / Operators
    • NOT / Operators
  • operators, used for cookbook versioning
    • = / Operators available for use with versioning
    • > / Operators available for use with versioning
    • < / Operators available for use with versioning
    • >= / Operators available for use with versioning
    • <= / Operators available for use with versioning
    • ~> / Operators available for use with versioning
  • opscode-push-job-server/client
    • about / Extending Chef to bootstrap distributed systems
  • options, commands
    • about / Authentication of requests
  • override attribute
    • about / Role and environment attributes

P

  • package resource
    • about / The package resource
    • URL / The package resource
  • package resource, actions
    • $install / The package resource
    • $upgrade / The package resource
    • $remove / The package resource
    • $purge / The package resource
    • $reconfig / The package resource
  • package resource, attributes
    • allow_downgrade / The package resource
    • arch / The package resource
    • flush_cache / The package resource
    • options / The package resource
    • package_name / The package resource
    • source / The package resource
    • version / The package resource
    • gem_binary / The package resource
  • parallel gem
    • URL / A simple Knife plugin
  • partial templates
    • about / Partial templates, Partial templates
    • using / Partial templates
  • partial templates, options
    • $cookbook / Partial templates
    • $local / Partial templates
    • $source / Partial templates
    • $variables / Partial templates
  • patterns
    • about / Patterns
    • syntax / Syntax
    • exact matching / Exact matching
    • wildcard matching / Wildcard matching
    • range matching / Range matching
    • fuzzy matching / Fuzzy matching
  • plugins
    • knife-ssh plugin / The knife-ssh plugin
    • knife-ec2 plugin / The knife-ec2 plugin
    • knife-azure plugin / The knife-azure plugin
    • knife-google plugin / The knife-google plugin
    • knife-push plugin / The knife-push plugin
    • URL / The knife-push plugin
  • polymorphism
    • about / Classes and objects
  • proc attribute
    • about / Options
  • process identification number (PID)
    • about / A Chef run using chef-client
  • properties, Ruby files
    • name / Using Ruby DSL
    • description / Using Ruby DSL
    • cookbook_versions / Using Ruby DSL
    • default_attributes / Using Ruby DSL
    • override_attributes / Using Ruby DSL
  • provider DSL
    • converge_by method / Provider DSL
    • new_resource method / Provider DSL
    • action method / Provider DSL
    • current_resource method / Provider DSL
    • load_current_resource method / Provider DSL
    • updated_by_last_action method / Provider DSL
    • whyrun_supported? method / Provider DSL
  • push jobs
    • about / The knife-push plugin
    • components / The knife-push plugin
    • URL / The knife-push plugin
  • Pushy
    • about / Extending Chef to bootstrap distributed systems
  • pushy
    • URL / Running jobs from within recipes

R

  • recipe DSL methods
    • about / Recipe DSL methods
    • platform method / The platform method
    • platform_family method / The platform_family method
    • value_for_platform method / The value_for_platform method
    • value_for_platform_family method / The value_for_platform_family method
    • attribute method / The attribute method
    • resources method / The resources method
  • recipes
    • about / Recipes, Recipes
    • attributes / Attributes
    • including / Including recipes
    • writing, best practices / Best practices when writing recipes
    • data bag, using / Using the data bags in recipes
  • request authentication
    • defining / Authentication of requests
  • resources
    • about / Resources
    • guard attributes / Guard attributes
    • attributes, evaluating / Lazy evaluation of attributes
    • URL / Lazy evaluation of attributes
    • package resource / The package resource
    • cookbook_file resource / The cookbook_file resource
    • directory resource / The directory resource
    • file resource / The file resource
    • execute resource / The execute resource
    • cron resource / The cron resource
    • service resource / The service resource
    • bash resource / The bash resource
    • template resource / The template resource
  • resource template
    • URL / Partial templates
  • ridley
    • about / Ridley
    • URL / Ridley
  • role/environment attribute
    • about / Roles and environments
  • role attribute
    • defining / Role and environment attributes
  • role file
    • properties / Using Ruby DSL
  • roles
    • about / Managing roles
    • managing / Managing roles, Managing roles
    • new role, creating / Creating a new role
    • deleting / Deleting a role
    • editing / Editing a role
    • listing / Listing all available roles
    • information, displaying / Displaying information about a role
    • Knife, using / Using Knife
    • Ruby DSL, using / Using Ruby DSL
    • JSON file, using / Using a JSON file
    • Chef API, using / Using the Chef API
    • Chef Server WebUI, using / Using the Chef server WebUI
  • Ruby
    • about / Ruby
  • Ruby defined? operator
    • about / The Ruby defined? operator
  • Ruby DSL
    • using / Using Ruby DSL
    • benefits / Using Ruby DSL
  • Ruby files
    • properties / Using Ruby DSL
  • Ruby methods
    • about / Methods
    • blocks / Blocks
  • Ruby range operators
    • about / Ruby range operators
  • Ruby ternary operator
    • about / The Ruby ternary operator
  • run method / The run method
  • run_list
    • defining / The run_list

S

  • /search/INDEX endpoint
    • about / /search/INDEX
    • GET method / GET
    • POST method / POST
  • /search endpoint
    • about / /search
    • GET method / GET
  • search
    • about / Search
    • using, in recipes / Using search in recipes
  • search command
    • about / The search command
    • examples / The search command
  • search facility / Using the data bags in recipes
  • search functionality / Search inside a custom Knife plugin
  • semantic versioning
    • URL / Cookbook versioning
  • Sensu
    • URL / Using Chef in a dynamic environment such as the cloud
  • Serf
    • about / Extending Chef to bootstrap distributed systems
  • Serverspec
    • URL / Tools
    • about / Tools
  • service resource
    • about / The service resource
    • syntax / The service resource
    • providers / The service resource
    • URL / The service resource
  • service resource, actions
    • $enable / The service resource
    • $disable / The service resource
    • $start / The service resource
    • $stop / The service resource
    • $restart / The service resource
    • $reload / The service resource
  • service resource, attributes
    • init_command / The service resource
    • pattern / The service resource
    • priority / The service resource
    • reload_command / The service resource
    • stop_command / The service resource
    • start_command / The service resource
    • restart_command / The service resource
    • status_command / The service resource
    • supports / The service resource
    • service_name / The service resource
  • settings, attribute whitelisting
    • automatic_attribute_whitelist / Attribute whitelisting
    • default_attribute_whitelist / Attribute whitelisting
    • normal_attribute_whitelist / Attribute whitelisting
    • override_attribute_whitelist / Attribute whitelisting
  • sigil
    • about / Variables and types
  • skeleton, Knife plugin
    • require / The skeleton of a Knife plugin
    • module ModuleName / The skeleton of a Knife plugin
    • deps do / The skeleton of a Knife plugin
    • banner / The skeleton of a Knife plugin
    • option $name_of_option / The skeleton of a Knife plugin
    • def run / The skeleton of a Knife plugin
  • source code, Knife plugins
    • URL / Distributing plugins using gems
  • symbols
    • about / Symbols

T

  • TDD
    • about / Test-driven development with Chef
  • TDD practices
    • incorporating / Tools
  • template
    • using / Template resources and a template in action
  • template resource
    • about / The template resource
    • components / The template resource
    • syntax / The template resource
    • helper modules / Helper modules
    • partial templates / Partial templates
    • using / Template resources and a template in action
  • template resource, actions
    • $create / The template resource
    • $create_if_missing / The template resource
    • $delete / The template resource
    • $touch / The template resource
  • template resource, attributes
    • atomic_update / The template resource
    • backup / The template resource
    • cookbook / The template resource
    • force_unlink / The template resource
    • manage_symlink_source / The template resource
    • owner / The template resource
    • group / The template resource
    • mode / The template resource
    • path / The template resource
    • source / The template resource
    • variables / The template resource
    • helper / The template resource
    • helpers / The template resource
    • local / The template resource
  • templates
    • about / Templates
    • template resource, using / Template resources and a template in action
  • test, types
    • about / Types of tests
    • unit tests / Types of tests
    • integration tests / Types of tests
  • tests
    • using / What to use where
    • real-world scenario, simulating / How do we simulate a real-world scenario?
    • tools, using / Tools
    • Chef, using in Cloud / Using Chef in a dynamic environment such as the cloud

U

  • unit tests
    • about / Types of tests
  • unless statement
    • about / The unless statement
  • until loop
    • about / The until loop
  • user, fnichol
    • URL / Using the data bags in recipes

V

  • vagrant
    • URL / Setting up a work environment
  • Vagrant
    • URL / How do we simulate a real-world scenario?
  • variable name
    • about / Variables and types
  • variables
    • about / Variables and types

W

  • while loop
    • about / The while loop
  • whitelist attribute / Running jobs from within recipes
  • work environment
    • setting up / Setting up a work environment