Difference between revisions of "Terraform"

From wikieduonline
Jump to navigation Jump to search
 
(149 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 --help]]
+
== [[Terraform changelog|News]] ==
 +
* Jan 2023 [[Terraform Dynamic Provider Credentials]]
 +
* Aug 2022 [[CDK for Terraform (CDKTF)]]
 +
* Dec 2017 [[Terraform Enterprise (TFE)]] [[GA]]
  
 +
== [[Terraform activities|Activities]] ==
 +
* [[Create you first AWS instances with Terraform tutorial]]: https://learn.hashicorp.com/tutorials/terraform/aws-build?in=terraform/aws-get-started
 +
* Read Terraform [[blog]]: https://www.hashicorp.com/blog/category/terraform/
 +
* Read https://www.terraformupandrunning.com/ book
 +
* Read [[Stackoverflow]] questions: https://stackoverflow.com/questions/tagged/terraform?tab=Votes
 +
* 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]]
 +
* Use <code>[[terraform apply -replace]]</code> to recreate a resource
  
Main commands:
+
== Related terms ==
  [[terraform init|init]]         Prepare your working directory for other commands
+
* [[HCL]], [[HCL]]2 and [[HashiCorp Interpolation Language (HIL)]]
  [[terraform validate|validate]]     Check whether the configuration is valid
+
* [[Terraform: Meta-Argument]]s: <code>[[count]]</code> parameter for [[iterations]], <code>[[Terraform: depends on|depends_on]]</code>
  [[terraform plan|plan]]         Show changes required by the current configuration
+
* [[Terraform conditional expressions]]
  [[terraform apply|apply]]         Create or update infrastructure
+
* [[Terraform functions]]: <code>[[Terraform functions: templatefile|templatefile]]</code>, <code>[[join]]</code>, <code>[[output]]</code>, [[Splat expression]]
  [[terraform destroy|destroy]]       Destroy previously-created infrastructure
+
* [[Terraform data sources]], [[Terraform providers]], [[Terraform modules]], [[Terraform resources]], [[Terraform backends]]
+
* [[Terragrunt]], [[Terraformer]], [[terratest]]
All other commands:
+
* Releases: https://github.com/hashicorp/terraform/releases
  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
 
  [[terraform show|show]]         Show the current state or a saved plan
 
  [[terraform state|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):
 
  -chdir=DIR    Switch to a different working directory before executing the
 
                given subcommand.
 
  -help        Show this help output, or the help for a specified subcommand.
 
  -version      An alias for the "version" subcommand.
 
 
 
  
 
+
* <code>[[artifacts:]]reports:terraform</code>
Older versions:
+
* [[Terraform Cloud Operator]]
    [[terraform apply|apply]]             Builds or changes infrastructure
+
* [[Terraform examples]]: [[Terraform: Hello world.tf]]
    console            Interactive console for Terraform interpolations
+
* [[Terraform Associate]]: Understand [[secret management]] in [[state files]]
    destroy            Destroy Terraform-managed infrastructure
+
* [[Terraform deprecated commands]]
    [[terraform fmt|fmt]]               Rewrites config files to canonical format
+
* [[Terraform CLI Configuration File]]
    get                Download and install modules for the configuration
+
* [[Terraform VCS connections]]
    graph              Create a visual graph of Terraform resources
+
* [[Terraform best practices]]
    import            Import existing infrastructure into Terraform
+
* [[Oracle Cloud Resource Manager]]
    init              Initialize a new or existing Terraform configuration
+
* [[Terraform AWS]] (<code>[[hashicorp/aws]]</code>), [[Terraform GCP]]
    output            Read an output from a state file
+
* <code>[[tflint]], [[tfsec]]</code>
    plan              Generate and show an execution plan
+
* <code>[[tfswitch]]</code>
    providers          Prints a tree of the providers used in the configuration
+
* [[Atlantis]] [[pull request]] automation
    push              Upload this Terraform module to Terraform Enterprise to run
+
* [[AWS Service Catalog]]
    refresh            Update local state file against real resources
+
* [[OpenTofu]]
    [[terraform show|show]]               Inspect Terraform state or plan
+
* <code>[[.this]]</code>
    taint              Manually mark a resource for recreation
+
* [[Crossplane.io]]
    untaint            Manually unmark a resource as tainted
+
* [[Terrakube.org]]
    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: