Views: 649
source: https://gist.github.com/jtimberman/1718805
# Knife Configuration File. # # This is a Ruby DSL to set configuration parameters for Knife's # general options. The default location for this file is # ~/.chef/knife.rb. If multiple Chef repositories are used, # per-repository configuration files can be created. A per repository # configuration file must be .chef/knife.rb in the base directory of # the Chef repository. For example, # # ~/Development/chef-repo/.chef/knife.rb # # In some cases to improve clarity default values are specified, # uncommented. Other example values are commented out. To obtain a # plain configuration file without these comments, use grep; e.g.: # # egrep "^([a-z]|^#knife)" knife.rb # grep -E "^([a-z]|^#knife)" knife.rb # # As this file is interpreted Ruby, you can set local variables or use # Ruby's string interpolation (`#{}`). Some examples will do this. # # For more information on configuring Knife, see the knife(1) man # page, or the Chef Configuration Settings page on the Chef wiki. # # * http://wiki.opscode.com/display/chef/Knife # * http://wiki.opscode.com/display/chef/Chef+Configuration+Settings # ###################################################################### # In order to interact with a Chef Server, three configuration # settings are *required*, and you must change them. # # node_name # client_key # chef_server_url # # Identity to use for authenticating requests to the Chef # Server. Corresponds to the -u or --user command-line option. #node_name "username" node_name "" # Private key file to authenticate to the Chef Server. Corresponds to # the -k or --key command-line option. #client_key "#{File.dirname(__FILE__)}/username.pem" client_key "/etc/chef/client.pem" # URL of the Chef Server. Corresponses to the -s or --server-url # command-line option. #chef_server_url "https://api.opscode.com/organizations/ORG_SHORT_NAME" chef_server_url "http://localhost:4000" # End of required configuration for Chef Server interaction. ###################################################################### # Name of the API client used to validate new API clients. Used with # knife bootstrap. #validation_client_name "ORG_SHORT_NAME-validator" validation_client_name "chef-validator" # Private key file to authenticate when validating new API # clients. Used with knife bootstrap. #validation_key "#{File.dirname(__FILE__)}/ORG_SHORT_NAME-validator.pem" validation_key "/etc/chef/validation.pem" ###################################################################### # Location of the cookbooks directory. Typically in the Chef # Repository, e.g. ${HOME}/chef-repo/cookbooks. Corresponds to # the -o or --cookbook-path command-line option. Used with 'knife # cookbook upload' and 'knife cookbook create'. # # Modification is not required but strongly recommended. #cookbook_path [ "#{File.dirname(__FILE__)}/../cookbooks" ] cookbook_path [ "/var/chef/cookbooks" ] # Options used by 'knife cookbook create'. # # Specify the copyright holder listed as the maintainer in the # cookbook metadata and the copyright in comments of the generated # default recipe. #cookbook_copyright "Example, Com." cookbook_copyright "YOUR_COMPANY_NAME" # Specify the email of the cookbook maintainer used in the cookbook # metadata. #cookbook_email "you@example.com" cookbook_email "YOUR_EMAIL" # Specify the license that the cookbook is distributed under. Valid # values are: # # "none" - all rights reserved, do not redistribute. # "apachev2" - Apache Software License version 2.0. # "gplv2" - GNU General Public License version 2. # "gplv3" - GNU General Public License version 3. # "mit" - The MIT License. # cookbook_license "none" # Checksum caching options, used to configure 'moneta'. # # Knife caches the checksum of Ruby and ERB files when performing a cookbook syntax # check with 'knife cookbook test' or 'knife cookbook upload'. # # The type of cache to use. You probably won't need to change this. cache_type 'BasicFile' # Hash of options used for caching. For BasicFile, :path should be a # location where user running knife has write access. #cache_options({ :path => "#{ENV['HOME']}/.chef/checksums" }) cache_options({ :path => "/var/chef/cache/checksums", :skip_expires => true }) ###################################################################### # Knife specific configuration options. These are used by Core knife # commands and Opscode's Knife Plugin Gems and correspond to options # passed to the command. The default value is specified, modify and # uncomment as required. Gem sections are ordered by name, below. # # Some configuration options overlap with different knife plugins. The # option specified will be used as the default for all # plugins. However, the command-line options will override the setting # specified in this file. # Core: knife ssh # #knife[:ssh_port] = 22 # Core: knife bootstrap # # Default bootstrap template by distribution name. This is # also used in knife gems for bootstrapping cloud instances. #knife[:distro] = "ubuntu10.04-gems" # Default bootstrap template by full pathname to the template file. # knife[:template_file] = "" # Version of Chef to install during bootstrap. #knife[:bootstrap_version] = "" # HTTP proxy to use during bootstrap. #knife[:bootstrap_proxy] = "" ###################################################################### # Gem: knife-ec2 # # Authentication credentials for the AWS API. Specify the access key # ID and secret access key. #knife[:aws_access_key_id] = "" #knife[:aws_secret_access_key] = "" # Default flavor of server (m1.small, c1.medium, etc). #knife[:flavor] = "m1.small" # Default AMI identifier, e.g. ami-12345678 #knife[:image] = "" # AWS Region #knife[:region] = "us-east-1" # AWS Availability Zone. Must be in the same Region. #knife[:availability_zone] = "us-east-1b" # A file with EC2 User Data to provision the instance. #knife[:aws_user_data] = "" # AWS SSH Keypair. #knife[:aws_ssh_key_id] = "" ###################################################################### # Gem: knife-eucalyptus # # URL to the Eucalyptus API endpoint. #knife[:euca_api_endpoint] = "http://ecc.eucalyptus.com:8773/services/Eucalyptus" # Authentication credentials for the API. Specify the access key # ID and secret access key. #knife[:euca_access_key_id] = "" #knife[:euca_secret_access_key] = "" # Default flavor of server (m1.small, c1.medium, etc). Obtain a list # with: # knife euca flavor list #knife[:flavor] = "m1.small" # Default AMI identifier, e.g. ami-12345678. Obtain a list with: # knife euca image list #knife[:image] = "" # Eucalyptus region #knife[:region] = "" # Eucalyptus Availability Zone. Must be in the same Region. #knife[:availability_zone] = "" # Eucalyptus SSH Keypair. #knife[:euca_ssh_key_id] = "" ###################################################################### # Gem: knife-linode # # Linode API key. #knife[:linode_api_key] = "" # The flavor of server to create by default. Obtain a list with: # knife linode flavor list #knife[:linode_flavor] = 1 # The Linode image to use. Obtain a list with: # knife linode image list #knife[:linode_image] = 83 # The Linode kernel to use. Obtain a list with: # knife linode kernel list #knife[:linode_kernel] = 133 # The Linode data center to use. Obtain a list with: # knife linode datacenter list #knife[:linode_datacenter] = 3 # The default password to use when connecting via SSH. #knife[:linode_ssh_password] = "BarbaZ" ###################################################################### # Gem: knife-openstack # # URL for the OpenStack API. #knife[:openstack_api_endpoint] = "" # Authentication credentials for the API. Specify the access key # ID and secret access key. #knife[:openstack_access_key_id] = "" #knife[:openstack_secret_access_key] = "" # Default flavor of server (m1.small, c1.medium, etc). Obtain a list # with: # knife openstack flavor list #knife[:flavor] = "m1.small" # Default AMI identifier, e.g. ami-12345678. Obtain a list with: # knife openstack image list #knife[:image] = "" # OpenStack region #knife[:region] = "" # OpenStack Availability Zone. Must be in the same Region. #knife[:availability_zone] = "" # OpenStack SSH Keypair #knife[:openstack_ssh_key_id] = "" ###################################################################### # Gem: knife-rackspace # # URL for the Rackspace authentication API. #knife[:rackspace_api_auth_url] = "auth.api.rackspacecloud.com" # Authentication credentials for the API. Specify the API key and the # username. #knife[:rackspace_api_key] = "" #knife[:rackspace_api_username] = "" # JSON string of metadata hash supplied to the newly created server. #knife[:rackspace_metadata] = "" # Default flavor to use. Obtain a list with: # knife rackspace flavor list #knife[:flavor] = 2 # Default image to use. Obtain a list with: # knife rackspace image list #knife[:image] = "" # region #knife[:region] = "" ###################################################################### # Gem: knife-terremark # # Authentication credentials. Specify the Terremark service, username # and password. #knife[:terremark_service] = "" #knife[:terremark_username] = "" #knife[:terremark_password] = "" ###################################################################### # Gem: knife-windows # # User and password to authenticate to WinRM. #knife[:winrm_user] = "Administrator" #knife[:winrm_password] = "" # WinRM port. #knife[:winrm_port] = "5985" # The WinRM transport type. 'ssl' or 'plaintext'. #knife[:winrm_transport] = "plaintext" # The Certificate Authority (CA) trust file used for 'ssl' transport. #knife[:ca_trust_file] = "" # Authentication using Kerberos. Set the keytab, realm and service. #knife[:kerberos_keytab_file] = "" #knife[:kerberos_realm] = "" #knife[:kerberos_service] = "" # End of general configuration settings, knife core and gem # configuration. ###################################################################### # Uncomment the following to support "conf.d" style configuration # inclusion. Create the "conf.d" directory in the same location as # this knife.rb, and add configuration files with the .rb file # extension. The last filename in the glob wins, so be careful about # overriding settings from above. #confd = File.join(File.dirname(__FILE__), "conf.d", "*.rb") #Dir.glob(confd).each {|file| Chef::Config.from_file(file)}