We use cookies for statistical and audience measurement purposes.
Learn more
Manage your preferences

Terraform

  • Authentication
    Access & Private keys
  • Execution Plans
    Infrastructure manipulation overview
  • Resource Graph
    Get insights of your dependencies
  • Change Automation
    Automate complex changesets
  • Open source
    Hosted on Github
  • Standards
    S3-compliant
  • Infrastructure versioning
    Contribute, review or rollback
  • Syntax
    HashiCorp Configuration Language
Deployment pipeline
Environment consistency
Keep track of changes
Available Regions
  • Paris
  • Amsterdam
  • Infrastructure as Code
  • Deployment Automation
  • Validated by HashiCorp
Free tool

Available Resources

  • Account Resources
  • Virtual Instances
  • Bare Metal Servers
  • Object Storage
  • Block Storage Volumes
  • Kubernetes Clusters
  • Load Balancers
  • Container Registries

Automate your infrastructure deployment with Terraform

Tightly manage your infrastructure with Scaleway's Terraform Provider Plugin

Authentication

Scaleway authentication is based on an access key and a secret key. To create new key pairs, navigate to the section “API Tokens” under the credentials tab in your Scaleway console . Scaleway offers 3 ways of providing credentials: Static Credentials, environment variables and shared configuration file.

Execution Plans

Terraform has a “planning” phase, where an execution plan is generated. This execution plan will show what Terraform will do when you call the “apply” command. This step can avoid any surprises when Terraform manipulates infrastructure.

Resource Graph

Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. As a result, Terraform builds infrastructure as efficiently as possible so you can get insight into dependencies in your infrastructure.

Change Automation

Complex changesets may be applied to your infrastructure with minimal human interaction. With the above execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors.

Open source

As Terraform is an open source project, Scaleway Terraform Provider’s plugin is also open source, hosted on Github and maintain by both our DevOps and the community. This plugin is written in Go, feel free to contribute to it this plugin or to request the development of a new feature. To know more about our Terraform roadmap, check out our public roadmap on GitHub.

Standards compatibility

Scaleway object storage can be used to store your Terraform state. To do so, configure your backend as a S3-backend. Beware that no locking mechanism are yet supported when storing your tfstate file with a AWS S3-compatible bucket. If you need a locking mechanisme, you can also use Scaleway Managed Database.

Infrastructure versioning

Your infrastructure is now explicitly defined as a configuration file and, like any other piece of code, you can version your Terraform repository. Adding a versioning strategy will transform your infrastructure management process. Indeed,  every stake holder will be able to commit and review your code. Another great benefit of infrastructure versioning is the possibility to rollback to a previous version in case of any error.

Syntax

HCL (HashiCorp Configuration Language) is a configuration language built by HashiCorp. The goal of HCL is to build a structured configuration language that is both human and machine friendly for use with command-line tools, but specifically targeted towards DevOps tools, servers, etc.

Terraform basic commands

Manage your infrastructure without leaving your terminal

$

The power of Infrastructure as Code

Automate your deployment pipeline

A CI/CD pipeline is often triggered by a change in code (like a post-commit hook in git) and can help to merge the change by offering stages in testing, approval and deployment. Keep in mind that Terraform is more considered as an orchestration tool than an automation tool. Having said that, it is completely feasible to integrate Terraform in a more global workflow where Terraform will set the infrastructure and other complementary tools like Chef, Puppet or Ansible will then configure the applications running on the new / updated infrastructure.

Consistency across environments

Defining all of your infrastructure as Terraform modules or templates makes it easy to reuse the same templates with slightly different variables. This is ideal for a proper DevOps environment that demands consistency in development / stage / production environments.
Additionally, when using infrastructure as a coding tools like Terraform, the code can automatically serve as a clear description of the desired state of the infrastructure. As a result, it makes it easier onboard new engineers on the projects.

Keep track of any changes

When version tracking is enforced, the repository that contains the code becomes a Single Source of truth.
Having this unique point of control on the infrastructure helps to introspect and discover how the infrastructure is built. Development and operational teams are using the same source repository. As a result both teams can review and apply changes to them. This lowers the risk of misunderstanding between teams because they all share the same context and see the same files.

Sharpen your knowledge on Infrastructure as Code with our blog articles

You have a project? Call us:

Discover our compute resources available with Terraform

This product is open source

You have a project? Call us:

Frequently Asked Questions

What is Terraform?

Terraform is an open-source Infrastructure as Code software tool created by HashiCorp It has been designed for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers such as Scaleway but also many others like AWS, AZURE, GCP, OpenStack or even custom in-house solutions.

How Terraform works?

Terraform generates an execution plan describing exactly what the tool will do to reach the desired state. Terraform will then execute this plan to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.

Can I deploy multi-cloud infrastructures with Terraform?

Yes, Terraform supports multi-cloud configuration. This allows you to manage infrastructures and resources from multiple cloud providers using a unique tool for efficient deploying, changing, and versioning.

What happens if I make changes to an infrastructure managed by Terraform from outside of Terraform?

Terraform is designed to manage your infrastructure. If you make manual changes to it, they will be overwritten next time you apply the Terraform configuration. To avoid this behaviour, add the “ignore_changes” parameter to the resource in the configuration file.

Can I store my tfstate file in the cloud?

Yes, you can store your Terraform state file on Scaleway Object Storage by using the S3 Backend