Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Gaidāmajā Red Hat Ansible Engine 2.9 izlaidumā ir iekļauti aizraujoÅ”i uzlabojumi, no kuriem daži ir apskatÄ«ti Å”ajā rakstā. Kā vienmēr, mēs esam izstrādājuÅ”i Ansible tÄ«kla uzlabojumus atklāti, ar kopienas atbalstu. Pievienojieties mums - apskatiet izdoÅ”anas dēlis vietnē GitHub un izpētÄ«t attÄ«stÄ«bas plānu Red Hat Ansible Engine 2.9 izlaiÅ”ana wiki lapā, kas paredzēta Ansible tÄ«kls.

Kā mēs nesen paziņojām, Red Hat Ansible automatizācijas platforma tagad ietver Ansible Tower, Ansible Engine un visu Ansible Network saturu. Mūsdienās populārākās tīkla platformas tiek ieviestas caur Ansible moduļiem. Piemēram:

  • Arista EOS
  • Cisco IOS
  • Cisco IOS XR
  • Cisco NX-OS
  • KadiÄ·is Junos
  • VyOS

Lai iegÅ«tu pilnu sarakstu ar platformām, kuras pilnÄ«bā atbalsta Red Hat, izmantojot Ansible Automation abonementu, publicēts Å”eit.

Ko mēs esam iemācÄ«juÅ”ies

Pēdējo četru gadu laikā mēs esam daudz iemācÄ«juÅ”ies par tÄ«kla automatizācijas platformas izstrādi. To arÄ« mēs uzzinājām kā platformas artefaktus izmanto Ansible rokasgrāmatās un lomās galalietotāji. Un lÅ«k, ko mēs uzzinājām:

  • Organizācijas automatizē ierÄ«ces no ne tikai viena, bet daudziem pārdevējiem.
  • Automatizācija ir ne tikai tehniska, bet arÄ« kultÅ«ras parādÄ«ba.
  • TÄ«klu automatizācija mērogā ir grÅ«tāka, nekā Ŕķiet, automatizācijas projektÄ“Å”anas arhitektÅ«ras pamatprincipu dēļ.

Kad pirms vairāk nekā gada apspriedām savus ilgtermiņa izaugsmes plānus, mÅ«su korporatÄ«vie klienti prasÄ«ja sekojoÅ”o:

  • Faktu apkopoÅ”ana ir labāk jāstandartizē un jāsaskaņo ar automatizācijas darbplÅ«smām visās ierÄ«cēs.
  • IerÄ«ces konfigurāciju atjaunināŔanai arÄ« jābÅ«t standartizētai un konsekventai, lai Ansible moduļi apstrādātu cikla otro pusi pēc faktu apkopoÅ”anas.
  • Mums ir vajadzÄ«gas stingras un atbalstÄ«tas metodes ierÄ«ces konfigurācijas pārvērÅ”anai strukturētos datos. Pamatojoties uz to, patiesÄ«bas avotu var pārvietot no tÄ«kla ierÄ«ces.

Faktu uzlabojumi

Faktu vākÅ”ana no tÄ«kla ierÄ«cēm, izmantojot Ansible, bieži notiek nejauÅ”i. TÄ«mekļa platformām ir dažādas pakāpes faktu vākÅ”anas iespējas, taču tām ir maz vai nav funkcionalitātes datu parsÄ“Å”anai un standartizÄ“Å”anai atslēgu un vērtÄ«bu pāros. LasÄ«t post Kens Celenza par to, cik grÅ«ti un sāpÄ«gi var bÅ«t faktu datu analÄ«ze un standartizācija.

Iespējams, esat pamanÄ«juÅ”i, ka strādājam pie Ansible Network Engine lomas. Protams, 24 2.8 lejupielādes vēlāk, tÄ«kla dzinēja loma ir ātri kļuvusi par vienu no populārākajām Ansible lomām Ansible Galaxy tÄ«kla automatizācijas scenārijos. Pirms lielu daļu no tā pārcēlām uz Ansible 2.9, lai sagatavotos tam, kas bÅ«s nepiecieÅ”ams Ansible XNUMX, Ŕī Ansible loma nodroÅ”ināja pirmo rÄ«ku komplektu, kas palÄ«dzēja parsēt komandas, pārvaldÄ«t komandas un vākt datus tÄ«kla ierÄ«cēm.

