github.com/jmbataller/terraform@v0.6.8-0.20151125192640-b7a12e3a580c/website/source/intro/getting-started/remote.html.markdown (about) 1 --- 2 layout: "intro" 3 page_title: "Terraform Remote" 4 sidebar_current: "gettingstarted-remote" 5 description: |- 6 We've now seen how to build, change, and destroy infrastructure from a local machine. However, you can use Atlas by HashiCorp to run Terraform remotely to version and audit the history of your infrastructure. 7 --- 8 9 # Why Use Terraform Remotely? 10 We've now seen how to build, change, and destroy infrastructure 11 from a local machine. This is great for testing and development, 12 however in production environments it is more responsible to run 13 Terraform remotely and store a master Terraform state remotely. 14 15 [Atlas](https://atlas.hashicorp.com/?utm_source=oss&utm_medium=getting-started&utm_campaign=terraform) 16 is HashiCorp's solution for Terraform remote runs and 17 infrastructure version control. Running Terraform 18 in Atlas allows teams to easily version, audit, and collaborate 19 on infrastructure changes. Each proposed change generates 20 a Terraform plan which can be reviewed and collaborated on as a team. 21 When a proposed change is accepted, the Terraform logs are stored 22 in Atlas, resulting in a linear history of infrastructure states to 23 help with auditing and policy enforcement. Additional benefits to 24 running Terraform remotely include moving access 25 credentials off of developer machines and releasing local machines 26 from long-running Terraform processes. 27 28 # How to Use Terraform Remotely 29 You can learn how to use Terraform remotely with our [interactive tutorial](https://atlas.hashicorp.com/tutorial/terraform/?utm_source=oss&utm_medium=getting-started&utm_campaign=terraform) 30 or you can follow the outlined steps below. 31 32 First, configure [Terraform remote state storage](/docs/commands/remote.html) 33 with the command: 34 35 ``` 36 $ terraform remote config -backend-config="name=ATLAS_USERNAME/getting-started" 37 ``` 38 39 Replace `ATLAS_USERNAME` with your Atlas username. If you don't have one, you can 40 [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=getting-started&utm_campaign=terraform). 41 42 Next, [push](/docs/commands/push.html) your Terraform configuration to Atlas with: 43 44 ``` 45 $ terraform push -name="ATLAS_USERNAME/getting-started" 46 ``` 47 48 This will automatically trigger a `terraform plan`, which you can 49 review in the [Environments tab in Atlas](https://atlas.hashicorp.com/environments). 50 If the plan looks correct, hit "Confirm & Apply" to execute the 51 infrastructure changes. 52 53 # Version Control for Infrastructure 54 Running Terraform in Atlas creates a complete history of 55 infrastructure changes, a sort of version control 56 for infrastructure. Similar to application version control 57 systems such as Git or Subversion, this makes changes to 58 infrastructure an auditable, repeatable, 59 and collaborative process. With so much relying on the 60 stability of your infrastructure, version control is a 61 responsible choice for minimizing downtime. 62 63 ## Next 64 You now know how to create, modify, destroy, version, and 65 collaborate on infrastructure. With these building blocks, 66 you can effectively experiment with any part of Terraform. 67 68 Next, we move on to features that make Terraform configurations 69 slightly more useful: [variables, resource dependencies, provisioning, 70 and more](/intro/getting-started/dependencies.html).