Sebelumnya saya pernah menulis artikel Instalasi Terraform pada Ubuntu, kali ini saya ingin coba mengintegrasikannya dengan Docker Services agar dapat membuat Container melalui Terraform. Yang diperlukan adalah sebagai berikut:
- 1 VM untuk Terraform dengan IP 192.168.4.111
- 1 VM untuk Docker dengan IP 192.168.4.222
Pada VM Docker
Install VM dengan basis Ubuntu 16.04 LTS kemudian ikuti perintah:
sudo su apt update apt-get install apt-transport-https ca-certificates gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - apt-key fingerprint 0EBFCD88
Untuk menginstall docker silakan masukan perintah:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt update apt-get install docker-ce docker-ce-cli containerd.io
Expose API Docker dengan cara mengedit file /lib/systemd/system/docker.service dengan perintah:
vi /lib/systemd/system/docker.service
Find dan replace:
ExecStart=/usr/bin/dockerd -H fd://
Menjadi:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H fd://
Restart Service Docker dengan perintah:
systemctl daemon-reload systemctl restart docker
Pada VM Terraform
Install VM dengan basis Ubuntu 16.04 LTS kemudian lakukan instalasi Terraform sesuai dengan artikel Instalasi Terraform pada Ubuntu.
Buat folder docker untuk run container menggunakan Terraform:
mkdir /srv/docker/ cd /srv/docker/
Buat file provider.tf
vi provider.tf
Isi dengan:
provider "docker" { host = "tcp://192.168.4.222:2376/" }
Buat juga file container.tf
vi container.tf
Isi dengan:
resource "docker_image" "nginx" { name = "nginx" } resource "docker_container" "nginx" { name = "nginx-1" image = "${docker_image.nginx.latest}" }
Jalankan terraform untuk membuat container nginx sesuai dengan isi containter.tf diatas dengan perintah:
terraform init terraform validate terraform providers terraform plan terraform apply terraform show
Jika sudah selesai, silakan cek pada docker melalui perintah:
docker images docker ps -a
Jika berhasil, mestinya saat docker ps -a container running dengan lancar dan dapat diakses dengan baik. Adapun jika sudah tidak digunakan, kita bisa juga destroy dengan mudah dengan perintah:
terraform destroy
Note: Perintah destroy dilakukan pada folder yang berada konfigurasi .tf dalam hal ini /srv/docker/
Kita bisa melakukan kreasi container yang dimau melalui file container.tf, cukup disesuaikan dengan kebutuhan yang diinginkan saja.
Semoga bermanfaat..