D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

Déi kommend Verëffentlechung vum Red Hat Ansible Engine 2.9 bréngt spannend Verbesserungen, e puer vun deenen an dësem Artikel diskutéiert ginn. Wéi ëmmer hu mir d'Ansible Network Verbesserungen offen entwéckelt, mat Gemeinschaftssupport. Maacht mat - kuckt op erausginn Board op GitHub a studéiert den Entwécklungsplang fir Verëffentlechung vum Red Hat Ansible Engine 2.9 op der Wiki Säit fir Ansible Network.

Wéi mir viru kuerzem ugekënnegt hunn, Red Hat Ansible Automatiséierung Plattform enthält elo Ansible Tower, Ansible Engine an all Ansible Network Inhalt. Hautdesdaags ginn déi populärste Netzwierkplattformen duerch Ansible Moduler implementéiert. Zum Beispill:

  • Arista EOS
  • Cisco iOS
  • Cisco IOS XR
  • Cisco NX-OS
  • Juniper Junos
  • VyOS

Fir eng komplett Lëscht vu Plattformen déi komplett vum Red Hat duerch Ansible Automation Abonnement ënnerstëtzt ginn, hei publizéiert.

Wat hu mir geléiert

An de leschte véier Joer hu mir vill geléiert iwwer d'Entwécklung vun enger Netzwierkautomatiséierungsplattform. Dat hu mir och geléiert wéi Plattform Artefakte ginn an Ansible Playbooks a Rollen vun Endbenotzer benotzt. An hei ass wat mir erausfonnt hunn:

  • Organisatiounen automatiséieren Apparater vun net nëmmen engem, mee vill Ubidder.
  • Automatisatioun ass net nëmmen en technesche Phänomen, mee och e kulturellen.
  • Automatiséierend Netzwierker op Skala ass méi schwéier wéi et schéngt wéinst de fundamentalen architektonesche Prinzipien vum Automatisatiounsdesign.

Wéi mir eis laangfristeg Wuesstumspläng virun iwwer engem Joer diskutéiert hunn, hunn eis Firmeclienten no folgend gefrot:

  • Fakt Sammlung muss besser standardiséiert ginn an ausgeriicht mat Automatisatiounsworkflows iwwer all Apparater.
  • D'Aktualiséierung vun der Konfiguratioun um Apparat muss och standardiséiert a konsequent sinn, sou datt Ansible Moduler déi zweet Halschent vum Zyklus handhaben nodeems se Fakten sammelen.
  • Mir brauche rigoréis an ënnerstëtzt Methoden fir d'Konfiguratioun vun Apparater a strukturéiert Daten ëmzewandelen. Op dëser Basis kann d'Quell vun der Wourecht vum Netzapparat geréckelt ginn.

Tatsaach Verbesserungen

Fakten sammelen aus Netzwierkapparater mat Ansible geschitt dacks zoufälleg. Web-baséiert Plattformen hu variéierend Grad vu Tatsaach-Sammlefäegkeeten, awer si hu wéineg oder guer keng Funktionalitéit fir d'Representatioun vun Daten a Schlësselwäertpaaren ze analyséieren an ze standardiséieren. Liesen posten Ken Celenza iwwer wéi schwéier a schmerzhaft et ka sinn, sachlech Donnéeën ze analyséieren an ze standardiséieren.

Dir hutt vläicht gemierkt datt mir un der Ansible Network Engine Roll schaffen. Natierlech, 24K Downloads méi spéit, ass d'Roll Network Engine séier eng vun de populäersten Ansible Rollen an Ansible Galaxy fir Netzwierkautomatiséierungsszenarien ginn. Ier mir vill vun dësem an Ansible 2.8 geplënnert hunn fir ze preparéieren op dat wat an Ansible 2.9 gebraucht gëtt, huet dës Ansible Roll den éischte Set vun Tools zur Verfügung gestallt fir Kommandoen ze analyséieren, Kommandoen ze managen an Daten fir Netzwierkapparater ze sammelen.

Wann Dir wësst wéi Dir Network Engine benotzt, ass dëst e ganz effiziente Wee fir Faktdaten ze sammelen, ze analyséieren an ze standardiséieren fir an Ansible ze benotzen. Den Nodeel vun dëser Roll ass datt Dir e ganze Koup Parser fir all Plattform a fir all Netzwierkaktivitéit erstellen musst. Fir ze verstoen wéi schwéier et ass Parser ze kreéieren, ze verschécken an z'erhalen, kuckt op Méi wéi 1200 Parser vun de Kärelen op Cisco.