Ja zināt, kā izmantot Network Engine, tas ir ļoti efektÄ«vs veids, kā vākt, parsēt un standartizēt faktu datus izmantoÅ”anai Ansible. Å Ä«s lomas trÅ«kums ir tāds, ka katrai platformai un visām tÄ«kla darbÄ«bām ir jāizveido vesela virkne parsētāju. Lai saprastu, cik grÅ«ti ir izveidot, nosÅ«tÄ«t un uzturēt parsētājus, apskatiet Vairāk nekā 1200 parsētāju no Cisco puiÅ”iem.

ÄŖsumā, faktu iegÅ«Å”ana no ierÄ«cēm un to normalizÄ“Å”ana atslēgu-vērtÄ«bu pāros ir bÅ«tiska automatizācijai plaŔā mērogā, taču to ir grÅ«ti sasniegt, ja jums ir daudz pārdevēju un tÄ«kla platformu.

Katrs Ansible 2.9 tÄ«kla faktu modulis tagad var analizēt tÄ«kla ierÄ«ces konfigurāciju un atgriezt strukturētus datus ā€” bez papildu bibliotēkām, Ansible lomām vai pielāgotiem parsētājiem.

KopÅ” versijas Ansible 2.9 katru reizi, kad tiek izlaists atjaunināts tÄ«kla modulis, faktu modulis tiek uzlabots, lai nodroÅ”inātu datus par Å”o konfigurācijas sadaļu. Tas nozÄ«mē, ka faktu un moduļu izstrāde tagad notiek tādā paŔā tempā, un tiem vienmēr bÅ«s kopÄ«ga datu struktÅ«ra.

Tīkla ierīces resursu konfigurāciju var izgūt un pārveidot strukturētos datos divos veidos. Abos veidos varat apkopot un pārveidot konkrētu resursu sarakstu, izmantojot jaunu atslēgvārdu gather_network_resources. Resursu nosaukumi atbilst moduļu nosaukumiem, kas ir ļoti ērti.

Vācot faktus:

Izmantojot atslēgvārdu gather_facts jÅ«s varat izgÅ«t paÅ”reizējo ierÄ«ces konfigurāciju rokasgrāmatas sākumā un pēc tam izmantot to visā rokasgrāmatā. Norādiet atseviŔķus resursus, kas jāizgÅ«st no ierÄ«ces.

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

Iespējams, Å”ajos piemēros esat pamanÄ«jis kaut ko jaunu, proti - gather_facts: true tagad ir pieejams vietējo faktu apkopoÅ”anai tÄ«kla ierÄ«cēm.

Izmantojot tīkla faktu moduli tieŔi:

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

Rokasgrāmatā ir sniegti Ŕādi fakti par saskarni:

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

Ievērojiet, kā Ansible izgūst sākotnējo konfigurāciju no Arista ierīces un pārveido to strukturētos datos, lai tos izmantotu kā standarta atslēgu un vērtību pārus pakārtotajiem uzdevumiem un darbībām.

Interfeisa faktus var pievienot Ansible saglabātajiem mainÄ«gajiem un nekavējoties vai vēlāk izmantot kā ievadi resursu modulÄ« eos_interfaces bez papildu apstrādes vai konvertÄ“Å”anas.

Resursu moduļi

Tātad, mēs izvilkām faktus, normalizējām datus, ievietojām tos standartizētā iekŔējā datu struktÅ«ras diagrammā un saņēmām gatavu patiesÄ«bas avotu. Urrā! Tas, protams, ir lieliski, taču mums joprojām ir kaut kādā veidā jāpārvērÅ” atslēgu un vērtÄ«bu pāri atpakaļ uz konkrēto konfigurāciju, ko sagaida konkrētā ierÄ«ces platforma. Tagad mums ir nepiecieÅ”ami platformai specifiski moduļi, lai izpildÄ«tu Ŕīs jaunās faktu vākÅ”anas un normalizÄ“Å”anas prasÄ«bas.

Kas ir resursu modulis? IerÄ«ces konfigurācijas sadaļas varat uzskatÄ«t par Ŕīs ierÄ«ces nodroÅ”inātajiem resursiem. TÄ«kla resursu moduļi ir apzināti ierobežoti lÄ«dz vienam resursam, un tos var sakraut kā celtniecÄ«bas blokus, lai konfigurētu sarežģītus tÄ«kla pakalpojumus. Rezultātā prasÄ«bas un specifikācijas resursu modulim ir dabiski vienkārÅ”otas, jo resursu modulis var lasÄ«t Šø konfigurēt noteiktu tÄ«kla pakalpojumu tÄ«kla ierÄ«cē.

