Difference between revisions of "Terraform"

From wikieduonline
Jump to navigation Jump to search
 
(152 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[wikipedia:Terraform (software)]] (2014) is an open-source [[infrastructure as code]] software.
+
[[wikipedia:Terraform (software)]] (July [[2014]]) is an open-source [[infrastructure as code]] software.
 
+
* [[Google trends]]: https://trends.google.com/trends/explore?date=all&q=Terraform
 +
* Repo: https://github.com/hashicorp/terraform
 +
* [[Terraform Registry]] (Jan 2020) <ref>https://www.hashicorp.com/blog/announcing-providers-in-the-new-terraform-registry</ref>
 
* [[Terraform Cloud]] (September 2019)
 
* [[Terraform Cloud]] (September 2019)
 
* [[Terraform Enterprise]]
 
* [[Terraform Enterprise]]
* [[Terraform Registry]]
+
* [[Terraform Module Registry]] (2017) <ref>https://www.hashicorp.com/blog/hashicorp-terraform-module-registry</ref>
  
== Technical characteristics ==
 
* [[HCL]]2 based
 
* Types: strings, number, bool, list, maps, set, tuple, object, any and null ([[Terraform 0.12]])
 
  
 +
* [[Terraform Operators]]
 +
* [[Terraform Expressions]]
  
 +
== Technical characteristics ==
 +
* [[Hashicorp Configuration Language (HCL)]]2 based
 +
* [[Terraform types]]: <code>strings, number, bool, list, [[maps]], set, [[tuple]], object, any and null</code> ([[Terraform 0.12]])
  
 
== Supported platforms/providers ==
 
== Supported platforms/providers ==
* [[AWS]]: [[AWS EKS]], [[GCP]], [[IBM Cloud]], [[DigitalOcean]], [[Azure]]: [[Azure Stack]], [[AzureRM]], [[OpenStack]], [[ServiceNow]], [[F5 Networks]], [[Nutanix]], [[Tecent Cloud]], [[Helm]], [[Oracle OCI]], [[Brightbox]], [[RightScale]], [[Linode]], [[SkyTap]], [[UCloud]], [[Hedvig]], [[Zabbix]]
+
* [[AWS]]: [[AWS EKS]], [[GCP]], [[IBM Cloud]], [[DigitalOcean]], [[Azure]]: [[Azure Stack]], [[AzureRM]], [[OpenStack]], [[ServiceNow]], [[F5 Networks]], [[Nutanix]], [[Tecent Cloud]], [[Helm]], [[Oracle OCI]], [[Brightbox]], [[RightScale]], [[Linode]], [[SkyTap]], [[UCloud]], [[Hedvig]], [[Zabbix]], [[Rollbar]]
  
== Installation ==
+
* <code>[[terraform providers]]</code>
* [[macOS]]: <code>[[brew install]] terraform</code>.
 
* [[Ubuntu]]: <code>[[snap]] install terraform</code> or <code>[[snap install]] terraform-snap</code>
 
  
== Terraform commands ==
+
== [[Terraform installation]] ==
* <code>[[terraform init]]</code>
 
* <code>[[terraform plan]]</code>
 
* <code> [[terraform apply]]</code>
 
* <code> [[terraform remote config]]</code>
 
* <code>[[terraform destroy]]</code>
 
* <code>[[terraform fmt]]</code>
 
** <code>[[terraform fmt]] -check</code>
 
* <code>[[terraform show]]</code>
 
* <code>[[terraform validate]]</code>
 
* <code>[[terraform login]]</code>
 
  
== Common Terraform commands<ref>https://www.terraform.io/docs/commands/index.html</ref> ==
+
== [[Terraform commands]] ==
  
 +
== [[Terraform changelog|News]] ==
 +
* Jan 2023 [[Terraform Dynamic Provider Credentials]]
 +
* Aug 2022 [[CDK for Terraform (CDKTF)]]
 +
* Dec 2017 [[Terraform Enterprise (TFE)]] [[GA]]
  
Main commands:
+
== [[Terraform activities|Activities]] ==
  init          Prepare your working directory for other commands
+
* [[Create you first AWS instances with Terraform tutorial]]: https://learn.hashicorp.com/tutorials/terraform/aws-build?in=terraform/aws-get-started
  validate      Check whether the configuration is valid
+
* Read Terraform [[blog]]: https://www.hashicorp.com/blog/category/terraform/
  plan          Show changes required by the current configuration
+
* Read https://www.terraformupandrunning.com/ book
  apply        Create or update infrastructure
+
* Read [[Stackoverflow]] questions: https://stackoverflow.com/questions/tagged/terraform?tab=Votes
  destroy      Destroy previously-created infrastructure
+
* Read Terraform: Up & Running, 2nd edition Early Release is now available! https://blog.gruntwork.io/terraform-up-running-2nd-edition-early-release-is-now-available-b104fc29783f
+
* Review some [[Terraform examples]]
All other commands:
+
* Use <code>[[terraform apply -replace]]</code> to recreate a resource
  console      Try Terraform expressions at an interactive command prompt
 
  fmt          Reformat your configuration in the standard style
 
  force-unlock  Release a stuck lock on the current workspace
 
  get          Install or upgrade remote Terraform modules
 
  graph        Generate a Graphviz graph of the steps in an operation
 
  import        Associate existing infrastructure with a Terraform resource
 
  login        Obtain and save credentials for a remote host
 
  logout        Remove locally-stored credentials for a remote host
 
  output        Show output values from your root module
 
  providers    Show the providers required for this configuration
 
  refresh      Update the state to match remote systems
 
  show          Show the current state or a saved plan
 
  state        Advanced state management
 
  taint        Mark a resource instance as not fully functional
 
  untaint      Remove the 'tainted' state from a resource instance
 
  version      Show the current Terraform version
 
  workspace    Workspace management
 
  
