2017-03-16 20:42:33 +01:00
|
|
|
---
|
2017-04-03 19:53:38 +02:00
|
|
|
layout: "enterprise"
|
2017-04-07 06:00:59 +02:00
|
|
|
page_title: "Resolving Conflicts - State - Terraform Enterprise"
|
2017-03-17 21:55:31 +01:00
|
|
|
sidebar_current: "docs-enterprise-state-resolving"
|
|
|
|
description: |-
|
|
|
|
Resolving conflicts with remote states.
|
2017-03-16 20:42:33 +01:00
|
|
|
---
|
|
|
|
|
2017-03-17 21:55:31 +01:00
|
|
|
# Resolving Conflicts in Remote States
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
Resolving state conflicts can be time consuming and error prone, so it's
|
|
|
|
important to approach it carefully.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
There are several tools provided by Terraform Enterprise to help resolve
|
|
|
|
conflicts and fix remote state issues. First, you can navigate between state
|
|
|
|
versions in the changes view of your environment (after toggling on the remote
|
|
|
|
state checkbox) and view plain-text differences between versions.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
This allows you to pinpoint where things may have gone wrong and make a educated
|
|
|
|
decision about resolving the conflict.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
|
|
|
### Rolling Back to a Specific State Version
|
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
The rollback feature allows you to choose a new version to set as the "Head"
|
|
|
|
version of the state. Rolling back to a version means it will then return that
|
|
|
|
state upon request from a client. It will not increment the serial in the state,
|
|
|
|
but perform a hard rollback to the exact version of the state provided.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
This allows you to reset the state to an older version, essentially forgetting
|
|
|
|
changes made in versions after that point.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
To roll back to a specific version, navigate to it in the changes view and use
|
|
|
|
the rollback link. You'll need to confirm the version number to perform the
|
|
|
|
operation.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
|
|
|
### Using Terraform Locally
|
|
|
|
|
2017-04-27 00:50:15 +02:00
|
|
|
Another way to resolve remote state conflicts is by manual intervention of the
|
|
|
|
state file.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-27 00:50:15 +02:00
|
|
|
Use the [`state pull`](/docs/commands/state/pull.html) subcommand to pull the
|
|
|
|
remote state into a local state file.
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-27 00:50:15 +02:00
|
|
|
```shell
|
|
|
|
$ terraform state pull > example.tfstate
|
2017-04-07 06:00:59 +02:00
|
|
|
```
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
Once a conflict has been resolved locally by editing the state file, the serial
|
2017-04-27 00:50:15 +02:00
|
|
|
can be incremented past the current version and pushed with the
|
|
|
|
[`state push`](/docs/commands/state/push.html) subcommand:
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
```shell
|
2017-04-27 00:50:15 +02:00
|
|
|
$ terraform state push example.tfstate
|
2017-04-07 06:00:59 +02:00
|
|
|
```
|
2017-03-16 20:42:33 +01:00
|
|
|
|
2017-04-07 06:00:59 +02:00
|
|
|
This will upload the manually resolved state and set it as the head version.
|