Lai izskaidrotu, ko dara resursu modulis, apskatīsim rokasgrāmatas piemēru, kurā parādīta idempodenta darbība, izmantojot jaunus tīkla resursu faktus un moduli. 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

Kā redzat, no ierÄ«ces savāktie dati tiek pārsÅ«tÄ«ti tieÅ”i uz atbilstoÅ”o resursu moduli bez konvertÄ“Å”anas. Palaižot rokasgrāmatu, tā izgÅ«st vērtÄ«bas no ierÄ«ces un salÄ«dzina tās ar paredzamajām. Å ajā piemērā atgrieztās vērtÄ«bas ir tādas, kā paredzēts (tas ir, tiek pārbaudÄ«tas konfigurācijas novirzes) un tiek ziņots, vai konfigurācija ir mainÄ«jusies.

Ideāls veids, kā noteikt konfigurācijas novirzi, ir saglabāt faktus Ansible saglabātajos mainÄ«gajos un periodiski tos izmantot kopā ar resursu moduli pārbaudes režīmā. Å Ä« ir vienkārÅ”a metode, lai noskaidrotu, vai kāds ir manuāli mainÄ«jis vērtÄ«bas. Vairumā gadÄ«jumu organizācijas atļauj veikt izmaiņas un konfigurēt manuāli, lai gan daudzas darbÄ«bas tiek veiktas, izmantojot Ansible Automation.

Kā jaunie resursu moduļi atŔķiras no iepriekŔējiem?

TÄ«kla automatizācijas inženierim ir 3 galvenās atŔķirÄ«bas starp resursu moduļiem Ansible 2.9 versijā un iepriekŔējās versijās.

1) Konkrētajam tÄ«kla resursam (ko var uzskatÄ«t arÄ« par konfigurācijas sadaļu) moduļi un fakti attÄ«stÄ«sies visās atbalstÄ«tajās tÄ«kla operētājsistēmās vienlaicÄ«gi. Mēs domājam, ka, ja Ansible atbalsta resursu konfigurāciju vienā tÄ«kla platformā, mums tas jāatbalsta visur. Tas vienkārÅ”o resursu moduļu izmantoÅ”anu, jo tÄ«kla automatizācijas inženieris tagad var konfigurēt resursu (piemēram, LLDP) visās tÄ«kla operētājsistēmās ar vietējiem un atbalstÄ«tiem moduļiem.

2) Resursu moduļos tagad ir iekļauta stāvokļa vērtība.

  • merged: konfigurācija ir sapludināta ar sniegto konfigurāciju (noklusējums);
  • replaced: resursa konfigurācija tiks aizstāta ar sniegto konfigurāciju;
  • overridden: resursa konfigurācija tiks aizstāta ar sniegto konfigurāciju; nevajadzÄ«gie resursu gadÄ«jumi tiks dzēsti;
  • deleted: resursa konfigurācija tiks dzēsta/atjaunota pēc noklusējuma.

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

3) Resursu moduļos tagad ir iekļautas stabilas atdeves vērtÄ«bas. Kad tÄ«kla resursa modulis ir veicis (vai ierosinājis) vajadzÄ«gās izmaiņas tÄ«kla ierÄ«cē, tas atgriež tos paÅ”us atslēgu un vērtÄ«bu pārus rokasgrāmatā.

  • before: konfigurācija ierÄ«cē strukturētu datu veidā pirms uzdevuma veikÅ”anas;
  • after: ja ierÄ«ce ir mainÄ«jusies (vai var mainÄ«ties, ja tiek izmantots testa režīms), iegÅ«tā konfigurācija tiks atgriezta kā strukturēti dati;
  • commands: ierÄ«cē tiek izpildÄ«tas visas konfigurācijas komandas, lai to iestatÄ«tu vēlamajā stāvoklÄ«.

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Ko tas viss nozīmē? Kāpēc tas ir svarīgi?

Å is ieraksts aptver daudzus sarežģītus jēdzienus, taču mēs ceram, ka galu galā jums bÅ«s labāka izpratne par to, ko uzņēmuma klienti patiesÄ«bā pieprasa vākÅ”ana, datu normalizÄ“Å”ana un cilpas konfigurÄ“Å”ana automatizācijas platformai. Bet kāpēc viņiem ir vajadzÄ«gi Å”ie uzlabojumi? Daudzas organizācijas Å”obrÄ«d veic digitālo transformāciju, lai padarÄ«tu savu IT vidi elastÄ«gāku un konkurētspējÄ«gāku. Labāk vai sliktāk, daudzi tÄ«kla inženieri kļūst par tÄ«kla izstrādātājiem vai nu paÅ”labuma dēļ, vai arÄ« pēc vadÄ«bas pavēles.

