{"id":23102252,"url":"https://github.com/evenh/terraform-demo","last_synced_at":"2025-04-03T21:26:05.114Z","repository":{"id":146609112,"uuid":"604124825","full_name":"evenh/terraform-demo","owner":"evenh","description":"Demo-repo ifbm. presentasjonen \"Introduksjon til IaC \u0026 Terraform\"","archived":false,"fork":false,"pushed_at":"2023-02-21T21:53:01.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-09T09:27:42.442Z","etag":null,"topics":["demo","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evenh.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-02-20T11:42:16.000Z","updated_at":"2023-02-24T22:54:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"94d2dbe5-43d8-4342-9ec7-002b447c2da0","html_url":"https://github.com/evenh/terraform-demo","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/evenh%2Fterraform-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evenh%2Fterraform-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evenh%2Fterraform-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evenh%2Fterraform-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evenh","download_url":"https://codeload.github.com/evenh/terraform-demo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247080851,"owners_count":20880344,"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":["demo","terraform"],"created_at":"2024-12-16T23:59:07.191Z","updated_at":"2025-04-03T21:26:05.109Z","avatar_url":"https://github.com/evenh.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Demonstrasjon av Terraform\n\nDette repoet er laget for å demonstrere hvordan man kan benytte Terraform å spinne opp litt forskjellig infrastruktur.\n\n## Innhold\n- Et VPC\n- Valgfritt antall VM'er som kjører [nginxdemos/hello](https://hub.docker.com/r/nginxdemos/hello/) eksponert på port 8080\n- En brannmur med enkle regler [definert i et eget CSV-format](./files/fw_rules.csv).\n- En lastbalanserer\n  - Dynamisk provisjonering av et TLS-sertifikat (Let's Encrypt) via Terraform\n  - Konfigurering av nevnte sertifikat mot skyleverandør og bruk av dette på lastbalanserer (TLS-terminering)\n  - Enkel konfigurasjon av lastbalanserer for å ta imot trafikk på port 443 og forwarde til friske apper (VM'er) som helsesjekkes\n  - Round robin, ingen stickiness\n- Logisk gruppering i kontrollpanelet til skyleverandøren \n\n## Tekniske krav\nFor å kunne kjøre dette på egen maskin kreves følgende:\n1. [Installert Terraform](https://developer.hashicorp.com/terraform/downloads)\n2. En konto på DigitalOcean med et valgfritt domene satt opp (NS), med generert API-nøkkel. Har du ikke konto kan du benytte [denne lenken](https://m.do.co/c/76396d2dc29c) som gir deg $200 (og meg $25)\n i credits\n3. Konfigurasjon:\n   - Satt følgende miljøvariabler:\n        ```shell\n        # Samme verdi skal tildeles 2 variabler\n        DIGITALOCEAN_TOKEN=dop_v1_xxxxxxxxxxxx\n        DO_AUTH_TOKEN=dop_v1_xxxxxxxxxxxx\n        ```\n   - Opprette en variabelfil (`mittmiljo.tfvars`) eller en variabelfil som lastes automatisk (`mittmiljo.auto.tfvars`) hvor du konfigurer oppsettet ditt. Eksempelvis:\n     ```hcl\n     dns_domain    = \"mitt-domene-i-digitalocean.no\"\n     region        = \"ams3\"\n     name          = \"iac-er-moro\"\n     vm_count      = 2\n     network_space = \"10.14.0.0/16\"\n     ```\n4. Kjøre Terraform med med følgende kommandoer:\n   - `terraform init` – gjøres første gangen for å laste ned providere\n   - `terraform apply` – gir deg en plan og ber deg ta stilling til om du vil ha endringene utført\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevenh%2Fterraform-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevenh%2Fterraform-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevenh%2Fterraform-demo/lists"}