Ansible für Netzwerker - Automatisierung von Netzwerkkonfiguration und Netzwerkadministration
(TDE-ANNE)
Ansible ist ein Tool (eher eine Sammlung von Tools) zur Konfiguration, Verwaltung und Bereitstellung von Infrastruktur. Obwohl das Tool ursprünglich für das Management von Linux-Hosts entwickelt wurde, enthält die Software heute eine Vielzahl von Modulen und Plugins für das Management von Netzwerkkomponenten.
Dieser Kurs bietet Ihnen die Möglichkeit, Ihre Ansible-Skills (die Sie beispielsweise im Kurs Ansible – Automatisierung von Applikationen und Infrastruktur erworben haben) weiterzuentwickeln, um Netzwerkkomponenten effektiv zu verwalten. In diesem Training werden Sie fortgeschrittene Kenntnisse in der Netzwerkautomatisierung, den Modulen, Connection Plugins und Verbindungsoptionen erwerben, um Ihre Netzwerkgerätekonfiguration schnell, zuverlässig und fehlerfrei zu gestalten.
Kursinhalt
- Ansible Inventory: Verbindungsoptionen für Ansible mit Netzwerkgeräten
- Module für Netzwerkkonfigurationen – was muss man dabei beachten
- Typische Netzwerkkonfiguration: VLANs, VRFs und Konfiguration von Routing-Prozessen
- Erweiterte Jinja 2 Templates für Netzwerkkonfiguration
- Handlers und Idempotenz bei Netzwerkmodulen und Playbooks
- Verarbeitung von semistrukturierten Daten mit Ansible und Überprüfung des Datenschemas
- Netzwerkressourcenmodule und Configuration Drift
- Playbook-Ausführung steuern: Rolling Update und sequenzielle Konfiguration von Zielhosts
- Erstellung von Rollen für Netzwerkkonfiguration
- Debugging und Testing
Zielgruppe
Der Kurs richtet sich an Personen, die bereits über Grundkenntnisse im Umgang mit Ansible verfügen und ihr Wissen gezielt im Bereich Netzwerkkonfiguration und Netzwerkmanagement vertiefen möchten.
Voraussetzungen
Ein grundlegendes Verständnis von Ansible und Netzwerken (vorzugsweise sowohl über die Befehlszeilenschnittstelle als auch über API-basierte Methoden) ist Voraussetzung für eine erfolgreiche Teilnahme am Kurs. Linux-Kenntnisse sind wünschenswert, jedoch nicht zwingend erforderlich. Darüber hinaus sollten die Teilnehmer über das Wissen verfügen, dass im Kurs Ansible – Automatisierung von Applikationen und Infrastruktur vermittelt wird.
Inhaltsverzeichnis
1 Ansible Inventory
- 1.1 Ansible Inventory: Verbindungsoptionen
- 1.1.1 Network OS Platforms: ansible_connection
- 1.1.2 Überblick: Connection Plugins
- 1.1.3 Deep dive: network_cli
- 1.1.4 Plugin network_cli: Paramiko und LibSSH
- 1.2 Network OS Platform Options
- 1.2.1 IOS
- 1.2.2 NXOS
- 1.2.3 JunOS
- 1.2.4 IOS-XR
2 Collections und Module für Netzwerkkonfiguration
- 2.1 Collections
- 2.1.1 Überblick: typische Collections für Netzwerk-Playbooks
- 2.2 Generische Module und erste Konfigurationen
- 2.2.1 ios_command
- 2.2.2 ios_config
- 2.2.3 junos_config
3 Netzwerkkonfiguration
- 3.1 Basiskonfiguration und Network Resource Modules
- 3.1.1 Interfaces konfigurieren
- 3.1.2 State: merged, replaced und deleted
- 3.1.3 Vorsicht mit state: overridden
- 3.2 Advanced Konfiguration: VRF, Routing Prozesse und Backups
- 3.2.1 show commands
- 3.2.2 VRFs
- 3.2.3 Statische Routen
- 3.2.4 Routing Prozesse
- 3.2.5 Configuration: Backup und Restore
- 3.2.6 Playbooks Parametrisieren
- 3.2.7 Rollenkonzept
4 Best Practices und typische Fallen
- 4.1 Optimierungen
- 4.1.1 Fact caching
- 4.1.2 In-Place speichern
- 4.1.3 Wenn möglich Schleifen vermeiden
- 4.1.4 Connection Plugins
- 4.1.5 Linux Module
- 4.1.6 Module Defautls
- 4.1.7 Idempotency
- 4.1.8 Backups und Fact Caching
5 Advanced Konfigurationsmittel
- 5.1 Jinja 2
- 5.1.1 Schleifen, Bedingungen und Verzweigungen
- 5.1.2 Ansible Module und Jinja 2
- 5.1.3 Alles steckt in Details
- 5.1.4 Jinja 2 Skripte in Playbooks
- 5.2 Semistructured Data
- 5.2.1 NTC-Templates
- 5.2.2 Eigene Parsing-Templates
- 5.3 Ausführung von Playbooks steuern
- 5.3.1 Serial und Rolling Updates
- 5.3.2 Dynamische Gruppierung mit group_by
6 Debugging und Testing
- 6.1 Methoden: Pre-Deployment
- 6.1.1 Callback Plugins: debug und yaml
- 6.1.2 Ressourcenmodul rendered
- 6.1.3 Ressourcenmodul parsed
- 6.1.4 Lookup Plugins
- 6.2 Methoden: Deployment
- 6.2.1 Zeitstempel
- 6.2.2 Debug und Verbosity in Ansible