Organizācijas apzinās, ka atseviŔķu tÄ«kla veidņu automatizācija neatrisina tvertņu problēmu un tikai zināmā mērā palielina efektivitāti. Red Hat Ansible Automation Platform nodroÅ”ina stingrus un normatÄ«vus resursu datu modeļus, lai programmatiski pārvaldÄ«tu pamatā esoÅ”os datus tÄ«kla ierÄ«cē. Tas nozÄ«mē, ka lietotāji pakāpeniski atsakās no individuālām konfigurācijas metodēm par labu modernākām metodēm, liekot uzsvaru uz tehnoloÄ£ijām (piemēram, IP adresēm, VLAN, LLDP utt.), nevis uz konkrētu pārdevēja ievieÅ”anu.

Vai tas nozÄ«mē, ka uzticamu un pārbaudÄ«tu komandu moduļu un konfigurācijas dienas ir skaitÄ«tas? Nekādā gadÄ«jumā. Paredzamie tÄ«kla resursu moduļi nebÅ«s piemērojami visos gadÄ«jumos vai katram piegādātājam, tāpēc komandu un konfigurācijas moduļi joprojām bÅ«s nepiecieÅ”ami tÄ«kla inženieriem noteiktām implementācijām. Resursu moduļu mērÄ·is ir vienkārÅ”ot lielas Jinja veidnes un normalizēt nestrukturētas ierīču konfigurācijas strukturētā JSON formātā. Izmantojot resursu moduļus, esoÅ”ajiem tÄ«kliem bÅ«s vieglāk pārveidot savu konfigurāciju strukturētos atslēgu un vērtÄ«bu pāros, kas ir viegli lasāms patiesÄ«bas avots. Izmantojot strukturētus atslēgu-vērtÄ«bu pārus, varat pāriet no konfigurācijas darbÄ«bas katrā ierÄ«cē uz darbu ar neatkarÄ«giem strukturētiem datiem un izvirzÄ«t tÄ«klus infrastruktÅ«ras kā koda pieejas priekÅ”plānā.

Kādi resursu moduļi būs pieejami Ansible Engine 2.9?

Pirms mēs detalizēti pastāstīsim, kas notiks Ansible 2.9, atcerēsimies, kā mēs sadalījām visu darba apjomu.

Mēs identificējām 7 kategorijas un katrai pieŔķīrām Ä«paÅ”us tÄ«kla resursus:

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Piezīme: resursi treknrakstā tika plānoti un ieviesti Ansible 2.9.
Pamatojoties uz atsauksmēm no uzņēmuma klientiem un kopienas, bija loģiski vispirms risināt tos moduļus, kas saistīti ar tīkla topoloģijas protokoliem, virtualizāciju un saskarnēm.
Šos resursu moduļus izstrādāja Ansible Network komanda, un tie atbilst Red Hat atbalstītajām platformām:

Inside Playbook. TÄ«kla funkcijas jaunajā Ansible Engine 2.9

Ansible kopiena ir izstrādājusi Ŕādus moduļus:

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

Kā redzat, resursu moduļu koncepcija iekļaujas mÅ«su uz platformu orientētajā stratēģijā. Tas ir, mēs iekļaujam nepiecieÅ”amās iespējas un funkcijas paŔā Ansible, lai atbalstÄ«tu standartizāciju tÄ«kla moduļu izstrādē, kā arÄ« vienkārÅ”otu lietotāju darbu Ansible lomu un rotaļu grāmatu lÄ«menÄ«. Lai paplaÅ”inātu resursu moduļu izstrādi, Ansible komanda izlaida rÄ«ku Module Builder.

Plāni Ansible 2.10 un jaunākām versijām

Kad Ansible 2.9 būs izlaists, mēs strādāsim pie nākamā Ansible 2.10 resursu moduļu komplekta, ko var izmantot, lai tālāk konfigurētu tīkla topoloģiju un politiku, piemēram, ACL, OSPF un BGP. Attīstības plāns vēl var tikt koriģēts, tāpēc, ja ir komentāri, lūdzu ziņojiet Ansible tīkla kopiena.

Resursi un darba sākŔana

Preses relīze par Ansible Automation Platform
Ansible Automation Platform emuārs
Ansible satura piegādes nākotne
Pārdomas par Ansible projekta struktūras maiņu

Avots: www.habr.com

Pievieno komentāru