Netwerk automation met netmiko
Module 1: wat is de meerwaarde van network automation
- waarom automation: configuratie x1000, human error, repetitive tasks
- manuele netwerkconfiguraties: ccna 1-2-3 basic configuraties
- python scripting - manuele config
- wat is netmiko: connection handler ssh met modules voor alle merken
- een netwerk device klaarmaken voor automation: ssh connectivity
- een linux automation box: ubuntu, VM workstation, virtualbox
- automation tools: visual code studio, netmiko, console-ping-ssh
- virtual network emulators: eve ng, gns3, cisco images, real world devices
- tasks to be automated: gegevens opvragen, configureren, backup mgm
Hands-on oefeningen:
- opzetten ubuntu VM
- opzetten eve-ng vm
- opzetten netwerkomgeving
Module 2: Device klaarmaken voor automation
- minimum config om een network device klaar te maken voor automation?
- Netmiko installeren en upgraden op automation VM
- visual code studio voor de python scripts
- Data opvragen van een switch: show commando's
- Meerdere Switches aanspreken: list of loop maken
- Inventaris maken.
Hands-on oefeningen: 4 scripts te maken
- eerste script: show_ip_interfaces.py
- expect script: copy_running_config.py
- inventaris script: show_vlan.py en show_run.py
- maak een inventaris van alle switches: inventaris.
Module 3: commando's uitvoeren in netmiko
- facts opvragen : de Cisco "show" commando's
- de commando structuur cisco
- de configuratie wijzigen:
- commando's doorgeven: cisco enable, config, interface mode
- vlans maken, poorten sluiten, poorten in vlan plaatsen, trunks maken, gebruikers maken
- meerdere switches aanspreken met lists
Module 4: Netmiko in de praktijk
- backups maken naar txt bestand (lokaal en in de cloud)
- meer geavanceerde scripts
- expect string: Cisco Ios wacht op een bevestiging
- cursor zoeken
- except string: timeout en authentication errors
- first 5 minutes: baseline maken
- template alle device configs uniform maken
- templating met Jinja: variabelen en loops
Netwerk orchestration met Ansible
Module 1 : wat is het verschil tussen network automation en Orchestration
- waarom automation: eenmalige omslachtige en tijdrovende netwerk taken
- waarom orchestration: bewaren van een configuration baseline: geen snowflake devices
- wat is Ansible:opensource automation framework
- waarom Ansible: modulair, op basis van YAML scripts ipv python
- een netwerk device klaarmaken voor Ansible: ssh connectivity
- een linux automation box: ubuntu ,VM workstation, virtualbox
- automation tools: visual code studio, Ansible mappenstructuur, inventaris
- virtual network emulators: eve ng, gns3, cisco images, real world devices
- tasks to be automated: gegevens opvragen, configuratie controlleren, configureren indien nodig, idempotentie
Hands-on oefeningen:
- opzetten ubuntu VM
- opzetten eve-ng vm
- opzetten netwerkomgeving
Module 2: Devices en Linux VM klaarmaken voor Ansible
- minimum config om een network device klaar te maken voor Ansible?
- IP configuratie en SSH connectiviteit
- Linux VM installeren
- Python3 aan boord? (Ansible werkt met python modules)
- Ansible installeren en upgraden op automation VM
- visual code studio voor de Yaml scripts
- Ansible configureren:linux mappenstructuur, venv, ansible cfg, inventory
- Meerdere toestellen aanspreken: groups aanmaken in de inventory file
- Ad hoc commando's
Hands-on oefeningen: Ansible configureren en Eve-ng omgeving opzetten
mappenstructuur
- inventaris file, config file en ansible script
- netwerk aanmaken en configureren voor Ansible in Eve-ng
- kan je pingen naar je virtuele omgeving?
- inventaris testen met ad hoc commando.
Module 3: Ansible modules en playbooks
- Bouwstenen om taken uit te voeren
- Ansible task: een module uitvoeren en kijken of het nodig is om te configureren -> idempotent
- Ansible play's: meerdere tasks uitvoeren
- Ansible playbook: meerdere plays combineren
- Status na het uitvoeren van een play: ok, changed, unreachable en failed
- Gegevens opvragen: Ios facts modules
- Commando's doorgeven: Ios commands module
- Netcommon modules: all vendor framework om commando's door te sturen
- Werken met Variabelen:
- Basis staat Netwerk garanderen: alle commando's configureren minimum nodig op alle devices
Hands-on oefeningen:
- een Ansible playbook runnen
- omgaan met passwords en variabelen
- De hostname correct configureren aan de hand van onze inventaris
- Console logging uitschakelen zodat we niet overstelpt worden met messages
- Instellen dat wachtwoorden standaard geencrypteerd worden
- de ingebouwde http server uitschakelen
- ntp configureren
- De toegang tijdelijk blokkeren na een aantal mislukte login pogingen
- Een banner configureren
Module 4: praktijk: Alles samenvoegen: Ansible roles en playbooks met loops en templates
- VLANs configureren met een template
- eerste basisconfiguratie uitwerken
- Loops en Handlers: vb enkel een backup maken als iets gewijzigd werd.
- Ansible correcte mappenstructuur gebruiken: structuur van een inventaris
- Ansible vault: hoe omgaan met passwords en secrets
- Ansible roles map: gestructureerde manier om tasks, variablen, templates,… te bundelen in een aparte map: rol van een switch, router...
- Ansible roles samenvoegen tot een groot playbook: VLANs, VLAN trunks, spanning tree, link aggregations, OSPF configureren
- Werken met tags: slechts bepaalde delen van een playbook uitvoeren: vb zijn alle Vlans geconfigureerd?
- Ansible tower: grafische omgeving via web-based user interface