An enger Nossschuel, Fakten vun Apparater ze kréien an se a Schlësselwäertpaaren ze normaliséieren ass essentiell fir Automatiséierung op Skala, awer dëst z'erreechen ass schwéier wann Dir vill Ubidder an Netzwierkplattformen hutt.

All Netzwierk Faktmodul an Ansible 2.9 kann elo d'Konfiguratioun vun engem Netzwierkapparat analyséieren an strukturéiert Daten zréckginn - ouni zousätzlech Bibliothéiken, Ansible Rollen oder personaliséiert Parser.

Zënter Ansible 2.9, all Kéier wann en aktualiséiert Netzwierkmodul verëffentlecht gëtt, gëtt de Faktmodul verbessert fir Daten iwwer dës Sektioun vun der Konfiguratioun ze bidden. Dat ass, d'Entwécklung vu Fakten a Moduler geschitt elo am selwechte Tempo, a si wäerten ëmmer eng gemeinsam Datestruktur hunn.

D'Konfiguratioun vun de Ressourcen op engem Netzwierkapparat kann op zwou Manéieren zréckgezunn an a strukturéiert Daten ëmgewandelt ginn. Op béide Weeër kënnt Dir eng spezifesch Lëscht vu Ressourcen sammelen an transforméieren mat engem neie Schlësselwuert gather_network_resources. D'Ressourcenimm passen mat de Modulnimm, wat ganz bequem ass.

Wärend Fakten sammelen:

Mat engem Schlësselwuert gather_facts Dir kënnt déi aktuell Apparat Configuratioun um Ufank vun der playbook recuperéieren, an dann benotzen se am ganze playbook. Gitt d'individuell Ressourcen un, déi vum Apparat erëmfonnt ginn.

- hosts: arista
  module_defaults:
    eos_facts:
      gather_subset: min
      gather_network_resources:
      - interfaces
  gather_facts: True

Dir hutt vläicht eppes Neies an dëse Beispiller gemierkt, nämlech - gather_facts: true ass elo verfügbar fir gebierteg Faktensammlung fir Netzwierkapparater.

Benotzt den Netzwierk Faktmodul direkt:

- name: collect interface configuration facts
  eos_facts:
    gather_subset: min
    gather_network_resources:
    - interfaces

D'Spillbuch gëtt déi folgend Fakten iwwer den Interface zréck:

ansible_facts:
   ansible_network_resources:
      interfaces:
      - enabled: true
        name: Ethernet1
        mtu: '1476'
      - enabled: true
        name: Loopback0
      - enabled: true
        name: Loopback1
      - enabled: true
        mtu: '1476'
        name: Tunnel0
      - enabled: true
        name: Ethernet1
      - enabled: true
        name: Tunnel1
      - enabled: true
        name: Ethernet1

Notéiert wéi Ansible déi gebierteg Konfiguratioun vum Arista-Apparat zréckhëlt an se a strukturéiert Daten transforméiert fir als Standard Schlësselwäertpaar fir Downstream Aufgaben an Operatiounen ze benotzen.

Interface Fakten kann zu Ansible gespäichert Verännerlechen dobäi ginn an direkt oder spéider als Input zu engem Ressource Modul benotzt eos_interfaces ouni zousätzlech Veraarbechtung oder Konversioun.

Ressource Moduler

Also, mir hunn d'Fakten extrahéiert, d'Donnéeën normaliséiert, se an e standardiséierte internen Datestrukturdiagramm passen an eng fäerdeg Quell vun der Wourecht kritt. Hour! Dëst ass natierlech super, awer mir mussen ëmmer nach iergendwéi d'Schlësselwäertpaaren zréck an déi spezifesch Konfiguratioun konvertéieren déi déi spezifesch Apparatplattform erwaart. Mir brauchen elo plattformspezifesch Moduler fir dës nei Faktensammlung an Normaliséierungsfuerderunge gerecht ze ginn.

Wat ass e Ressource Modul? Dir kënnt d'Konfiguratiounssektiounen vun engem Apparat als Ressourcen vun deem Apparat denken. Netzwierk Ressource Moduler sinn bewosst op eng eenzeg Ressource limitéiert a kënne gestapelt ginn wéi Bausteng fir komplex Netzwierkservicer ze konfiguréieren. Als Resultat sinn d'Ufuerderungen an d'Spezifikatioun fir e Ressourcemodul natierlech vereinfacht, well de Ressourcemodul kann liesen и Konfiguréieren e spezifeschen Netzwierkservice op engem Netzwierkapparat.

Fir z'erklären wat e Ressourcemodul mécht, loosst eis e Beispill Spillbuch kucken dat eng idemoden Operatioun weist mat neien Netzwierkressourcen Fakten a Modul eos_l3_interface.

