Keep Your Terraform code DRY
Define terraform code once, no matter how many environments you have.
Kenapa kita menggunakan bantuan Terragrunt selain dari Terraform?? dengan Terragrunt memudahkan kita untuk memanage Terraform module jika sudah sangat kompleks.
Prepare
VSCode
Create Personal Access Token
Personal access token ini digunakan untuk mengakses dengan autentifikasi sesuai role permissions. untuk membuat Personal acess token ini kita perlu login ke akun github, ke bagian Settings > Developer Settings > Personal Access Token > Tokens (classic) -> Generate new Token > Generate new Token (classic).
Kasih nama token nya, select scopes nya sesuaikan saja kebutuhan jika sudah generate token simpan token tersebut.
Next kita buat Repository Github
buat repository name nya, dan buat Private. karna tidak mungkin kan infrastructure kita di lihat orang publik.
Create VM AWS EC2
Selanjut nya kita persiapkan server di AWS EC2 yang nanti akan kita install terraform, terragrunt dan alantis karena kita tidak lagi create di local. Buat saja AWS EC2 instance dengan OS Ubuntu 20.04 LTS dengan spek terendah tidak harus tinggi2 untuk menyiapkan nya.
Install Terragrunt
Jika sudah menyiapkan server selanjutnya kita akan Install Terragrunt .
$ sudo apt update
$ wget https://github.com/gruntwork-io/terragrunt/releases/download/v0.42.5/terragrunt_linux_amd64
$ mv terragrunt_linux_amd64 terragrunt
$ chmod u+x terragrunt
$ sudo mv terragrunt /usr/local/bin/terragrunt
$ terragrunt --version
terragrunt version v0.42.5
Install Terraform
Selanjutnya kita Install Terraform.
$ sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
$ wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
$ gpg --no-default-keyring \
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
--fingerprint
$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
$ sudo apt update
$ sudo apt-get install terraform
$ terraform --version
Install Atlantis
Next install atlantis (https://github.com/runatlantis/atlantis/releases).
$ wget https://github.com/runatlantis/atlantis/releases/download/v0.22.0-pre.20221226/atlantis_linux_amd64.zip
$ sudo apt install unzip
$ unzip atlantis_linux_amd64.zip
$ sudo mv atlantis /usr/local/bin/
$ atlantis version
GitHub Webhook
sudah semua di install next kita akan atur Github Webhook
ke bagian Settings > Webhooks > Add Webhooks.
Payload URL : http://ippublic/events
content-type : application/json
secret : terserah nama nya tapi di simpan
Which events would you like to trigger this webhook :
Pull request reviews
Pushes
Issue comments
Pull requests
Check Active
And Add webhook