Apa Itu Ansible?
Ansible adalah provisioning tool bersifat open source yang dikembangkan oleh Red Hat. Tool ini menjadi salah satu alat termudah untuk melakukan automation (otomatisasi) pada server.
Keberadaan arsitektur yang tidak memerlukan software khusus untuk diinstal pada server/node membuat Ansible bisa kamu gunakan sebagai alternatif yang bagus untuk otomatisasi server. Selain itu, Ansible juga menggunakan SSH untuk mengeksekusi automation task dan file YAML (Yet Another Markup Language) yang bisa dibaca manusia untuk menentukan provisioning details.
Saat melakukan automating server setup, seringkali kamu perlu mengulang eksekusi pada task yang sama menggunakan value yang berbeda. Misalnya ketika merubah permission pada beberapa file atau membuat beberapa user. Agar tak perlu melakukan pengulangan task pada playbook file, lebih baik kamu menggunakan loops.
Di pemrograman, loops memungkinkan kamu untuk mengulang instruksi, biasanya hingga seorang developer server berhasil menciptakan kondisi tertentu. Ansible menawarkan metode loop yang berbeda berdasarkan value yang berbeda pula. Di artikel ini kamu akan mempelajari ketiganya.
Baca Juga: Cara Install dan Konfigurasi Ansible di Ubuntu 20.04
Cara Menggunakan Loops di Ansible Playbooks
Pastikan kamu mempersiapkan beberapa hal berikut sebelum mempelajari cara menggunakan loops di Ansible Playbooks:
- Memiliki 2 VPS yang aktif dengan OS Ubuntu 20.04.
- Memiliki akses root.
- Satu VPS Ansible Control Node yang sudah terinstal Ansible.
- Dua VPS yang perlu disiapkan untuk:
- Satu Ansible Control Node: Ansible Control Node yang akan digunakan untuk connect dan control ke Ansible Host melalui SSH.
- Dua Ansible Hosts: Ansible Host nantinya akan dikontrol oleh Ansible Control Node yang sudah dikonfigurasi untuk otomatisasi.
Langkah utama yang akan kita lakkuan adalah sebagai berikut.
- Update Server
- Create User
- Create Directory
- Buat Inventory
- Create Playbook File
- Add Authorized Key
- Run Playbook
Kemudian, simak penjelasan cara menggunakan loops di Ansible Playbooks dengan metode berdasarkan tiga value berbeda berikut ini.
Update Server
Login sebagai root dan update package yang ada pada server supaya up-to-date.
$ apt-get update -y
$ apt-get upgrade -y
$ reboot
Create User
Mengingat kita akan menggunakan loops dengan 3 value berbeda, maka kamu perlu membuat 3 user terlebih dulu. Di sini kami akan membuat 3 user dengan nama “raka”, “ninja”, dan “dewa”.
User Raka
$ sudo adduser raka
Adding user `raka' ...
Adding new group `raka' (1000) ...
Adding new user `raka' (1000) with group `raka' ...
Creating home directory `/home/raka' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for raka
Enter the new value, or press ENTER for the default
Full Name []: Raka
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
Lakukan perintah yang sama, yaitu adduser untuk 2 user lainnya, yaitu “ninja” dan “dewa”. Contoh berikut akan membuat 3 file berbeda di /tmp. Kita akan menggunakan modul dengan task mengimplementasikan loop menggunakan 3 value yang berbeda. Ketiga user ini juga perlu dibuat pada Ansible Control Node dan Ansible Hosts.
Create Directory
Buat direktori ansible-practice.
$ cd ~
$ mkdir ansible-practice
Buat Inventory
Inventory di sini adalah list dari alamat IP server yang akan dijadikan sebagai Ansible Host atau remote Host.
$ cd ansible-practice
$ nano inventory
103.xxx.xxx.201
Kemudian simpan lalu keluar. Jangan lupa untuk mengubah alamat IP di atas dengan IP server yang kamu gunakan.
Baca Juga: Cara Eksekusi Ansible Playbooks untuk Automate Server Setup
Create Playbook File
Buat file Playbooks baru bernama playbook-loops01.yml di dalam direktori ansible-practice.
$ cd ~/ansible-practice/
$ nano playbook-loops01.yml
Salin dan tempel (copy-paste) script di bawah ini.
---
- hosts: all
tasks:
- name: creates users files
file:
path: /tmp/ansible-{{ item }}
state: touch
loop:
- raka
- ninja
- dewa
Simpan dan tutup. Ubah username “raka”, “ninja”, dan “dewa” sesuai username yang kamu buat.
Add Authorized Keys
Tambahkan SSH Key terlebih dulu pada user yang kamu buat di Ansible Control Node dan Ansible Hosts.
$ ssh-copy-id raka@103.xxx.xx.201
Run Playbook
Setelah itu jalankan perintah ansible-playbook untuk mengeksekusi file Playbooks.
$ ansible-playbook -i inventory playbook-loops01.yml -u raka
Maka output-nya akan muncul seperti berikut.
PLAY [all] *********************************************************************
TASK [Gathering Facts] *********************************************************
Enter passphrase for key '/root/.ssh/id_rsa':
ok: [103.xxx.xxx.201]
TASK [creates users files] *****************************************************
changed: [103.xxx.xxx.201] => (item=raka)
changed: [103.xxx.xxx.201] => (item=ninja)
changed: [103.xxx.xxx.201] => (item=dewa)
PLAY RECAP *********************************************************************
103.xxx.xxx.201 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Task di atas adalah untuk membuat file pada direktori /tmp/ dengan penamaan ansible-users. Seperti contoh: /tmp/ansible-raka.
0 Comments