Cara Membuat dan Menggunakan Template di Ansible Playbooks

Cara Membuat dan Menggunakan Template di Ansible Playbooks

Ansible Playbooks berguna untuk mempermudah pengelolaan beberapa server sekaligus. Sebab, kamu tak perlu menulis perintah yang sama berulang kali di server berbeda. Ada beberapa template Ansible yang bisa kamu gunakan untuk membuat file baru pada node menggunakan model yang sudah ditentukan. Pelajari cara membuat dan menggunakan template Ansible Playbooks di bawah ini.

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.

Template yang ada di Ansible memungkinkanmu membuat file baru pada node menggunakan model berdasarkan sistem template Jinja2. Template Ansible biasanya disimpan dengan format .tpl dan mendukung penggunaan variabel, loops, dan conditional expression.

Biasanya, template ini digunakan untuk mengonfigurasi layanan berdasarkan nilai variabel yang dapat diatur pada Playbooks dalam file variabel atau diperoleh melalui facts. Hal ini memungkinkanmu untuk membuat perintah lebih serbaguna yang dapat menyesuaikan behavior berdasarkan dynamic information.

Baca Juga: Cara Install dan Konfigurasi Ansible di Ubuntu 20.04

Cara Membuat dan Menggunakan Template di Ansible Playbooks

Berikut ini adalah beberapa hal yang perlu kamu persiapkan agar dapat membuat dan menggunakan template 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.
  • Satu Ansible Hosts: Ansible Host nantinya akan dikontrol oleh Ansible Control Node yang sudah dikonfigurasi untuk otomatisasi.

Kemudian, ada beberapa poin untuk langkah utama yang akan kita lakukan:

  • Update Server
  • Create User
  • Create Directory
  • Create Inventory
  • Create Template File
  • Create File Playbook
  • Run Playbook

Simak penjelasan dari langkah di atas berikut ini.

Update Server

Login sebagai root dan update package yang ada pada server agar up-to-date.

$ apt-get update -y
$ apt-get upgrade -y
$ reboot

 

Create User

Pembuatan user diperlukan untuk membuat dan menggunakan template di Ansible Playbooks, kamu bisa mempelajari caranya di bawah ini. Jangan lupa untuk mengubah username “raka” dengan nama yang ingin kamu gunakan. Namun, jika kamu sudah memiliki user, kamu bisa melewati langkah ini.

$ 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

 

Tambahkan user ke Sudo Group.

$ usermod -aG sudo raka

 

Create Directory

Buat direktori ansible-practice dan files di dalam ansible-practice.

$ cd ~
$ mkdir ansible-practice
$ mkdir ansible-practice/files

 

Create Inventory

Inventory di sini adalah daftar IP server yang akan dijadikan sebagai Ansible Host atau remote Host.

$ cd ansible-practice
$ nano inventory

103.xxx.xxx.201

 

Kemudian simpan dan keluar. Jangan lupa untuk mengubah alamat IP di atas menjadi IP server yang kamu gunakan.

Baca Juga: IP Address: Pengertian dan Jenis-Jenis Alamat IP

Create Template File

Buat file untuk template HTML testing page seperti di bawah ini.

$ nano ~/ansible-practice/files/testing-page.html.j2

 

Tempelkan script di bawah ini.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>{{ page_title }}</title>
  <meta name="description" content="Hi from Ansible">
</head>
<body>
    <h1>{{ page_title }}</h1>
    <p>{{ page_description }}</p>
</body>
</html>

 

Lalu simpan dan keluar. Template di atas menggunakan 2 variabel, yaitu page_title dan page_description yang nantinya akan dideklarasikan di Playbooks dan menggantikan default template dari Nginx, yaitu index.html.

 

Create File Playbook

Buat file playbook baru dengan nama playbook-te01.yml di direktori ansible-practice.

$ nano ~/ansible-practice/playbook-te01.yml

 

Tempelkan script di bawah ini.

---
- hosts: all
  become: yes
  vars:
    page_title: My Testing Page
    page_description: This is my Testing page description.
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: latest

    - name: Apply Page Template
      template:
        src: files/testing-page.html.j2
        dest: /var/www/html/index.html

    - name: Allow all access to tcp port 80
      ufw:
        rule: allow
        port: '80'
        proto: tcp

 

Run Playbook

Jalankan perintah ansible-playbook agar dapat mengeksekusi file yang baru dibuat sebelumnya.

$ ansible-playbook -i inventory playbook-te01.yml -u raka -K

 

Kemudian akan keluar output seperti di bawah ini.

BECOME password: 

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
Enter passphrase for key '/root/.ssh/id_rsa': 
ok: [103.xxx.xxx.201]

TASK [Install Nginx] ***********************************************************
ok: [103.xxx.xxx.201]

TASK [Apply Page Template] *****************************************************
changed: [103.xxx.xxx.201]

TASK [Allow all access to tcp port 80] *****************************************
ok: [103.xxx.xxx.201]

PLAY RECAP *********************************************************************
103.xxx.xxx.201            : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

 

Setelah prosesnya selesai, kamu bisa mengecek hasilnya dengan membuka URL IP, domain Ansible Host, atau remote server yang sudah kamu tambahkan di inventory, di sini kami menggunakan 103.xxx.xxx.201. Jika proses membuat dan menggunakan template ansible-playbooks berhasil dijalankan, tampilannya akan seperti gambar berikut ini.

tutorial ansible playbooks dewaweb

Baca Juga: KernelCare Mengatasi Meltdown dan Spectre Tanpa Reboot Server

Simpulan

Jika diikuti dengan tepat, berarti kamu sudah berhasil membuat dan menggunakan template Ansible Playbooks. Provisioning tool ini 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 membuat dan menggunakan template di Ansible Playbooks ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Salam sukses online!