Provisioning Instance OpenStack with Terraform

Gilang Virga Perdana
4 min readJan 18, 2022

Selamat datang teman teman, kali ini saya akan sharing hasil oprekan saya mengenai membuat instance OpenStack dari Terraform. Dalam dunia cloud-computing, seorang yang diberi role Infra atau DevOps sering kali mengerjakan perkerjaan yang berulang ulang, yaitu seperti provisioning Infrastructure dari suatu aplikasi yang lumayan kompleks, hal ini menjadi penyebab ketidak efisienan pada waktu kerja seorang Infra atau DevOps maka dari itu ada salah satu tools opensource automasi provisioning yang bernama Terraform ini atau sering disebut Infrastructure as a code. Dimana semua environment yang biasa kita lakukan satu per-satu kali ini kita bisa define secara deklaratif dan sekaligus untuk mengurangi pekerjaan yang berulang ulang. Pada kali ini, studi kasus nya simple saja yaitu saya akan membuat satu instance baru (Ubuntu18–04) di Openstack dari awal dengan mendefine kebutuhan — kebutuhan instance yang akan berjalan seperti Images, Flavor, Network dan Keypair. Tanpa berlama — lama kita langsung saja coba eksekusi.

Environment :

1. OpenStack.2. Terraform.3. Some Env for Instance Launching (Images, Flavor, Network, Keypair).

Practic :

1. Persiapkan Environment :

a. Persiapkan RC file :

Silahkan download OpenStack RC File pada Dashboard openstack .

b. Buat Network (tidak lupa untuk copy nama) :

Silahkan persiapkan network beserta settingannya.

Silahkan catat nama dari masing masing Network (internal & external) untuk keperluan variable.tf. Disini yaitu “private” untuk network internal dan “public” untuk network external.

c. Buat Flavor (tidak lupa untuk copy ID) :

Silahkan buat Flavor sesuai environment Instance yang nanti akan kita provisioning.

Saya sudah memiliki beberapa Flavor, dan saya akan menggunakan ds1G dimana ds1G memiliki ID “d2”. Silahkan catat ID “d2” untuk keperluan file variable.tf.

d. Buat KeyPair (tidak lupa untuk copy nama) :

Silahkan buat keypair untuk keperluan provisiong Instance yang direkomedasikan.

Disini saya sudah memiliki keypair bernama “keypair”. Silahkan catat nama keypair untuk keperluan variable.tf.

e. Upload Image (tidak lupa untuk copy ID) :

Silahkan upload image ke OpenStack.

Disini saya sudah memiliki 2 image yaitu CirrOS dan Ubuntu18–04. Saya akan copy ID Ubuntu18–04 karena saya akan menggunakan Ubuntu18–04 sebagai base image dari instance yang nanti saya provisioning menggunakan terraform.

Silahkan copy ID image untuk keperluan file variable.tf.

2. Instalasi Terraform :

Silahkan kunjungi https://learn.hashicorp.com/tutorials/terraform/install-cli untuk dokumentasi instalasi yang lebih lengkap.

Pada kasus saya, saya akan instalasi pada Ubuntu dengan command :

$ sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add –
$ sudo apt-add-repository “deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main”
$ sudo apt-get update && sudo apt-get install terraform

Cek terraform :

$ terraform -help

3. Persiapkan Template Terraform :

$ git clone https://github.com/gilangvperdana/terraform-openstack

4. Mulai konfigurasi :

Karena studi kasus kita ingin deploy satu instance, kita masuk ke directory “01-single-instance “ . Silahkan rubah file variable.tf dan copy-paste dengan semua informasi yang sudah kita copy pada point 1.

Silahkan sesuaikan dengan environment masing masing pada bagian default.

5. Terraform apply :

Setelah file konfigurasi variable.tf sudah dikonfigurasi. Sekarang kita akan exec menggunakan command :

$ source admin-openrc.sh
$ cd terraform-openstack/01-single-instance$ terraform init
$ terraform plan$ terraform apply

Tunggu sejenak sampai seperti ini :

Jika sudah seperti diatas, ini tandanya resource sudah ter-deploy dengan baik. Mari kita cek pada Dashboard OpenStack untuk membuktikan :

Taraa, kita berhasil. Lalu kita akan mencoba destroy semua resource yang sudah kita deploy menggunakan terraform.

Untuk menghapus project terraform yang sudah di deploy :

$ terraform destroy

Tunggu sejenak sampai seperti dibawah ini :

Jika sudah seperti diatas, ini tandanya kita berhasil destroy. Mari kita cek dashboard :

Voila, kita sudah berhasil apply maupun destroy. Silahkan berkreasi dan oprek — oprek lebih lanjut untuk fungsi fungsi lainnya yang tidak kalah menarik.

Terima kasih.

--

--