Study Case: Ansible untuk RouterOS MikroTik

Artikel ini akan memberikan temen-temen sedikit pencerahan bagaimana menggunakan Ansible (IT Otomation Tools) pada jaringan, yang mana contoh kali ini adalah untuk MikroTik RouterOS.

Ansible sangat membantu temen-temen jika akan mengkonfigurasi device routerboard banyak atau Sangat Banyak. Ansible adalah tools gratis, tinggal pakai, jadi pasti sangat membantu dalam pekerjaan.

Keuntungan Ansible adalah bisa mendokumentasikan konfigurasi, utk kolaborasi dengan team sangat baik karena tinggal lihat konfig admin pemula akan tau konfigurasi dari awal sampai akhir.

Jika sudah dibuat konfigurasinya tinggal jalankan saja, tanpa konfigurasi ulang.

Langkah-langkah menggunakan ansible untuk menkonfigurasi routeros mikrotik:

Persiapan:

  • Linux Ubuntu Desktop (16.04/18.04)
  • SSH Client, umumnya sudah ada. Jika belum ada silahkan instal dulu $ sudo apt-get install openssh-client
  • SSH Key (Private & Public) – Jika belum generate silahkan generate dulu. ikuti artikel berikut: Cara Login SSH Server tanpa Password (Key Pair Authentication)
  • Copy SSH Public Key id_rsa.pub ke RouterOS.

1 – Instal Ansible

Untuk instalasi ansible tidaklah sulit, silahkan baca tutorial berikut: https://www.lukmanlab.com/instalasi-ansible-di-linux-ubuntu/

2 – Buat File Host dan Playbook

Pertama, buat file Host: $ nano hosts, file ini merupakan inventory host (daftar kumpulan ip address router mikrotik) yang akan dikonfigurasi bersamaan.

Jika anda ingin konfigurasi 2 atau lebih device, silahkan tambahkan pada baris setelahnya dan silahkan sesuaikan user mikrotik-nya. Pastikan lagi anda bisa melakukan remote devices mikrotik dengan ssh tanpa password.

[rb1]
192.168.4.1 ansible_user=lukman ansible_network_os=routeros

Kedua, buat File Playbook .yml $ nano main.yml, file ini berisi daftar command yang akan kita kirim ke router mikrotik yang sudah didaftarkan pada file hosts (inventory) tadi.

---
- hosts: rb1
  connection: network_cli
  gather_facts: no 

  tasks:
  - name: Contoh Menambahkan IP Address Ether2
    routeros_command:
      commands: /ip address add address=192.168.100.1/24 interface=ether2

3 – Running

Jalankan dengan perintah berikut:

$ ansible-playbook -i hosts main.yml

Lebih jelasnya lihat overview video berikut, untuk mempermudah:

Penggunaan Variable Ansible untuk Konfigurasi

Berikut saya contohkan bagaimana menggunakan variable pada command yang akan kita kirim ke mikrotik.

---
- hosts: rb1
  connection: network_cli
  vars:
    name: user1
    passwd: 12345678
    comment: User_Satu
  gather_facts: no 

  tasks:
  - name: Add User Profile
    routeros_command:
      commands: "/ip hotspot user profile add address-list={{ name }} idle-timeout=4h incoming-filter={{ name }}-in incoming-packet-mark=packet-{{ name }}-in name={{ name }} outgoing-packet-mark=packet-{{ name }}-out shared-users=3"

Catatan: Apapun command yang anda kirim ke devices lewat playbook, pastikan sesuai dengan kaidah penulisan ketika anda konfigurasi secara manual. Jika script command yang anda kirim tidak berjalan sempurna, bisa jadi ada yang miss pada script command anda.

LukmanLAB
About Ahmad Lukman Hakim 61 Articles
Admin LUKMANLAB, Network Engineer, System Administrator.