menggunakan loops ansible playbooks featured image

Tutorial Cara Menggunakan Loops di Ansible Playbooks

Agar kamu tak perlu melakukan task berulang-ulang di file Playbook pada Ansible, kamu bisa menggunakan fitur loops. Loop atau loops yang secara harfiah berarti putaran berguna untuk mengulang instruksi. Di artikel ini, kamu akan mempelajari bagaimana cara menggunakan loops di Ansible Playbooks.

Apa Itu Ansible?

logo 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:

  1. Memiliki 2 VPS yang aktif dengan OS Ubuntu 20.04.
  2. Memiliki akses root.
  3. 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 [email protected]

 

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.

Baca Juga: Panduan Setting Firewall Ubuntu Server dengan UFW

Simpulan

Bila diikuti dengan tepat, saat ini kamu sudah berhasil menggunakan loops di Ansible Playbooks. Otomatisasi Ansible bisa kamu manfaatkan untuk menginstal atau mengonfigurasi Control Node agar dapat diterapkan secara otomatis ke Hosts tanpa repot melakukan instalasi dan konfigurasi manual di setiap server.

Jika saat ini kamu belum memiliki server atau ingin menambah server baru, pastikan kamu menggunakan cloud VPS dari Dewaweb agar website-mu aman, cepat, dan selalu bisa diandalkan. Demikian artikel cara menggunakan loops di Ansible Playbooks, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!