- name: example of facts being pushed right back to device.
  hosts: arista
  gather_facts: false
  tasks:
  - name: grab arista eos facts
    eos_facts:
      gather_subset: min
      gather_network_resources: l3_interfaces

  - name: ensure that the IP address information is accurate
    eos_l3_interfaces:
      config: "{{ ansible_network_resources['l3_interfaces'] }}"
      register: result

  - name: ensure config did not change
    assert:
      that: not result.changed

Wéi Dir kënnt gesinn, ginn d'Donnéeën, déi vum Apparat gesammelt ginn, direkt an de entspriechende Ressourcemodul ouni Konversioun transferéiert. Wann lancéiert, recuperéiert d'Playbook Wäerter vum Apparat a vergläicht se mat erwaarten. An dësem Beispill sinn d'Wäerter zréck wéi erwaart (dat heescht, et kontrolléiert no Konfiguratiounsabweichungen) a bericht ob d'Konfiguratioun geännert huet.

Den ideale Wee fir Konfiguratiounsdrift z'entdecken ass d'Fakten an Ansible gespäichert Variablen ze späicheren an se periodesch mam Ressourcemodul am Inspektiounsmodus ze benotzen. Dëst ass eng einfach Method fir ze kucken ob iergendeen d'Wäerter manuell geännert huet. Am meeschte Fäll erlaben Organisatiounen Ännerungen a Konfiguratioun manuell, obwuel vill Operatiounen duerch Ansible Automation duerchgefouert ginn.

Wéi ënnerscheede sech déi nei Ressourcemodule vun de fréiere?

Fir en Netzwierkautomatiséierungsingenieur sinn et 3 Haaptdifferenzen tëscht Ressourcemoduler an Ansible 2.9 a fréiere Versiounen.

1) Fir eng bestëmmte Ressource Ressource (déi kann och als Konfiguratioun Rubrik geduecht ginn), Moduler a Fakten wäert iwwer all ënnerstëtzt Reseau Betribssystemer gläichzäiteg entwéckelen. Mir denken datt wann Ansible Ressourcekonfiguratioun op enger Netzwierkplattform ënnerstëtzt, mir et iwwerall sollten ënnerstëtzen. Dëst vereinfacht d'Benotzung vu Ressourcemoduler well en Netzwierkautomatiséierungsingenieur elo eng Ressource (wéi LLDP) op all Netzwierkbetribssystemer mat gebierteg an ënnerstëtzte Moduler konfiguréieren.

2) Ressource Moduler enthalen elo e Staat Wäert.

  • merged: d'Konfiguratioun gëtt mat der virgesinner Konfiguratioun fusionéiert (Standard);
  • replaced: D'Ressourcekonfiguratioun gëtt duerch déi virgesinn Konfiguratioun ersat;
  • overridden: D'Ressourcekonfiguratioun gëtt duerch déi virgesinn Konfiguratioun ersat; onnéideg Ressource Instanzen wäert geläscht ginn;
  • deleted: D'Ressourcekonfiguratioun gëtt geläscht / op Standard restauréiert.

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

3) Ressource Moduler enthalen elo stabil Retour Wäerter. Wann d'Netz Ressource Modul huet (oder proposéiert) déi néideg Ännerungen un der Reseau Apparat gemaach, et nees déi selwecht Schlëssel-Wäert Puer op d'Playbook.

  • before: Konfiguratioun um Apparat a Form vu strukturéierten Donnéeën virun der Aufgab;
  • after: wann den Apparat geännert huet (oder kann änneren wann Testmodus benotzt gëtt), gëtt déi resultéierend Konfiguratioun als strukturéiert Daten zréckginn;
  • commands: All Konfiguratiounsbefehle lafen um Apparat fir en an de gewënschten Zoustand ze bréngen.

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

Wat heescht dat alles? Firwat ass et wichteg?

Dëse Post deckt vill komplex Konzepter, awer mir hoffen, datt Dir am Endeffekt e bessert Verständnis hutt vu wat d'Entreprise Cliente fir tatsächlech Sammlung, Datennormaliséierung a Loopkonfiguratioun fir eng Automatisatiounsplattform froen. Awer firwat brauche se dës Verbesserungen? Vill Organisatiounen verfollegen elo digital Transformatioun fir hir IT Ëmfeld méi agil a kompetitiv ze maachen. Fir besser oder méi schlëmm ginn vill Netzwierkingenieuren Netzwierkentwéckler entweder aus Selbstinteresse oder op Uerder vum Management.

