91 lines
3.5 KiB
Markdown
91 lines
3.5 KiB
Markdown
|
---
|
||
|
layout: "docs"
|
||
|
page_title: "Provisioner: chef-client"
|
||
|
sidebar_current: "docs-provisioners-chef-client"
|
||
|
description: |-
|
||
|
The `chef-client` provisioner invokes a Chef Client run on a remote resource after first installing and configuring Chef Client on the remote resource. The `chef-client` provisioner supports both `ssh` and `winrm` type connections.
|
||
|
---
|
||
|
|
||
|
# chef Provisioner
|
||
|
|
||
|
The `chef-client` provisioner invokes a Chef Client run on a remote resource after first
|
||
|
installing and configuring Chef Client on the remote resource. The `chef-client` provisioner
|
||
|
supports both `ssh` and `winrm` type [connections](/docs/provisioners/connection.html).
|
||
|
|
||
|
## Example usage
|
||
|
|
||
|
```
|
||
|
# Start a initial chef run on a resource
|
||
|
resource "aws_instance" "web" {
|
||
|
...
|
||
|
provisioner "chef-client" {
|
||
|
attributes {
|
||
|
"key" = "value"
|
||
|
"app" {
|
||
|
"cluster1" {
|
||
|
"nodes" = ["webserver1", webserver2]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
environment = "_default"
|
||
|
run_list = ["cookbook::recipe"]
|
||
|
node_name = "webserver1"
|
||
|
server_url = "https://chef.company.com/organizations/org1"
|
||
|
validation_client_name = "chef-validator"
|
||
|
validation_key_path = "../chef-validator.pem"
|
||
|
version = "11.18.6"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## Argument Reference
|
||
|
|
||
|
The following arguments are supported:
|
||
|
|
||
|
* `attributes (hash)` - (Optional) A hash with initial node attributes for the new node.
|
||
|
See example.
|
||
|
|
||
|
* `environment (string)` - (Optional) The Chef environment the new node will be joining
|
||
|
(defaults `_default`).
|
||
|
|
||
|
* `log_to_file (boolean)` - (Optional) If true, the output of the initial Chef Client run
|
||
|
will be logged to a local file instead of the console. The file will be created in a
|
||
|
subdirectory called `logfiles` created in your current directory. The filename will be
|
||
|
the `node_name` of the new node.
|
||
|
|
||
|
* `http_proxy (string)` - (Optional) The proxy server for Chef Client HTTP connections.
|
||
|
|
||
|
* `https_proxy (string)` - (Optional) The proxy server for Chef Client HTTPS connections.
|
||
|
|
||
|
* `no_proxy (array)` - (Optional) A list of URLs that should bypass the proxy.
|
||
|
|
||
|
* `node_name (string)` - (Required) The name of the node to register with the Chef Server.
|
||
|
|
||
|
* `prevent_sudo (boolean)` - (Optional) Prevent the use of sudo while installing, configuring
|
||
|
and running the initial Chef Client run. This option is only used with `ssh` type
|
||
|
[connections](/docs/provisioners/connection.html).
|
||
|
|
||
|
* `run_list (array)` - (Required) A list with recipes that will be invoked during the initial
|
||
|
Chef Client run. The run-list will also be saved to the Chef Server after a successful
|
||
|
initial run.
|
||
|
|
||
|
* `server_url (string)` - (Required) The URL to the Chef server. This includes the path to
|
||
|
the organization. See the example.
|
||
|
|
||
|
* `skip_install (boolean)` - (Optional) Skip the installation of Chef Client on the remote
|
||
|
machine. This assumes Chef Client is already installed when you run the `chef-client`
|
||
|
provisioner.
|
||
|
|
||
|
* `ssl_verify_mode (string)` - (Optional) Use to set the verify mode for Chef Client HTTPS
|
||
|
requests.
|
||
|
|
||
|
* `validation_client_name (string)` - (Required) The name of the validation client to use
|
||
|
for the initial communication with the Chef Server.
|
||
|
|
||
|
* `validation_key_path (string)` - (Required) The path to the validation key that is needed
|
||
|
by the node to register itself with the Chef Server. The key will be uploaded to the remote
|
||
|
machine.
|
||
|
|
||
|
* `version (string)` - (Optional) The Chef Client version to install on the remote machine.
|
||
|
If not set the latest available version will be installed.
|