|
| 1 | +# chef_stack |
| 2 | + |
| 3 | +Chef stack is a library cookbook that provides custom resources to build and manage your Chef infrastructure. |
| 4 | + |
| 5 | +An accompanying project, [Chef-Services](https//github.com/stephenlauck/chef-services) exists as an example implementation of Chef Stack. |
| 6 | + |
| 7 | +## Custom Resources |
| 8 | + |
| 9 | +Below are the custom resources provided by this cookbook. |
| 10 | + |
| 11 | +### General Properties |
| 12 | + |
| 13 | +These properties exist for all resources |
| 14 | + |
| 15 | +| Name | Type | Default Value | Description | |
| 16 | +|---|---|---|---| |
| 17 | +| name | String | N/A | A name for the resource | |
| 18 | +| channel | Symbol | stable | The channel from our package repository to install. Most of the time you want stable. | |
| 19 | +| version | [String, Symbol] | latest | The version of Automate you want to install | |
| 20 | +| config | String | N/A | The configuration that will be written to the appropriate configuration file for the product. | |
| 21 | +| accept_license | [TrueClass, FalseClass] | false | Do you accept Chef's license agreements. | |
| 22 | +| platform | String | Auto-detected | Use only if you need to over-ride the default platform. | |
| 23 | +| platform_version | String | Auto-detected | Use only if you need to over-ride the default platform. | |
| 24 | + |
| 25 | + |
| 26 | +### chef_automate |
| 27 | + |
| 28 | +Installs Chef Automate. |
| 29 | + |
| 30 | +#### Properties |
| 31 | +| Name | Type | Default Value | Description | |
| 32 | +|---|---|---|---| |
| 33 | +| enterprise | [String, Array] | chef | The Enterprise to create in Automate| |
| 34 | +| license | String | N/A | Your license file | we recommend using the chef_file resource | |
| 35 | +| chef_user | String | workflow | The user you will connect to the Chef server as | |
| 36 | +| chef_user_pem | String | N/A | The private key of the above Chef user | |
| 37 | +| validation_pem | String | N/A | The validator key of the Chef org we're connecting to | |
| 38 | +| builder_pem | String | N/A | The private key of the build nodes | |
| 39 | + |
| 40 | +### chef_backend |
| 41 | + |
| 42 | +#### Properties |
| 43 | + |
| 44 | +| Name | Type | Default Value | Description | |
| 45 | +|---|---|---|---| |
| 46 | +| bootstrap_node | String | N/A | The node we'll bootstrap secrets with. | |
| 47 | +| publish_address | String | node['ipaddress'] | The address you want Chef-Backend to listen on. | |
| 48 | +| chef_backend_secrets | String | nil | A location where your secrets are | we recommend using the chef_file resource. | |
| 49 | + |
| 50 | +### chef_org |
| 51 | + |
| 52 | +#### Properties |
| 53 | + |
| 54 | + |
| 55 | +| Name | Type | Default Value | Description | |
| 56 | +|---|---|---|---| |
| 57 | +| org | String | N/A | The short name of the org. | |
| 58 | +| org_full_name | String | node['ipaddress'] | The full name of the org you want to create. | |
| 59 | +| admins | Array | N/A | An array of admins for the org. | |
| 60 | +| users | Array | [] | An array of users for the org. | |
| 61 | +| remove_users | Array | [] | An array of users to remove from the org. | |
| 62 | +| key_path | String | N/A | Where to store the validator key that is created with the org. | |
| 63 | + |
| 64 | +### chef_user |
| 65 | + |
| 66 | +| Name | Type | Default Value | Description | |
| 67 | +|---|---|---|---| |
| 68 | +| username | String | N/A | The username of the user. | |
| 69 | +| first_name | String | N/A | The first name of the user. | |
| 70 | +| last_name | Array | N/A | The last name of the user. | |
| 71 | +| email | Array | [] | N/A | The users e-mail. | |
| 72 | +| password | Array | [] | The users password. | |
| 73 | +| key_path | String | N/A | Where to store the users private key that is created with the user. | |
| 74 | +| serveradmin | [TrueClass, FalseClass] | F | Is the user a serveradmin? | |
| 75 | + |
| 76 | +### chef_client |
| 77 | +| Name | Type | Default Value | Description | |
| 78 | +|---|---|---|---| |
| 79 | +| node_name | String | true | The name of the node. | |
| 80 | +| version | [String, Symbol] | latest | The version of chef-client to install. | |
| 81 | +| chefdk | [TrueClass, FalseClass] | false | Do you want to install chefdk? | |
| 82 | +| chef_server_url | [String, Symbol] | local | What is hte Chef server URL to connect to. | |
| 83 | +| ssl_verify | [TrueClass, FalseClass] | true | Validate ssl certificates? | |
| 84 | +| log_location | String | 'STDOUT' | Where to log. | |
| 85 | +| log_level | Symbol | auto | Log level. | |
| 86 | +| config | String | | Any configuration for client.rb. | |
| 87 | +| run_list | Array | | The clients runlist. | |
| 88 | +| environment | String | | Which Chef Environment the client belongs to. | |
| 89 | +| validation_pem | String | | The validation pem to validate with. | |
| 90 | +| validation_client_name | String | | The validation client name. | |
| 91 | +| tags | [String, Array] | '' | Any tags for the node. | |
| 92 | +| interval | Integer | 1800 | The interval to run chef-client on. | |
| 93 | +| splay | Integer | 1800 | The randomization to add to the interval. | |
| 94 | +| data_collector_token | String | '93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cbd1c506' | The data collector token to talk to Visibility. | |
| 95 | +| data_collector_url | String | | The Visibility URL to send data. | |
| 96 | + |
| 97 | +### chef_file |
| 98 | + |
| 99 | + |
| 100 | +| Name | Type | Default Value | Description | |
| 101 | +|---|---|---|---| |
| 102 | +| filename | String | | The name of the resource. | |
| 103 | +| source | String | | The source of the file. | |
| 104 | +| user | String | default 'root' | The owner of the file. | |
| 105 | +| group | String | default 'root' | The group owner of the file. | |
| 106 | +| mode | String | default '0600' | The mode for the file. | |
| 107 | + |
| 108 | +### chef_server |
| 109 | + |
| 110 | +| Name | Type | Default Value | Description | |
| 111 | +|---|---|---|---| |
| 112 | +| addons | Hash | | A set of addons to install with the Chef Server. | |
| 113 | +| data_collector_token | String | default '93a49a4f2482c64126f7b6015e6b0f30284287ee4054ff8807fb63d9cbd1c506' | The data collector token to authenticate with Chef Visiblity. | |
| 114 | +| data_collector_url | String | | The URL to connect to Visibility. | |
| 115 | + |
| 116 | +### chef_supermarket |
| 117 | + |
| 118 | +| Name | Type | Default Value | Description | |
| 119 | +|---|---|---|---| |
| 120 | +| chef_server_url | String | Chef::Config['chef_server_url'] | The Chef server's URL. | |
| 121 | +| chef_oauth2_app_id | String | | The oauth2 app id from the Chef server. | |
| 122 | +| chef_oauth2_secret | String | | The oauth2 secret from the Chef server. | |
| 123 | +| chef_oauth2_verify_ssl | [TrueClass, FalseClass] | true | Whether to validate SSL certificates. | |
| 124 | + |
| 125 | +### workflow_builder |
| 126 | + |
| 127 | +| Name | Type | Default Value | Description | |
| 128 | +|---|---|---|---| |
| 129 | +| pj_version | [String, Symbol] | :latest | The version of Push-Jobs to install. | |
| 130 | +| chef_user | String | 'workflow' | The Chef user to authenticate with the Chef Server. | |
| 131 | +| chef_user_pem | String | | The private key of the Chef user to authenticate with the Chef Server. | |
| 132 | +| builder_pem | String | | The builder users private key to communicate with Chef Automate. | |
| 133 | +| chef_fqdn | String | URI.parse(Chef::Config['chef_server_url']).host | The FQDN of the Chef server. | |
| 134 | +| automate_fqdn | String | | | The FQDN of the automate server. | |
| 135 | +| supermarket_fqdn | String | | The FQDN of the Supermarket server. | |
| 136 | +| job_dispatch_version | String | 'v2' | Which job dispatch version to use. V1 is push-jobs, V2 is SSH runners. | |
| 137 | +| automate_user | String | 'admin' | What is the Automate user we're connecting to Automate as. | |
| 138 | +| automate_password | String | | The password for the user above. | |
| 139 | +| automate_enterprise | String | 'chef' | The Enterprise to connect to. | |
| 140 | +| chef_config_path | String | '/etc/chef/client.rb' | The config path for chef-client. | |
| 141 | + |
| 142 | +## Contributers |
0 commit comments