Ansible Network Automation Part 2 - Playbook
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 :
ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml
ansible-playbook -i 192.168.174.130, -u admin -k -e ansible_network_os=ios 01_playbook.ymlDisini 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.
Update Configuration Using Playbook
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..
0 Comments