Organisatiounen realiséieren datt d'Automatiséierung vun eenzelne Netzwierkschablounen de Problem vu Siloen net léist an nëmmen d'Effizienz zu engem gewësse Mooss erhéicht. D'Red Hat Ansible Automation Platform bitt rigoréis an normativ Ressourcedatenmodeller fir programmatesch déi Basisdaten op engem Netzwierkapparat ze managen. Dat ass, d'Benotzer verloossen graduell individuell Konfiguratiounsmethoden zugonschte vu méi modernen Methoden mat engem Schwéierpunkt op Technologien (zum Beispill IP Adressen, VLANs, LLDP, etc.), anstatt op eng spezifesch Verkeefer Ëmsetzung.

Heescht dat, datt d'Deeg vun zouverlässeg a bewisen Kommando Moduler an Configuratioun sinn nummeréiert? Op kee Fall. Déi erwaart Ressourcemodule wäerten net an alle Fäll oder fir all Verkeefer applicabel sinn, sou datt d'Kommando- an d'Konfiguratiounsmoduler nach ëmmer vun Netzwierkingenieure fir bestëmmte Implementatioune gebraucht ginn. Den Zweck vun de Ressource Moduler ass et fir grouss Jinja Templates ze vereinfachen an onstrukturéiert Apparat Konfiguratiounen an e strukturéierten JSON Format ze normaliséieren. Mat Ressource Moduler wäert et méi einfach sinn fir existent Netzwierker hir Konfiguratioun an strukturéiert Schlëssel-Wäertpairen ze transforméieren, déi eng einfach ze liesen Quell vun der Wourecht representéieren. Andeems Dir strukturéiert Schlësselwäertpaaren benotzt, kënnt Dir vu lafende Konfiguratiounen op all Apparat réckelen fir mat onofhängege strukturéierten Donnéeën ze schaffen an Netzwierker un d'Spëtzt vun enger Infrastruktur-als-Code Approche ze bréngen.

Wéi eng Ressourcemodule kommen an Ansible Engine 2.9?

Ier mir Iech am Detail soen wat an Ansible 2.9 geschéie wäert, loosst eis drun erënneren wéi mir de ganzen Ëmfang vun der Aarbecht opgedeelt hunn.

Mir hunn 7 Kategorien identifizéiert a spezifesch Netzwierkressourcen un all zougewisen:

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

Notiz: Fette Ressourcen goufen an Ansible 2.9 geplangt an ëmgesat.
Baséierend op Feedback vun Enterprise Clienten an der Communautéit, war et logesch fir d'éischt dës Moduler unzegoen am Zesummenhang mat Netzwierktopologieprotokoller, Virtualiséierung an Interfaces.
Déi folgend Ressourcemodule goufen vum Ansible Network Team entwéckelt a korrespondéiere mat de Plattformen déi vum Red Hat ënnerstëtzt ginn:

D'Inside Playbook. Networking Features am neien Ansible Engine 2.9

Déi folgend Moduler gi vun der Ansible Gemeinschaft entwéckelt:

  • exos_lldp_global - vun Extreme Networks.
  • nxos_bfd_interfaces - vun Cisco
  • nxos_telemetry - vun Cisco

Wéi Dir gesitt, passt d'Konzept vu Ressourcemoduler an eis plattformzentresch Strategie. Dat ass, mir enthalen déi néideg Fäegkeeten a Funktiounen an Ansible selwer fir Standardiséierung an der Entwécklung vun Netzwierkmoduler z'ënnerstëtzen, an och d'Aarbecht vun de Benotzer um Niveau vun Ansible Rollen a Playbooks ze vereinfachen. Fir d'Entwécklung vu Ressourcemoduler auszebauen, huet d'Ansible Team de Module Builder Tool verëffentlecht.

Pläng fir Ansible 2.10 an doriwwer eraus

Wann d'Ansible 2.9 erauskomm ass, wäerte mir un den nächste Set vu Ressourcemoduler fir Ansible 2.10 schaffen, déi kënne benotzt ginn fir weider Netzwierktopologie a Politik ze konfiguréieren, z.B. ACL, OSPF und BGP. Den Entwécklungsplang kann nach ugepasst ginn, also wann Dir Kommentaren hutt, mellt Iech w.e.g. un Ansible Network Communautéit.

Ressourcen an unzefänken

Pressematdeelung iwwer Ansible Automation Plattform
Ansible Automation Plattform Blog
D'Zukunft vun Inhalt Liwwerung an Ansible
Reflexiounen iwwer d'Ännerung vun der Ansible Projet Struktur

Source: will.com

Setzt e Commentaire