Chef Provider

Chef is a systems and cloud infrastructure automation framework. The Chef provider allows Terraform to manage various resources that exist within Chef Server.

Use the navigation to the left to read about the available resources.

Example Usage

# Configure the Chef provider
provider "chef" {
     server_url = ""

     // You can set up a "Client" within the Chef Server management console.
     client_name = "terraform"
     private_key_pem = "${file(\"chef-terraform.pem\")}"

# Create a Chef Environment
resource "chef_environment" "production" {
    name = "production"

# Create a Chef Role
resource "chef_role" "app_server" {
    name = "app_server"
    run_list = [

Argument Reference

The following arguments are supported:

  • server_url - (Required) The HTTP(S) API URL of the Chef server to use. If the target Chef server supports organizations, use the full URL of the organization you wish to configure. May be provided instead via the CHEF_SERVER_URL environment variable.
  • client_name - (Required) The name of the client account to use when making requests. This must have been already configured on the Chef server. May be provided instead via the CHEF_CLIENT_NAME environment variable.
  • private_key_pem - (Required) The PEM-formatted private key belonging to the configured client. This is issued by the server when a new client object is created. May be provided instead in a file whose path is in the CHEF_PRIVATE_KEY_FILE environment variable.
  • allow_unverified_ssl - (Optional) Boolean indicating whether to make requests to a Chef server whose SSL certicate cannot be verified. Defaults to false.