github.com/profects/terraform@v0.9.0-beta1.0.20170227135739-92d4809db30d/website/source/upgrade-guides/0-9.html.markdown (about)

     1  ---
     2  layout: "downloads"
     3  page_title: "Upgrading to Terraform 0.9"
     4  sidebar_current: "upgrade-guides-0-9"
     5  description: |-
     6    Upgrading to Terraform v0.9
     7  ---
     8  
     9  # Upgrading to Terraform v0.9
    10  
    11  Terraform v0.9 is a major release and thus includes some changes that
    12  you'll need to consider when upgrading. This guide is meant to help with
    13  that process.
    14  
    15  The goal of this guide is to cover the most common upgrade concerns and
    16  issues that would benefit from more explanation and background. The exhaustive
    17  list of changes will always be the
    18  [Terraform Changelog](https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md).
    19  After reviewing this guide, we recommend reviewing the Changelog to check on
    20  specific notes about the resources and providers you use.
    21  
    22  ## Remote State
    23  
    24  Remote state has been overhauled to be easier and safer to configure and use.
    25  **The new changes are backwards compatible** with existing remote state and
    26  you'll be prompted to migrate to the new remote backend system.
    27  
    28  For extra safety when upgrading, you may backup your existing remote state
    29  by running `terraform remote pull` with 0.8.x and saving your
    30  `.terraform/terraform.tfstate` file somewhere safe. You must do this prior
    31  to upgrading to Terraform 0.9.
    32  
    33  The only non-backwards compatible change is in the CLI: the existing
    34  `terraform remote config` command is now gone. Remote state is now configured
    35  via the "backend" section within the Terraform configuration itself.
    36  
    37  **Example configuring a Consul remote backend:**
    38  
    39  ```
    40  terraform {
    41    backend "consul" {
    42      address    = "demo.consul.io"
    43      datacenter = "nyc3"
    44      path       = "tfdemo"
    45    }
    46  }
    47  ```
    48  
    49  **Action:** Run `terraform init` to migrate your existing remote state.
    50  Update any scripts or guides that may have used `terraform remote config`
    51  to use the new file-based configuration.
    52  
    53  ## State Locking
    54  
    55  Terraform 0.9 now will acquire a lock for your state if your backend
    56  supports it. **This change is backwards compatible**, but may require
    57  enhanced permissions for the authentication used with your backend.
    58  
    59  Backends that support locking as of the 0.9.0 release are: local files,
    60  Amazon S3, HashiCorp Consul, and Terraform Enterprise (atlas). If you don't
    61  use these backends, you can ignore this section.
    62  
    63  Specific notes for each affected backend:
    64  
    65    * **Amazon S3**: DynamoDB is used for locking. The AWS access keys
    66      must have access to Dynamo. You may disable locking by specifying
    67  	`lock = false` in your backend configuration.
    68  
    69    * **HashiCorp Consul**: Sessions are used for locking. If an auth token
    70      is used it must have permissions to create and destroy sessions. You
    71  	may disable locking by specifying `lock = false` in your backend
    72  	configuration.
    73  
    74  **Action:** Update your credentials or configuration if necessary.