{"id":13707329,"url":"https://github.com/duffney/terraform-in20hours","last_synced_at":"2025-03-03T03:24:47.839Z","repository":{"id":82666232,"uuid":"271304967","full_name":"duffney/terraform-in20hours","owner":"duffney","description":"Learning Terraform in 20 Hours","archived":false,"fork":false,"pushed_at":"2020-12-23T14:31:07.000Z","size":55,"stargazers_count":28,"open_issues_count":0,"forks_count":14,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-13T04:58:29.864Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duffney.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2020-06-10T14:51:35.000Z","updated_at":"2023-05-17T13:41:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9a05b61-102d-4ba1-9840-bbf0ea8b78e2","html_url":"https://github.com/duffney/terraform-in20hours","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/duffney%2Fterraform-in20hours","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffney%2Fterraform-in20hours/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffney%2Fterraform-in20hours/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duffney%2Fterraform-in20hours/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duffney","download_url":"https://codeload.github.com/duffney/terraform-in20hours/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241601763,"owners_count":19988975,"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-08-02T22:01:27.611Z","updated_at":"2025-03-03T03:24:47.816Z","avatar_url":"https://github.com/duffney.png","language":"HCL","funding_links":[],"categories":["HCL"],"sub_categories":[],"readme":"# terraform-in20hours\nLearning Terraform in 20 Hours\n\nOutcome: Create windows \u0026 linux vm, sql instance, and app gateway \n\n\n1. Install Terraform in a Docker container\n\n```\ndocker build -t terraform .\n\n docker run -it -v ${PWD}:/work terraform\n\n```\n\n2. Authentication to Azure\n    \n    Option 1: [Azure CLI](https://www.terraform.io/docs/providers/azurerm/guides/azure_cli.html)\n    #FACT: Use `az account show` to see which sub terraform will use.\n\n    Option 2: [Authenticating using a Service Principal](https://www.terraform.io/docs/providers/azurerm/guides/service_principal_client_secret.html)\n\n3. Initialize Terraform\n\n    `terraform init`\n\nCommands\n\n```\nterrafrom init\n\nterraform plan\n\nterraform apply\n\nterraform destroy\n\n#use for developing without having to create new dir and copy stuff +100\nterraform workspace new $(workspaceName) \n\n#test terraform commands!\nterraform console \n```\n\n## Variables\n\n.terraform.tfvars\n```\nvariable \"admin_password\" {\n    type = string\n    description = \"admin password\"\n}\n```\n\nmanual prompts\n\n```\nterraform apply\n```\n\nterraform -var option\n```\nterraform apply -var 'password=\u003cPassword\u003e'\n```\n\nterraform variables file\n\n.terraform.tfvars\n```\nusername = \"tfadmin2\"\n```\n\n### Terraform apply -var\n\n```\nterraform apply -var=\"admin_password=Password1234!\"\n```\n\n### Environment Variables\n\nYou can populate variables by exporting environment variables `TF_VAR_$(variableName)`\n\n```\nexport TF_VAR_admin_password=Password1234!\n```\n\n## resources\n\nhttps://docs.microsoft.com/en-us/azure/developer/terraform/create-linux-virtual-machine-with-infrastructure\n\nhttps://phoenixnap.com/kb/how-to-install-terraform-centos-ubuntu\n\nhttps://stackoverflow.com/questions/41485217/mount-current-directory-as-a-volume-in-docker-on-windows-10\n\nhttps://stackoverflow.com/questions/40542297/need-to-create-multile-vms-in-azure-through-terraform\n\n## influences \u0026 books\n\nhttps://www.terraformupandrunning.com/\n\nhttps://learn.hashicorp.com/terraform\n\nhttps://portal.cloudskills.io/terraform-azure\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduffney%2Fterraform-in20hours","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduffney%2Fterraform-in20hours","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduffney%2Fterraform-in20hours/lists"}