{"id":20136073,"url":"https://github.com/zkfmapf123/hcl-tools-template","last_synced_at":"2026-03-06T19:02:12.518Z","repository":{"id":179646989,"uuid":"663897531","full_name":"zkfmapf123/hcl-tools-template","owner":"zkfmapf123","description":"mini infra with terraform, packer, ansible","archived":false,"fork":false,"pushed_at":"2023-07-08T14:57:48.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T09:38:25.095Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zkfmapf123.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-07-08T11:37:23.000Z","updated_at":"2023-07-08T11:37:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"366d440f-f3ab-4b27-a030-f6327e60f51b","html_url":"https://github.com/zkfmapf123/hcl-tools-template","commit_stats":null,"previous_names":["zkfmapf123/hcl-tools-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkfmapf123%2Fhcl-tools-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkfmapf123%2Fhcl-tools-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkfmapf123%2Fhcl-tools-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zkfmapf123%2Fhcl-tools-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zkfmapf123","download_url":"https://codeload.github.com/zkfmapf123/hcl-tools-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241582521,"owners_count":19985846,"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-13T21:17:36.745Z","updated_at":"2025-11-27T19:04:56.986Z","avatar_url":"https://github.com/zkfmapf123.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform + Packer + Ansible\n\n## Architecture\n\n![image](./public/image.png)\n\n## Folder Architecture\n\n```\n  |- modules  (terraform module)\n  |- template (packer + ansible template)\n  main.tf (main 파일)\n```\n\n## Todo\n\n- Terraform\n\n  - [x] vpc\n  - [x] nat gateway\n  - [x] subnets\n  - [x] ec2 from read data aws_ami\n\n- Packer\n\n  - [x] make openvpn ec2 ami\n  - [x] make grafana ec2 ami\n\n- Ansible\n\n## Execute\n\n```\n    // ami 설치\n    cd infra/packer-templates/openvpn \u0026\u0026 packer init . \u0026\u0026 packer build .\n    cd infra/packer-templates/grafana \u0026\u0026 packer init . \u0026\u0026 packer build .\n    or\n    cd infra/pakcer-templates \u0026\u0026 make build\n\n    // terraform 구성\n    cd infra \u0026\u0026 terraform init \u0026\u0026 terraform apply\n```\n\n## 참고\n\n- cloud-init status --wait\n\n  ```\n      해당 명령어는 user_data 실행 후 provisoning 되도록 하는 명령어\n  ```\n\n- --restart unless-stopped\n\n  ```\n  // 해당 명령어를 사용하여 ami가 실행되면 바로 구동이 될수 있도록 함.\n  docker run \\\n  -d \\\n  -p 3000:3000 \\\n  --restart unless-stopped \\\n  --name=grafana \\\n  grafana/grafana:$GRAFANA_VERSION\n\n  ```\n\n- set -euf -o pipefail\n\n  ```\n      shell 파일 맨처음 위치한 명령어로써,\n      해당 shell파일이 실패했을 경우 바로 종료한다 라는 의미...\n  ```\n\n- openvpn의 run-docker-openvpn.sh은 파일 copy만 하는경우\n  ```\n      open-vpn의 경우 해당 인스턴스의 public_ip가 필요한데,\n      pakcer의 경우 ami를 만들때의 public_ip와 실제 인스턴스가 running 되고난 후의 public_ip가 상이하기 때문에...\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkfmapf123%2Fhcl-tools-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzkfmapf123%2Fhcl-tools-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzkfmapf123%2Fhcl-tools-template/lists"}