Situatie
Ansible este o platformă open-source de automatizare care permite administrarea infrastructurilor IT prin intermediul unor fișiere text denumite playbook-uri. Acestea descriu într-un mod simplu și repetabil operațiunile care trebuie executate asupra echipamentelor gestionate.
Printre avantajele utilizării Ansible se numără:
- eliminarea configurărilor repetitive
- reducerea erorilor generate de intervențiile manuale
- implementarea rapidă a modificărilor la nivelul întregii infrastructuri
- posibilitatea documentării și versionării configurațiilor
- scalabilitate ridicată pentru medii enterprise.
Solutie
Soluția este formată din trei componente principale:
- Stația de administrare pe care rulează Ansible
- Fișierul inventar care conține echipamentele Cisco
- Playbook-ul care definește configurațiile ce trebuie aplicate.
Schiță logică
+--------------------+
| Server Ansible |
| Linux / Ubuntu |
+---------+----------+
|
| SSH
|
+---------+---------+
| Switch 1 |
+-------------------+
+-------------------+
| Switch 2 |
+-------------------+
+-------------------+
| Router 1 |
+-------------------+
Un singur server Ansible poate administra simultan numeroase dispozitive de rețea.
Pentru implementarea soluției sunt necesare:
- Python instalat pe serverul de administrare
- Ansible instalat
- conectivitate SSH către echipamentele Cisco
- cont cu privilegii administrative
- acces la rețea între server și echipamente.
Exemplu de verificare a instalării:
ansible --version
Fișierul inventar reprezintă lista echipamentelor care vor fi administrate.
Exemplu:
[cisco_switches]
SW-CORE-01 ansible_host=192.168.10.10
SW-CORE-02 ansible_host=192.168.10.11
[cisco_routers]
RTR-HQ-01 ansible_host=192.168.20.1
Acest fișier permite gruparea echipamentelor în funcție de rolul lor.
Un playbook este fișierul care conține instrucțiunile ce vor fi executate.
Exemplul de mai jos configurează un VLAN pe toate switch-urile din grup:
---
- name: Configurare VLAN 100
hosts: cisco_switches
gather_facts: no
tasks:
- name: Creare VLAN
ios_config:
lines:
- vlan 100
- name MANAGEMENT
După executarea playbook-ului, VLAN-ul va fi creat pe toate echipamentele definite în inventar.
Un scenariu frecvent îl reprezintă activarea unui VLAN nou în întreaga organizație. În loc să ne conectăm individual pe fiecare switch, putem utiliza următorul playbook:
---
- name: Configurare porturi access
hosts: cisco_switches
gather_facts: no
tasks:
- name: Configurare port GigabitEthernet1/0/10
ios_config:
lines:
- switchport mode access
- switchport access vlan 100
parents:
- interface GigabitEthernet1/0/10
Același set de comenzi este aplicat automat pe toate dispozitivele selectate.
Una dintre cele mai utile funcționalități ale Ansible este posibilitatea efectuării backup-urilor automate.
Exemplu:
---
- name: Backup configuratie Cisco
hosts: all
gather_facts: no
tasks:
- name: Colectare configuratie
ios_config:
backup: yes
În urma execuției, fișierele de configurare sunt salvate local pentru analiză sau restaurare ulterioară.
Administrator
|
v
Modifică Playbook
|
v
Testare în laborator
|
v
Validare
|
v
Executare Ansible
|
v
Aplicare pe toate echipamentele
|
v
Raport și verificare
Acest proces reduce semnificativ riscul introducerii unor configurații eronate în producție.
În infrastructurile de dimensiuni medii și mari, automatizarea poate reduce timpul de implementare de la câteva ore la câteva minute.
Beneficiile principale sunt:
- implementare uniformă a configurațiilor
- eliminarea diferențelor dintre echipamente
- reducerea timpului de mentenanță
- posibilitatea revenirii rapide la configurații anterioare
- audit și trasabilitate îmbunătățite
- integrare cu sisteme DevOps și Git.
Pentru o implementare sigură se recomandă:
- utilizarea autentificării pe bază de chei SSH;
- stocarea parolelor în Ansible Vault;
- limitarea accesului administrativ;
- testarea modificărilor într-un mediu separat înainte de aplicarea în producție;
- păstrarea unui backup actualizat al configurațiilor.
Leave A Comment?