chef_stack

Chef stack is a library cookbook that provides custom resources to build and manage your Chef infrastructure.

An accompanying project, Chef-Services exists as an example implementation of Chef Stack.

Custom Resources

Below are the custom resources provided by this cookbook.

General Properties

These properties exist for all resources

Name Type Default Value Description
name String N/A A name for the resource
channel Symbol stable The channel from our package repository to install. Most of the time you want stable.
version [String, Symbol] latest The version of Automate you want to install
config String N/A The configuration that will be written to the appropriate configuration file for the product.
accept_license [TrueClass, FalseClass] false Do you accept Chef's license agreements.
platform String Auto-detected Use only if you need to over-ride the default platform.
platform_version String Auto-detected Use only if you need to over-ride the default platform.

chef_automate

Installs Chef Automate.

Properties

Name Type Default Value Description
enterprise [String, Array] chef The Enterprise to create in Automate
license String N/A Your license file
chef_user String workflow The user you will connect to the Chef server as
chef_user_pem String N/A The private key of the above Chef user
validation_pem String N/A The validator key of the Chef org we're connecting to
builder_pem String N/A The private key of the build nodes

chef_backend

Properties

Name Type Default Value Description
bootstrap_node String N/A The node we'll bootstrap secrets with.
publish_address String node['ipaddress'] The address you want Chef-Backend to listen on.
chef_backend_secrets String nil A location where your secrets are

chef_org

Properties

Name Type Default Value Description
org String N/A The short name of the org.
org_full_name String node['ipaddress'] The full name of the org you want to create.
admins Array N/A An array of admins for the org.
users Array [] An array of users for the org.
remove_users Array [] An array of users to remove from the org.
key_path String N/A Where to store the validator key that is created with the org.

chef_user

Name Type Default Value Description
username String N/A The username of the user.
first_name String N/A The first name of the user.
last_name Array N/A The last name of the user.
email Array [] N/A
password Array [] The users password.
key_path String N/A Where to store the users private key that is created with the user.
serveradmin [TrueClass, FalseClass] F Is the user a serveradmin?

chef_client

Name Type Default Value Description
node_name String true The name of the node.
version [String, Symbol] latest The version of chef-client to install.
chefdk [TrueClass, FalseClass] false Do you want to install chefdk?
chef_server_url [String, Symbol] local What is hte Chef server URL to connect to.
ssl_verify [TrueClass, FalseClass] true Validate ssl certificates?
log_location String 'STDOUT' Where to log.
log_level Symbol auto Log level.
config String Any configuration for client.rb.
run_list Array The clients runlist.
environment String Which Chef Environment the client belongs to.
validation_pem String The validation pem to validate with.
validation_client_name String The validation client name.
tags [String, Array] '' Any tags for the node.
interval Integer 1800 The interval to run chef-client on.
splay Integer 1800 The randomization to add to the interval.
data_collector_token String '93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cbd1c506' The data collector token to talk to Visibility.
data_collector_url String The Visibility URL to send data.

chef_file

Name Type Default Value Description
filename String The name of the resource.
source String The source of the file.
user String default 'root' The owner of the file.
group String default 'root' The group owner of the file.
mode String default '0600' The mode for the file.

chef_server

Name Type Default Value Description
addons Hash A set of addons to install with the Chef Server.
data_collector_token String default '93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cbd1c506' The data collector token to authenticate with Chef Visiblity.
data_collector_url String The URL to connect to Visibility.

chef_supermarket

Name Type Default Value Description
chef_server_url String Chef::Config['chef_server_url'] The Chef server's URL.
chef_oauth2_app_id String The oauth2 app id from the Chef server.
chef_oauth2_secret String The oauth2 secret from the Chef server.
chef_oauth2_verify_ssl [TrueClass, FalseClass] true Whether to validate SSL certificates.

workflow_builder

Name Type Default Value Description
pj_version [String, Symbol] :latest The version of Push-Jobs to install.
chef_user String 'workflow' The Chef user to authenticate with the Chef Server.
chef_user_pem String The private key of the Chef user to authenticate with the Chef Server.
builder_pem String The builder users private key to communicate with Chef Automate.
chef_fqdn String URI.parse(Chef::Config['chef_server_url']).host The FQDN of the Chef server.
automate_fqdn String
supermarket_fqdn String The FQDN of the Supermarket server.
job_dispatch_version String 'v2' Which job dispatch version to use. V1 is push-jobs, V2 is SSH runners.
automate_user String 'admin' What is the Automate user we're connecting to Automate as.
automate_password String The password for the user above.
automate_enterprise String 'chef' The Enterprise to connect to.
chef_config_path String '/etc/chef/client.rb' The config path for chef-client.