{"id":15769,"date":"2025-09-25T18:28:34","date_gmt":"2025-09-25T12:58:34","guid":{"rendered":"https:\/\/www.skynats.com\/?p=15769"},"modified":"2025-11-12T18:35:21","modified_gmt":"2025-11-12T13:05:21","slug":"how-to-install-terraform","status":"publish","type":"post","link":"https:\/\/www.skynats.com\/blog\/how-to-install-terraform\/","title":{"rendered":"How to Install Terraform"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li>Terraform is an open-source Infrastructure-as-Code (IaC) tool developed by HashiCorp.<\/li>\n\n\n\n<li>&nbsp;It lets you provision and manage cloud infrastructure using declarative configuration files.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-how-to-install-terraform\"><strong>How to Install Terraform<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-install-terraform-cli\"><strong>Install Terraform CLI<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O - https:\/\/apt.releases.hashicorp.com\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/hashicorp-archive-keyring.gpg\n\necho \"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/hashicorp-archive-keyring.gpg] https:\/\/apt.releases.hashicorp.com $(grep -oP '(?&lt;=UBUNTU_CODENAME=).*' \/etc\/os-release || lsb_release -cs) main\" | sudo tee \/etc\/apt\/sources.list.d\/hashicorp.list\n\nsudo apt update &amp;&amp; sudo apt install terraform<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-project-structure\"><strong>Project Structure<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">terraform-aws-ec2\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u251c\u2500\u2500 main.tf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u251c\u2500\u2500 variables.tf<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-main-tf\"><strong>main.tf<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>provider \"aws\" {\n  region = var.region\n}\n\nresource \"aws_instance\" \"example\" {\n  ami           = \"ami-0c55b159cbfafe1f0\" # Change based on your region\n  instance_type = \"t2.micro\"\n\n  tags = {\n    Name = \"Terraform-Example\"\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>variables.tf&nbsp;<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>variable \"region\" {\n  default = \"us-east-1\"\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here, the provider tells Terraform that you\u2019re working with <a href=\"https:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noopener\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-secondary-color\">AWS<\/mark><\/a> as your cloud provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">resource defines a resource block that tells Terraform to create an EC2 instance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">variable.tf file\u00a0 is used to define input variables, making your config reusable and configurable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-running-terraform\"><strong>Running Terraform<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-initialize-the-project\"><strong>Initialize the project<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform init<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Initializes plugins\/providers and backend.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-plan-the-changes\"><strong>Plan the changes<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform plan<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Shows what Terraform intends to do.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-apply-the-changes\"><strong>Apply the changes<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform apply<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Creates the EC2 instance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll be asked to confirm with yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Terraform empowers you to automate, version, and manage your infrastructure consistently across different environments and cloud providers. Whether you&#8217;re working with AWS, Azure, GCP, or even Kubernetes, Terraform gives you the tools to treat your infrastructure like code\u2014reliable, repeatable, and under version control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Need assistance to&nbsp;install Terraform&nbsp;or optimize your&nbsp;<a href=\"https:\/\/www.skynats.com\/cloud-management\/\">cloud management<\/a>&nbsp;strategy? Our experts are ready to guide you. Reach out now for professional support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to Install Terraform Install Terraform CLI Project Structure terraform-aws-ec2\/ \u251c\u2500\u2500 main.tf \u251c\u2500\u2500 variables.tf main.tf variables.tf&nbsp; Here, the provider tells Terraform that you\u2019re working with AWS as your cloud provider. resource defines a resource block that tells Terraform to create an EC2 instance. variable.tf file\u00a0 is used to define input variables, making your config reusable [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[25,1116],"class_list":["post-15769","post","type-post","status-publish","format-standard","hentry","category-blog","tag-cloud-management","tag-install-terraform"],"_links":{"self":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/comments?post=15769"}],"version-history":[{"count":3,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15769\/revisions"}],"predecessor-version":[{"id":16814,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15769\/revisions\/16814"}],"wp:attachment":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/media?parent=15769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/categories?post=15769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/tags?post=15769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}