
Terraform Automation with Github & Atlantis - Session 1
An introduction to automating Terraform workflows using GitHub and Atlantis, focusing on best practices and setup.
Terraform Automation with Github & Atlantis - Session 1
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
Conclusion
Dengan ini kita sudah selesai melakukan setup awal untuk Terraform Automation dengan bantuan Github dan Atlantis. Selanjutnya kita akan melakukan konfigurasi lebih lanjut untuk menghubungkan Atlantis dengan repository yang telah kita buat, serta menyiapkan struktur direktori untuk Terraform dan Terragrunt.