Ansible Network Automation Part 1 - Introduction
Ansible
Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. - Wiki
Mudahnya Ansible merupakan automation tools atau infrastructure as a code yang tersedia secara open source. Tidak hanya networking, Dengan ansible sebagai IAAS kita dapat melakukan berbagai macam hal seperti membuat dan menghapus server, management aplikasi, Atau lebih khusus pada network kita dapat melakukan konfigurasi pada beberapa router pada waktu yang bersamaan.
Pada network tradisional Control Plane, Data Plane, dan Management Plane masih menjadi satu kesatuan di dalam perangkat, Sehingga jika kita ingin melakukan remote dan konfigurasi pada 10 router, Kita akan melakukan nya perangkat demi perangkat.
Solusi lain adalah dengan menggunakan Software-Defined Network seperti, ACI, SDA, Ataupun SD-WAN yang menerapkan konsep ZTP. Namun kita tetap perlu memahami beberapa tools automation baik Ansible itu sendiri ataupun menggunakan Python. Karena dengan menggunakan tools tersebut Software-Defined Network pun dapat kita Automate Lhoo.
Getting Started with Ansible
Pada Ansible terdapat 3 komponen utama yaitu :
- Control Node
Host yang diinstal Ansible, Dimana Control Node ini yang akan mengeksekusi script Ansible. - Managed Node
Remote host yang di kontrol oleh ansible, Managed Node dapat berupa Server, Application, Networking devices such a router or switches. - Inventory
Sebuah list dari Managed Node yang dikelola untuk diterapkan kontrol menggunakan Ansible.
Baik selanjutnya langkah yang perlu kita lakukan adalah installasi Ansible pada host kita, Disini saya menggunakan Ubuntu 20.04 Focal Fossa. Untuk OS lain kalian bisa lihat documentation nya disini
Installing Ansible Ubuntu 20.04 $ sudo apt update $ sudo apt install software-properties-common $ sudo add-apt-repository --yes --update ppa:ansible/ansible $ sudo apt install ansible tegar@Dominator:~$cd /etc/ansible tegar@Dominator:/etc/ansible$ ansible --version [WARNING]: Ansible is being run in a world writable directory (/etc/ansible), ignoring it as an ansible.cfg source. For more information see https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir ansible [core 2.12.7] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/tegar/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible ansible collection location = /home/tegar/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible python version = 3.8.10 (default, Nov 14 2022, 12:59:47) [GCC 9.4.0] jinja version = 2.10.1 libyaml = True
Run First Command Using Ansible
Biasanya kita akan melakukan remote SSH ke perangkat dengan cara seperti gambar diatas, Mari kita lakukan dengan Ansible.
ansible all -i vyos.example.net, -c ansible.netcommon.network_cli -u my_vyos_user -k -m vyos.vyos.vyos_facts -e ansible_network_os=vyos.vyos.vyosPada contoh kita terdapat beberapa parameter diantaranya :
- the inventory (-i, Merupakan inventory dari device target)
- the connection method (-c, Merupakan metode untuk koneksi dan melakukan eksekusi ansible)
- the user (-u, Username pada koneksi SSH)
- the ssh connection method (-k, Please prompt the password)
- the module (-m, Ansible module yang dapat dijalankan menggunakan Fully Qualified Domain Name (FQDN)
- the extra variable (-e, Digunakan untuk extra variable, Pada case ini digunakan untuk OS Value)
0 Comments