Global options (use these before the subcommand, if any):
+
== Related terms ==
  -chdir=DIR    Switch to a different working directory before executing the
+
* [[HCL]], [[HCL]]2 and [[HashiCorp Interpolation Language (HIL)]]
                given subcommand.
+
* [[Terraform: Meta-Argument]]s: <code>[[count]]</code> parameter for [[iterations]], <code>[[Terraform: depends on|depends_on]]</code>
  -help        Show this help output, or the help for a specified subcommand.
+
* [[Terraform conditional expressions]]
  -version      An alias for the "version" subcommand.
+
* [[Terraform functions]]: <code>[[Terraform functions: templatefile|templatefile]]</code>, <code>[[join]]</code>, <code>[[output]]</code>, [[Splat expression]]
 +
* [[Terraform data sources]], [[Terraform providers]], [[Terraform modules]], [[Terraform resources]], [[Terraform backends]]
 +
* [[Terragrunt]], [[Terraformer]], [[terratest]]
 +
* Releases: https://github.com/hashicorp/terraform/releases
  
 
+
* <code>[[artifacts:]]reports:terraform</code>
 
+
* [[Terraform Cloud Operator]]
Older versions:
+
* [[Terraform examples]]: [[Terraform: Hello world.tf]]
    [[terraform apply|apply]]             Builds or changes infrastructure
+
* [[Terraform Associate]]: Understand [[secret management]] in [[state files]]
    console            Interactive console for Terraform interpolations
+
* [[Terraform deprecated commands]]
    destroy            Destroy Terraform-managed infrastructure
+
* [[Terraform CLI Configuration File]]
    [[terraform fmt|fmt]]               Rewrites config files to canonical format
+
* [[Terraform VCS connections]]
    get                Download and install modules for the configuration
+
* [[Terraform best practices]]
    graph              Create a visual graph of Terraform resources
+
* [[Oracle Cloud Resource Manager]]
    import            Import existing infrastructure into Terraform
+
* [[Terraform AWS]] (<code>[[hashicorp/aws]]</code>), [[Terraform GCP]]
    init              Initialize a new or existing Terraform configuration
+
* <code>[[tflint]], [[tfsec]]</code>
    output            Read an output from a state file
+
* <code>[[tfswitch]]</code>
    plan              Generate and show an execution plan
+
* [[Atlantis]] [[pull request]] automation
    providers          Prints a tree of the providers used in the configuration
+
* [[AWS Service Catalog]]
    push              Upload this Terraform module to Terraform Enterprise to run
+
* [[OpenTofu]]
    refresh            Update local state file against real resources
+
* <code>[[.this]]</code>
    [[terraform show|show]]               Inspect Terraform state or plan
+
* [[Crossplane.io]]
    taint              Manually mark a resource for recreation
+
* [[Terrakube.org]]
    untaint            Manually unmark a resource as tainted
 
    validate          Validates the Terraform files
 
    [[terraform version|version]]           Prints the Terraform version
 
    workspace          Workspace management
 
 
All other commands:
 
    0.12upgrade        Rewrites pre-0.12 module source code for v0.12
 
    0.13upgrade        Rewrites pre-0.13 module source code for v0.13
 
    debug              Debug output management (experimental)
 
    force-unlock      Manually unlock the terraform state
 
    push              Obsolete command for Terraform Enterprise legacy (v1)
 
    state              Advanced state management
 
 
 
== Activities ==
 
# Read Terraform blog: https://www.hashicorp.com/blog/category/terraform/
 
# Read Terraform: Up & Running, 2nd edition Early Release is now available! https://blog.gruntwork.io/terraform-up-running-2nd-edition-early-release-is-now-available-b104fc29783f
 
# [[Terraform: Hello_world.tf]]
 
# [[Terraform, read files]]
 
 
 
== Related ==
 
* [[HCL]], [[HCL]]2
 
* <code>terraform_remote_state</code>
 
* <code>count</code> parameter for iterations
 
* [[Remote state backends to manage Terraform state]]
 
* [[Terragrunt]]
 
* Releases: https://github.com/hashicorp/terraform/releases
 
* [[Terraform libvirt provider]]
 
* [[Heredocs]]
 
  
 
== See also ==
 
== See also ==
 +
* {{terraform cmd}}
 
* {{terraform}}
 
* {{terraform}}
* {{IaC}}
 
* {{Cloud}}
 
  
 
[[Category:Infrastructure as Code]]
 
[[Category:Infrastructure as Code]]
 +
[[Category:IaC]]
 
[[Category:Cloud computing]]
 
[[Category:Cloud computing]]

Latest revision as of 13:29, 26 August 2024

wikipedia:Terraform (software) (July 2014) is an open-source infrastructure as code software.


Technical characteristics[edit]

Supported platforms/providers[edit]

Terraform installation[edit]

Terraform commands[edit]

News[edit]

Activities[edit]

Related terms[edit]

See also[edit]

  • https://www.hashicorp.com/blog/announcing-providers-in-the-new-terraform-registry
  • https://www.hashicorp.com/blog/hashicorp-terraform-module-registry
  • Advertising: