Halo semua kembali lagi disini, Pada kesempatan kali ini kita akan belajar series Network Automation menggunakan Ansible. Di Part 2 kita akan mulai belajar menggunakan Playbook Ansible.

Ansible playbook merupakan kumpulan task yang akan dieksekusi secara otomatis terhadap hosts. Kemarin kita telah menggunakan salah satu ansible modules yaitu ios_facts yang dieksekusi dan memberikan output informasi umum terhadap perangkat. Dengan membentuk sebuah Playbook kita dapat menjalankan beberapa module untuk sebuah hosts atau inventory pada Ansible.

Ansible Playbook ditulis menggunakan YAML (YAML Ain't Markup Language) sebuah bahasa yang diguanakan untuk data serialization dan konfigurasi yang mudah dibaca. Jika diibaratkan mungkin YAML ini sama seperti JSON dalam segi fungsi nya.

Oke langsung saja kita mulai, Kalian bisa download first_playbook yang disediakan oleh Ansible disini, Yang akan menampilkan berupa script YAML seperti berikut.

---

- name: Network Getting Started First Playbook
  connection: ansible.netcommon.network_cli
  gather_facts: false
  hosts: all
  tasks:

    - name: Get config for VyOS devices
      vyos.vyos.vyos_facts:
        gather_subset: all

    - name: Display the config
      debug:
        msg: "The hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"


Di dalam script tersebut terdapat metode connection, dan beberapa module seperti os_facts yang diberikan subset untuk mengambil informasi perangkat, Kemudian pada key message terdapat module ansible_net_hostname, dan ansible_net_version yang digunakan untuk menampilkan hostname dan versi dari perangkat yang disimpan dalam key tasks dengan hosts all.

Notes : gather_subset dapat diisi beberapa argument seperti all, min, hardware, config, dan interfaces

Kita bisa edit beberapa module tersebut sesuai kebutuhan kita, Disini saya sedikit mengubah nya menjadi berikut :



Disini saya sedikit mengedit beberapa parameter seperti connection, dan modules menjadi  ios_facts untuk menyesuaikan perangkat yang digunakan, Sama seperti kemarin disini saya masih menggunakan Router Cisco. Untuk menjalankan Ansible menggunakan Playbook, Kita dapat menjalankan nya menggunakan perinta berikut :
ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml

Oke, Selanjutnya kita bisa mengganti -i untuk inventory menjadi host, -u untuk user menjadi user yang kita gunakan, Dan OS serta nama Playbook yang kita gunakan.

ansible-playbook -i 192.168.174.130, -u admin -k -e ansible_network_os=ios 01_playbook.yml
Disini saya memiliki host router cisco dengan IP 192.168.174.130/24 dan Playbook diatas disimpan dengan nama 01_playbook.yml. Mari kita coba eksekusi command tersebut.


Sampai sini kita sudah berhasil menggunakan playbook untuk mengambil Hostname dan juga versi OS dari perangkat, Untuk mengambil ios_facts seperti kemarin, Bisa ditambahkan key msg baru berisikan modules tersebut yaa..

Update Configuration Using Playbook

Oke, selanjutnya kita akan coba Update configuration dari router dan menampilkan nya menggunakan Playbook. Untuk example code dari Ansible kalian bisa download disini.


Selanjutnya disini kita akan membuat script sederhana dimana kita akan lakukan update Hostname dari perangkat. Untuk melakukan konfigurasi pada perangkat kita menggunakan module baru yaitu ios_config dimana kita membuat sebuah parameter lines yang berisi list configuration yang dapat kita masukan. Sebagai contoh disini kita akan mengupdate hostname menjadi Router-1. Kemudian pada line backup akan membuat sebuah folder berisi backup file sebelum dilakukan changes, Dan untuk lainya sama seperti yang digunakan sebelumnya. Mari kita eksekusi..
 

Oke untuk script update konfigurasi disini saya memberikan nama 02_playbook.yml, Dapat kita lihat disini bahwa kita mengambil data hostname diawal dan ditampilkan dengan nama R1 dimana ini adalah hostname existing, Kemudian setelah dilakukan task Update Hostname, Dibawah dapat kita lihat hostname sudah update menjadi Router-1.

Untuk konfigurasi lainnya silahkan dicoba dan explore lagi yaa.. 

Sampai sini kita telah belajar menggunakan Playbook pada Ansible yang berisikan beberapa task yang dapat kita panggil ke sebuah host. Namun kita hanya baru melakukan nya pada 1 host, Bagaimana jika host nya lebih dari 1? Ya kita dapat mengelompokan nya ke dalam inventory Ansible.. Semoga next nya bisa membahas inventory..

Sampai sini dulu semoga bermanfaat..

Stay Curious 

0 Comments