diff --git a/website/docs/commands/console.html.markdown b/website/docs/commands/console.html.markdown
index e8e7778e8..976f36cbe 100644
--- a/website/docs/commands/console.html.markdown
+++ b/website/docs/commands/console.html.markdown
@@ -3,47 +3,48 @@ layout: "docs"
page_title: "Command: console"
sidebar_current: "docs-commands-console"
description: |-
- The `terraform console` command creates an interactive console for using [interpolations](/docs/configuration/interpolation.html).
+ The `terraform console` command provides an interactive console for
+ evaluting expressions.
---
# Command: console
-The `terraform console` command creates an interactive console for
-using [interpolations](/docs/configuration/interpolation.html).
+The `terraform console` command provides an interactive console for
+evaluating [expressions](/docs/configuration/expressions.html).
## Usage
Usage: `terraform console [options] [dir]`
-This opens an interactive console for experimenting with interpolations.
-This is useful for testing interpolations before using them in configurations
-as well as interacting with an existing [state](/docs/state/index.html).
+This command provides an interative command-line console for evaluating and
+experimenting with [expressions](/docs/configuration/expressions.html).
+This is useful for testing interpolations before using them in configurations,
+and for interacting with any values currently saved in
+[state](/docs/state/index.html).
-If a state file doesn't exist, the console still works and can be used
-to experiment with supported interpolation functions. Try entering some basic
-math such as `1 + 5` to see.
+If the current state is empty or has not yet been created, the console can be
+used to experiment with the expression syntax and
+[built-in functions](/docs/configuration/functions.html).
-The `dir` argument can be used to open a console for a specific Terraform
-configuration directory. This will load any state from that directory as
-well as the configuration. This defaults to the current working directory.
-The `console` command does not require Terraform state or configuration
-to function.
+The `dir` argument specifies the directory of the root module to use.
+If a path is not specified, the current working directory is used.
-The command-line flags are all optional. The list of available flags are:
+The supported options are:
-* `-state=path` - Path to the state file. Defaults to `terraform.tfstate`.
- A state file doesn't need to exist.
+* `-state=path` - Path to a local state file. Expressions will be evaluated
+ using values from this state file. If not specified, the state associated
+ with the current [workspace](/docs/state/workspaces.html) is used.
-You can close the console with the `exit` command or by using Control-C
+You can close the console with the `exit` command or by pressing Control-C
or Control-D.
## Scripting
The `terraform console` command can be used in non-interactive scripts
by piping newline-separated commands to it. Only the output from the
-final command is outputted unless an error occurs earlier.
+final command is printed unless an error occurs earlier.
-An example is shown below:
+For example:
```shell
$ echo "1 + 5" | terraform console
@@ -52,14 +53,6 @@ $ echo "1 + 5" | terraform console
## Remote State
-The `terraform console` command will read configured state even if it
-is [remote](/docs/state/remote.html). This is great for scripting
-state reading in CI environments or other remote scenarios.
-
-After configuring remote state, run a `terraform remote pull` command
-to sync state locally. The `terraform console` command will use this
-state for operations.
-
-Because the console currently isn't able to modify state in any way,
-this is a one way operation and you don't need to worry about remote
-state conflicts in any way.
+If [remote state](/docs/state/remote.html) is used by the current backend,
+Terraform will read the state for the current workspace from the backend
+before evaluating any expressions.
diff --git a/website/docs/modules/create.html.markdown b/website/docs/modules/create.html.markdown
index 8ec4e1ffa..bb0ed39bf 100644
--- a/website/docs/modules/create.html.markdown
+++ b/website/docs/modules/create.html.markdown
@@ -72,7 +72,7 @@ If you now run `terraform apply`, you see how this works.
It is sometimes useful to embed files within the module that aren't Terraform configuration files, such as a script to provision a resource or a file to upload.
-In these cases, you can't use a relative path, since paths in Terraform are generally relative to the working directory from which Terraform was executed. Instead, you want to use a module-relative path. To do this, you should use the [path interpolated variables](/docs/configuration/interpolation.html).
+In these cases, you can't use a relative path, since paths in Terraform are generally relative to the working directory from which Terraform was executed. Instead, use a module-relative path, by interpolating `path.module`:
```hcl
resource "aws_instance" "server" {
@@ -84,8 +84,6 @@ resource "aws_instance" "server" {
}
```
-Here we use `${path.module}` to get a module-relative path.
-
## Nested Modules
You can nest a module within another module. This module will be hidden from your root configuration, so you'll have to re-expose any
@@ -118,13 +116,13 @@ standard structure.
* **README**. The root module and any nested modules should have README
files. This file should be named `README` or `README.md`. The latter will
- be treated as markdown. There should be a description of the module and
+ be treated as markdown. There should be a description of the module and
what it should be used for. If you want to include an example for how this
module can be used in combination with other resources, put it in an [examples
directory like this](https://github.com/hashicorp/terraform-aws-consul/tree/master/examples).
- Consider including a visual diagram depicting the infrastructure resources
- the module may create and their relationship. The README doesn't need to
- document inputs or outputs of the module because tooling will automatically
+ Consider including a visual diagram depicting the infrastructure resources
+ the module may create and their relationship. The README doesn't need to
+ document inputs or outputs of the module because tooling will automatically
generate this. If you are linking to a file or embedding an image contained
in the repository itself, use a commit-specific absolute URL so the link won't
point to the wrong version of a resource in the future.
diff --git a/website/docs/provisioners/chef.html.markdown b/website/docs/provisioners/chef.html.markdown
index 7ce2267ff..664049195 100644
--- a/website/docs/provisioners/chef.html.markdown
+++ b/website/docs/provisioners/chef.html.markdown
@@ -16,8 +16,8 @@ resource. The `chef` provisioner supports both `ssh` and `winrm` type
The `chef` provisioner has some prerequisites for specific connection types:
-- For `ssh` type connections, `cURL` must be available on the remote host.
-- For `winrm` connections, `PowerShell 2.0` must be available on the remote host.
+* For `ssh` type connections, `cURL` must be available on the remote host.
+* For `winrm` connections, `PowerShell 2.0` must be available on the remote host.
Without these prerequisites, your provisioning execution will fail.
@@ -62,8 +62,8 @@ resource "aws_instance" "web" {
The following arguments are supported:
* `attributes_json (string)` - (Optional) A raw JSON string with initial node attributes
- for the new node. These can also be loaded from a file on disk using the [`file()`
- interpolation function](/docs/configuration/interpolation.html#file_path_).
+ for the new node. These can also be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html).
* `channel (string)` - (Optional) The Chef Client release channel to install from. If not
set, the `stable` channel will be used.
@@ -131,8 +131,8 @@ The following arguments are supported:
* `secret_key (string)` - (Optional) The contents of the secret key that is used
by the Chef Client to decrypt data bags on the Chef Server. The key will be uploaded to the remote
- machine. This can also be loaded from a file on disk using the [`file()` interpolation
- function](/docs/configuration/interpolation.html#file_path_).
+ machine. This can also be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html).
* `server_url (string)` - (Required) The URL to the Chef server. This includes the path to
the organization. See the example.
@@ -153,12 +153,12 @@ The following arguments are supported:
the new Chef Client and optionally configure Chef Vaults.
* `user_key (string)` - (Required) The contents of the user key that will be used to
- authenticate with the Chef Server. This can also be loaded from a file on disk using the [`file()`
- interpolation function](/docs/configuration/interpolation.html#file_path_).
+ authenticate with the Chef Server. This can also be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html).
* `vault_json (string)` - (Optional) A raw JSON string with Chef Vaults and Items to which the new node
- should have access. These can also be loaded from a file on disk using the
- [`file()` interpolation function](/docs/configuration/interpolation.html#file_path_).
+ should have access. These can also be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html).
* `version (string)` - (Optional) The Chef Client version to install on the remote machine.
If not set, the latest available version will be installed.
diff --git a/website/docs/provisioners/connection.html.markdown b/website/docs/provisioners/connection.html.markdown
index b86b2fea4..d983a8545 100644
--- a/website/docs/provisioners/connection.html.markdown
+++ b/website/docs/provisioners/connection.html.markdown
@@ -73,8 +73,8 @@ provisioner "file" {
**Additional arguments only supported by the `ssh` connection type:**
* `private_key` - The contents of an SSH key to use for the connection. These can
- be loaded from a file on disk using the [`file()` interpolation
- function](/docs/configuration/interpolation.html#file_path_). This takes
+ be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html). This takes
preference over the password if provided.
* `agent` - Set to `false` to disable using `ssh-agent` to authenticate. On Windows the
@@ -97,6 +97,7 @@ provisioner "file" {
* `cacert` - The CA certificate to validate against.
+
## Connecting through a Bastion Host with SSH
The `ssh` connection also supports the following fields to facilitate connnections via a
@@ -118,6 +119,6 @@ The `ssh` connection also supports the following fields to facilitate connnectio
Defaults to the value of the `password` field.
* `bastion_private_key` - The contents of an SSH key file to use for the bastion
- host. These can be loaded from a file on disk using the [`file()`
- interpolation function](/docs/configuration/interpolation.html#file_path_).
+ host. These can be loaded from a file on disk using
+ [the `file` function](/docs/configuration/functions/file.html).
Defaults to the value of the `private_key` field.