{"id":21660481,"url":"https://github.com/devopshobbies/terraform-tutorial","last_synced_at":"2025-03-20T05:26:09.477Z","repository":{"id":106392988,"uuid":"584329159","full_name":"devopshobbies/terraform-tutorial","owner":"devopshobbies","description":"you can follow up this repo to learn terraform with practical examples. also we recommend to check our youtube channel for this topic. ","archived":false,"fork":false,"pushed_at":"2023-07-04T06:48:20.000Z","size":138,"stargazers_count":67,"open_issues_count":11,"forks_count":25,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-25T07:09:37.923Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devopshobbies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-02T08:51:39.000Z","updated_at":"2024-12-22T14:01:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"3795d702-c341-4844-83af-eaea9d78bb70","html_url":"https://github.com/devopshobbies/terraform-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopshobbies%2Fterraform-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopshobbies%2Fterraform-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopshobbies%2Fterraform-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopshobbies%2Fterraform-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devopshobbies","download_url":"https://codeload.github.com/devopshobbies/terraform-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244556228,"owners_count":20471591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T09:34:13.400Z","updated_at":"2025-03-20T05:26:09.452Z","avatar_url":"https://github.com/devopshobbies.png","language":"HCL","readme":"# Devops Hobbies Terraform Tutorial\n\n![Devops hobbies terraform](./assets/thumbnail.jpg)\nThis is a brand new Persian Terraform free tutorial from @[babakDoraniArab](https://github.com/babakDoraniArab),\ncontribute and improve this tutorial repo.\nThere is a branch for each video on this repository that holds the codes that are written in the related video.\n\nAlso, if you would like to contribute just go and check the [CONTRIBUTING.md](./CONTRIBUTING.md) file.\n\n## Table of Contents\n\n1. [Terraform Installation](#installation)\n2. [Extensions](#extensions)\n3. [About Course](#about-course)\n4. [Related Courses](#related-courses)\n\n## Installation\n\nYou can find your os related help for installation in below:\n\n\u003cdetails \u003e\n\u003csummary \u003e Linux \u003c/summary\u003e\n\n\u003cul\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Debian/Ubuntu \u003c/summary\u003e\n\n#### Ubuntu/Debian\n\nEnsure that your system is up to date and you have installed the gnupg, software-properties-common, and curl packages installed. You will use these packages to verify HashiCorp's GPG signature and install HashiCorp's Debian package repository.\n\n```bash\nsudo apt-get update \u0026\u0026 sudo apt-get install -y gnupg software-properties-common\n```\n\nInstall the HashiCorp GPG key.\n\n```bash\nwget -O- https://apt.releases.hashicorp.com/gpg | \\\n  gpg --dearmor | \\\n  sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg\n```\n\nVerify the key's fingerprint.\n\n```bash\n   gpg --no-default-keyring \\\n    --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \\\n    --fingerprint\n```\n\nThe gpg command will report the key fingerprint:\n\n```\n    /usr/share/keyrings/hashicorp-archive-keyring.gpg\n    -------------------------------------------------\n    pub   rsa4096 XXXX-XX-XX [SC]\n          AAAA AAAA AAAA AAAA\n    uid           [ unknown] HashiCorp Security (HashiCorp Package Signing) \u003csecurity+packaging@hashicorp.com\u003e\n    sub   rsa4096 XXXX-XX-XX [E]\n```\n\nAdd the official HashiCorp repository to your system. The lsb_release -cs command finds the distribution release codename for your current system, such as buster, groovy, or sid.\n\n```bash\necho \"deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \\\n  https://apt.releases.hashicorp.com $(lsb_release -cs) main\" | \\\n  sudo tee /etc/apt/sources.list.d/hashicorp.list\n```\n\nDownload the package information from HashiCorp.\n\n```bash\nsudo apt update\n```\n\nInstall Terraform from the new repository.\n\n```bash\nsudo apt-get install terraform\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e CentOS/RHEL \u003c/summary\u003e\n\nInstall yum-config-manager to manage your repositories.\n\n```bash\nsudo yum install -y yum-utils\n```\n\nUse yum-config-manager to add the official HashiCorp Linux repository.\n\n```bash\nsudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo\n```\n\nInstall Terraform from the new repository.\n\n```bash\nsudo yum -y install terraform\n```\n\n\u003c/details\u003e\n\u003c/li\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFedora\u003c/summary\u003e\n\n### Fedora\n\nInstall `dnf config-manager` to manage your repositories.\n\n```bash\nsudo dnf install -y dnf-plugins-core\n```\n\nUse `dnf config-manager` to add the official HashiCorp Linux repository.\n\n```bash\nsudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo\n```\n\nInstall Terraform from the new repository.\n\n```bash\nsudo dnf -y install terraform\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Amazon-linux \u003c/summary\u003e\n\nInstall yum-config-manager to manage your repositories.\n\n```bash\nsudo yum install -y yum-utils\n```\n\nUse yum-config-manager to add the official HashiCorp Linux repository.\n\n```bash\nsudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo\n```\n\nInstall Terraform from the new repository.\n\n```bash\nsudo yum -y install terraform\n```\n\n\u003c/details\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Mac and Windows \u003c/summary\u003e\n\n\u003cul\u003e\n\u003cdetails\u003e\n\u003csummary\u003e Homebrew OS X \u003c/summary\u003e\n\nFirst, install the HashiCorp tap, a repository of all our Homebrew packages.\n\n```bash\nbrew tap hashicorp/tap\n```\n\nNow, install Terraform with hashicorp/tap/terraform.\n\n```bash\nbrew install hashicorp/tap/terraform\n```\n\nTo update to the latest version of Terraform, first update Homebrew.\n\n```bash\nbrew update\n```\n\nThen, run the upgrade command to download and use the latest Terraform version.\n\n```bash\nbrew upgrade hashicorp/tap/terraform\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Chocolatey on Windows \u003c/summary\u003e\n\nChocolatey is a free and open-source package management system for Windows. Install the Terraform package from the command-line.\n\n```cmd\nchoco install terraform\n```\n\n\u003c/details\u003e\n\n\u003c/ul\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Manual \u003c/summary\u003e\n\nTo install Terraform, find the [appropriate package](https://developer.hashicorp.com/terraform/downloads) for your system and download it as a zip archive.\n\nAfter downloading Terraform, unzip the package. Terraform runs as a single binary named `terraform`. Any other files in the package can be safely removed and Terraform will still function.\n\nFinally, make sure that the `terraform` binary is available on your `PATH`. This process will differ depending on your operating system.\n\n\u003cul\u003e\n\u003cdetails\u003e\n\u003csummary\u003e Mac or Linux \u003c/summary\u003e\n\nPrint a colon-separated list of locations in your PATH.\n\n```bash\necho $PATH\n```\n\nMove the Terraform binary to one of the listed locations. This command assumes that the binary is currently in your downloads folder and that your `PATH` includes `/usr/local/bin`, but you can customize it if your locations are different.\n\n```bash\nmv ~/Downloads/terraform /usr/local/bin/\n```\n\nFor more detail about adding binaries to your path, see this [Stack Overflow article](https://stackoverflow.com/questions/14637979/how-to-permanently-set-path-on-linux).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e Windows \u003c/summary\u003e\n\n[This Stack Overflow article](https://stackoverflow.com/questions/1618280/where-can-i-set-path-to-make-exe-on-windows) contains instructions for setting the PATH on Windows through the user interface.\n\n\u003c/details\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\n## Extensions\n\nEffective programming with TLS (Terraform Language Server) to have syntax highlighting, intellisense, code formatting and etc.\n\n| Name                                                                                                   | Description                                                                                                                                      |\n| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| [VsCode extension](https://marketplace.visualstudio.com/items?itemName=hashicorp.terraform)            | Terraform Extension for Visual Studio Code                                                                                                       |\n| [Jetbrains IntelliJ-based IDEs extension](https://plugins.jetbrains.com/plugin/7808-terraform-and-hcl) | Terraform Extension for Pycharm and other IntelliJ-based IDEs                                                                                    |\n| [LSP Mode](https://emacs-lsp.github.io/lsp-mode/page/lsp-terraform-ls/)                                | Aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company, flycheck and projectile |\n| [Infracost](https://www.infracost.io/docs/integrations/vscode/)                                        | Useful extension for VS-Code to see const estimate of your terraform right in your editor                                                        |\n\n## About Course\n\nLeave a star on this repository and then subscribe to our [Youtube](https://www.youtube.com/@devopshobbies) channel. Be aware to turn on notification bell to get notified in case new video added.\n\nEvery episode codes are pushed to its related branch and you can check them below.\n\n### Watch V-P-N free.\n\nIf you have difficulties to connect to youtube there is an alternative way, you can use tools like [Invidious](https://inv.bp.projectsegfau.lt/feed/popular).\n\n### Video lists\n\n| Episode | Name                                                                       | branch                                                               | Youtube                               |\n| ------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------- |\n| 001     | Introduction                                                               | -                                                                    | [watch](https://youtu.be/aFk04rQWvOM) |\n| 002     | Why LaC                                                                    | -                                                                    | [watch](https://youtu.be/Ta-gJecexlg) |\n| 003     | Configuration management vs infrastructure orchestration                   | -                                                                    | [watch](https://youtu.be/n_DckVP5nJQ) |\n| 004     | Terraform Providers and basic AWS configuration to get programmatic access | [004](https://github.com/devopshobbies/terraform-tutorial/tree/v004) | [watch](https://youtu.be/KFg3jDemBF4) |\n| 005     | Create your first resource with terraform                                  | [005](https://github.com/devopshobbies/terraform-tutorial/tree/v005) | [watch](https://youtu.be/tM8eNLZTfKg) |\n| 006     | How to edit your resource and destroy your project                         | [006](https://github.com/devopshobbies/terraform-tutorial/tree/v006) | [watch](https://youtu.be/ugP6cx2jibI) |\n| 007     | Terraform variables and terraform variables                                | [007](https://github.com/devopshobbies/terraform-tutorial/tree/v007) | [watch](https://youtu.be/BOZZzbv1ubc) |\n| 008     | Terraform variables and terraform variables                                | [008](https://github.com/devopshobbies/terraform-tutorial/tree/v008) | [watch](https://youtu.be/RV3OkiYKojk) |\n| 009     | Terraform remote backend                                                   | [009](https://github.com/devopshobbies/terraform-tutorial/tree/v009) | [watch](https://youtu.be/yZQdhRil6TM) |\n| 010     | terraform import and state rm                                              | [010](https://github.com/devopshobbies/terraform-tutorial/tree/v010) | [watch](https://youtu.be/CBHYhMlq6Qc) |\n| 011     | terraform 011 create your first module                                     | [011](https://github.com/devopshobbies/terraform-tutorial/tree/v011) | [watch](https://youtu.be/kJnmaVRbLdI) |\n\n## Related courses:\n\nYou can find related courses below here, You can use them to leverage your devops skills. Even you can use some of them for this tutorial too.\n| name | Github Repository | Youtube link | Description |\n| ------- | -------------- | --------------------- | -------- |\n| آموزش راه اندازی AWS روی لوکال (LocalStack) | [ AWS local stack ](https://github.com/devopshobbies/aws-localstack-lab) | [Watch](https://youtu.be/Te4MxcLyaUI) | You can simulate the aws services and use it for this course. |\n| Amazon cloud (AWS) | ---- | [Watch](https://youtube.com/playlist?list=PLYrn63eEqAzYkIa-FUZ2Jaq94ac9qlS0l) | Learn the basics of aws |\n| AWS webinar | [repository](https://github.com/devopshobbies/aws-webinar) | [Watch](https://youtube.com/playlist?list=PLYrn63eEqAzaCqGENAmDSrLwpTxQV0RIx) | Recorded webinars by Devops Hobbies for learning AWS. |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopshobbies%2Fterraform-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevopshobbies%2Fterraform-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopshobbies%2Fterraform-tutorial/lists"}