
Red Hat Ansible Engine 2.9 tulevas vĂ€ljaandes ootavad teid muljetavaldavad parandused, millest mĂ”ned on kirjas selles artiklis. Nagu alati, oleme Ansible Networki tĂ€iustusi arendanud avatud koostöös kogukonnaga. Liituge â vaadake ja uurige arendusplaani Ansible Networki wiki lehelt .
Kuidas me hiljuti teatasime, kĂ€tkeb nĂŒĂŒd Ansible Towerit, Ansible Engine'i ja kogu Ansible Networki sisu. Praegu rakendatakse enamikku populaarsetest vĂ”rguplatvormidest Ansible'i moodulite kaudu. NĂ€iteks:
- Arista EOS
- Cisco IOS
- Cisco IOS XR
- Cisco NX-OS
- Juniper Junos
- VyOS
TÀielik nimekiri platvormidest, mida Red Hat toetab tÀielikult Ansible Automationi tellimuse kaudu, .
Mida me Ôppisime
Viimase nelja aasta jooksul oleme palju Ôppinud vÔrguautomaatika platvormi arendamisest. Samuti oleme Ôppinud, kuidas kuidas platvormi artefakte kasutatakse Ansible'i plaanides ja rollides lÔppkasutajate poolt. Ja siin on, mida me vÀlja selgitasime:
- Organisatsioonid automatiseerivad seadmeid mitte ainult ĂŒhe, vaid paljude tootjate kaudu.
- Automatiseerimine ei ole ainult tehniline nÀhtus, vaid ka kultuuriline.
- Suurte vÔrguautomaatika ulatus on keerulisem, kui nÀib, pÔhistruktuuride automatiseerimise kavandamise tÔttu.
Kui arutasime oma pikaajalisi arendusplaane rohkem kui aasta tagasi, soovisid meie ettevÔtte kliendid jÀrgmist:
- Faktide kogumine peab olema paremini standardiseeritud ja kooskÔlastatud automaatika tööprotsessiga igasuguste seadmete jaoks.
- Seadme konfiguratsiooni vÀrskendamine peab samuti olema standardiseeritud ja kooskÔlastatud, et Ansible'i moodulid saaksid seadme teises pooles pÀrast faktide kogumist töötlemiseks.
- Vajalikud on rangelt hallatavad ja toetatud meetodid seadme konfiguratsiooni struktureeritud andmeteks muutmiseks. Selle alusel on tÔe allika vÔimalus viia vÔrgu-seadmest mujale.
Faktide tÀiustamine
Ansible'i kaudu vĂ”rguseadmest faktide kogumine toimub sageli juhuslikult. Erinevatel mÀÀradel on vĂ”rguplatvormid varustatud faktide kogumise vĂ”imalustega, kuid neil pole peaaegu ĂŒldse â vĂ”i ei ole ĂŒldse â funktsioone andmete analĂŒĂŒsimiseks ja standartiseerimiseks vĂ”tme-vÀÀrtuse paarides. Loe Ken Celenza kohta, kuidas keeruline ja vaevaline vĂ”ib olla faktide andmete analĂŒĂŒsimine ja standartiseerimine.
VĂ”ib-olla olete mĂ€rganud, kuidas oleme töötanud Ansible Network Engine'i rolli kallal. Loomulikult, 24 000 allalaadimise pĂ€rast on Network Engine'i roll kiiresti saanud ĂŒheks populaarsemaks Ansible'i rolliks Ansible Galaxy's vĂ”rguhalduse automatiseerimise skriptide jaoks. Enne kui me edasi viisime palju sellest Ansible 2.8-sse, et valmistuda selleks, mis vajalik on Ansible 2.9-s, pakkus see Ansible'i roll esimest komplekti tööriistu kĂ€su analĂŒĂŒsimiseks, meeskondade haldamiseks ja andmete kogumiseks vĂ”rguseadmest.
Kui te teate Network Engine'i kasutamisest, on see vĂ€ga tĂ”hus viis andmete faktide kogumiseks, analĂŒĂŒsimiseks ja standardiseerimiseks Ansible'is. Selle rolli puudus on see, et tuleb luua terve hulk parserid iga platvormi ja kogu vĂ”rguaktiivsuse jaoks. Selleks, et mĂ”ista, kui keeruline on parserite loomine, tarnimine ja haldamine, vaadake Cisco tĂŒĂŒpidelt.
LĂŒhidalt, massilise automatiseerimise jaoks on vĂ€ga oluline saada seadmetelt fakte ja normaliseerida need vĂ”tme-vÀÀrtuse paarideks, kuid seda on keeruline saavutada, kui teil on palju mĂŒĂŒjaid ja vĂ”rguplatvorme.
Iga Ansible'i 2.9 vĂ”rgu faktide moodul vĂ”ib nĂŒĂŒd analĂŒĂŒsida vĂ”rgu seadme konfiguratsiooni ja tagastada struktureeritud andmed - ilma tĂ€iendavate teekide, Ansible'i rollide vĂ”i kohandatud parseriteta.
Alates Ansible 2.9-st paranevad iga kord, kui avaldatakse uuendatud vĂ”rgu moodul, faktide moodul, et anda andmeid selle konfiguratsiooni osa kohta. See tĂ€hendab, et faktide ja moodulite areng toimub nĂŒĂŒd ĂŒhes tempos, ja neil on alati ĂŒhine andmestruktuur.
VÔrgu seadme ressursi konfiguratsiooni saab vÀlja tuua ja muuta struktureeritud andmeteks kahel viisil. MÔlemat viisi saab kasutada kindla loetelu ressursside kogumiseks ja teisendamiseks uue mÀrksÔnaga gather_network_resources. Ressursside nimed vastavad moodulite nimedele, ja see on vÀga mugav.
Faktide kogumise ajal:
Kasutades mÀrksÔna gather_facts , saate tuua seadme praeguse konfiguratsiooni mÀngu alguses ja seejÀrel kasutada seda kogu mÀngu vÀltel. MÀÀrake eraldi ressursid, mida tuleb seadmest vÀlja tuua.
- hosts: arista
module_defaults:
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
gather_facts: TrueOlete vĂ”ib-olla mĂ€rganud nende nĂ€idete seas midagi uut, nimelt - gather_facts: true nĂŒĂŒd on saadaval kohaliku faktilise kogumise funktsioon vĂ”rguseadmetele.
Kohese vÔrgufaktide mooduli kasutamine:
- name: koguge liidese konfigureerimise faktilisi andmeid
eos_facts:
gather_subset: min
gather_network_resources:
- interfacesPlaybook tagastab jÀrgmised liidese faktid:
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: Ethernet1Pange tĂ€hele, kuidas Ansible kogub natiivseid konfiguratsioone Arista seadmest ja muundab need struktureeritud andmeteks, mida saab kasutada standardsete vĂ”tme-vÀÀrtuse paaridena edasiste ĂŒlesannete ja toimingute jaoks.
Liidese faktid saab lisada Ansible'i salvestatud muutujatesse ja kasutada kohe vÔi hiljem sisendina ressursimoodulile eos_interfaces ilma tÀiendava töötlemise vÔi muundamiseta.
Ressursimoodulid
Nii et oleme kogunud faktid, normaliseerinud andmed, paneme need standardiseeritud sisemisse andmestruktuuri ning saime valmis tĂ”eallika. Hooray! See on muidugi tore, kuid me peame siiski kuidagi vĂ”tme-vÀÀrtuse paare tagasi kindla konfiguratsiooni vormi viima, mida konkreetne seadme platvorm ootab. NĂŒĂŒd vajame konkreetsete platvormide mooduleid, et rahuldada neid uusi faktilise kogumise ja normaliseerimise nĂ”udeid.
Mis on ressursimoodul? Seadme konfigureerimise sektsioone saab mĂ”ista kui selle seadme pakutavaid ressursse. VĂ”rgandmete ressursimoodulid on teadlikult piiratud ĂŒhe ressursiga ning neid saab kokku panna nagu klotse, et seadistada keerulisi vĂ”rgu teenuseid. SeetĂ”ttu lihtsustatakse ressursimooduli nĂ”udeid ja spetsifikatsiooni loomulikult, kuna ressursimoodul suudab lugeda ja spetsiifilise vĂ”rgu teenuse seadistamiseks vĂ”rgu seadmes.
Ressursimooduli toimimise selgitamiseks vaatame nÀidet playbook'ist, mis nÀitab idempotentset toimingut, kasutades uut vÔrgufakti ja moodulit eos_l3_interface.
- name: nÀide faktide edastamisest seadmele.
hosts: arista
gather_facts: false
tasks:
- name: tugiteenuste faktide kogumine
eos_facts:
gather_subset: min
gather_network_resources: l3_interfaces
- name: veendu, et IP-aadressi teave on tÀpne
eos_l3_interfaces:
config: "{{ ansible_network_resources['l3_interfaces'] }}"
register: result
- name: veendu, et konfiguratsioon ei ole muutunud
assert:
that: not result.changedNagu nÀete, edastatakse seadme kogutud andmed otse vastavasse ressursimoodulisse ilma töötlemiseta. Playbooki kÀivitamisel tuvastab see seadme vÀÀrtused ja vÔrdleb need oodatud vÀÀrtustega. Antud nÀites vastavad saadud vÀÀrtused oodatutele (st konfiguratsiooni eristamise kontroll on teostatav) ja antakse teada, kas konfiguratsioon on muutunud.
Ideaalsed viisid konfiguratsiooni eristamise tuvastamiseks on salvestada faktid Ansible'i salvestatud muutujatesse ja perioodiliselt kasutada neid koos ressursimooduliga kontrollreĆŸiimis. See on lihtne meetod nĂ€htavaks teha, kas keegi on vÀÀrtusi kĂ€sitsi muutnud. Enamikul juhtudel lubavad organisatsioonid kĂ€sitsi muudatusi ja konfiguratsiooni, kuigi paljusid toiminguid teostatakse Ansible Automatsiooni kaudu.
Kuidas erinevad uued ressursimoodulid eelmistest?
VÔrguekspertide jaoks on Ansible 2.9 ressursimoodulite kolm peamist erinevust varasemate versioonide suhtes.
1) Teatud vĂ”rguresursi (mida vĂ”ib ette kujutada ka konfiguratsiooni ala) puhul arenevad moodulid ja faktid kĂ”igis toetatud vĂ”rgutoimingute sĂŒsteemides samaaegselt. Arvame, et kui Ansible toetab ressursi konfiguratsiooni ĂŒhel vĂ”rgupĂ”hjal, peaksime seda toetama igal pool. See lihtsustab ressursside moodulite kasutamist, kuna vĂ”rguekspert saab nĂŒĂŒd seadistada ressurssi (nt LLDP) kĂ”igis vĂ”rgutoimingute sĂŒsteemides natiivsete ja toetatud moodulitega.
2) Ressursimoodulid sisaldavad nĂŒĂŒd oleku vÀÀrtust.
ĂŒhtlustatud: konfiguratsioon on ĂŒhendatud antud konfiguratsiooniga (vaikimisi);asendatud: ressursi konfiguratsioon asendatakse antud konfiguratsiooniga;ĂŒle kirjutatud: ressursi konfiguratsioon asendatakse antud konfiguratsiooniga; liigsed ressursi eksemplarid eemaldatakse;deleted: ressursi konfiguratsioon eemaldatakse/taastatakse vaikimisi.

3) Ressursimoodulid sisaldavad nĂŒĂŒd stabiilseid tagastatavaid vÀÀrtusi. Kui vĂ”rguressursi moodul on teinud (vĂ”i ettepaneku teinud) vajalikud muudatused vĂ”rguseadmes, tagastab see samad vĂ”tme-vÀÀrtuse paarid mĂ€nguraamatusse.
before: seadistamine seadmes struktureeritud andmete kujul enne ĂŒlesannet;pĂ€rast: kui seade on muutunud (vĂ”i vĂ”ib muutuda, kui on kasutusel kontrollreĆŸiim), tagastatakse saadud seadistamine struktureeritud andmete kujul;kĂ€sklused: kĂ”ik seadme seadistamise kĂ€sud, et tuua see soovitud seisundisse.


Mida see kÔik tÀhendab? Miks see on oluline?
Selles postituses kĂ€sitletakse palju keerulisi kontseptsioone, kuid loodame, et lĂ”puks mĂ”istate paremini, mida ettevĂ”tte kliendid kĂŒsivad faktide kogumise, andmete normaliseerimise ja konfigureerimise tsĂŒkli osas automatiseerimisplatvormi jaoks. Kuid miks neile need parandused vajalikud on? Praegu tegelevad paljud organisatsioonid digitaalse transformatsiooniga, et muuta oma IT-keskkonnad paindlikumaks ja konkurentsivĂ”imelisemaks. Olgu see hea vĂ”i halb, ent paljud vĂ”rgutehnikud muutuvad vĂ”rgurakendusi arendavateks professionaalideks â oma huvist vĂ”i juhtide kĂ€skude tĂ”ttu.
Organisatsioonid mĂ”istavad, et ĂŒksikute vĂ”rgu mallide automatiseerimine ei lahenda killustatuse probleemi ja tĂ”stab efektiivsust vaid teatud piirini. Red Hat Ansible Automation Platform pakub rangeid ja normeeritud ressursiandmete mudeleid, et programmiliselt hallata pĂ”hjalikke andmeid vĂ”rgu seadmes. See tĂ€hendab, et kasutajad loobuvad jĂ€rk-jĂ€rgult individuaalsetest seadistuskavadest kaasaegsemate meetodite kasuks, rĂ”hutades tehnoloogiaid (nt IP-aadressid, VLAN-id, LLDP jne), mitte konkreetseid tarnija teostusi.
Kas see tĂ€hendab, et usaldusvÀÀrsete ja testitud komandode ja konfiguratsioonide pĂ€evad on loetud? Kaugel sellest. Oodatavad vĂ”rguressursi moodulid ei kehti igas olukorras ega iga tarnija jaoks, mistĂ”ttu on vĂ”rkude inseneridel teatud rakenduste jaoks endiselt vaja komandode ja konfiguratsioonide mooduleid. Ressursside moodulite eesmĂ€rk on lihtsustada suuri Jinja malle ja normalizeerida struktuurita seadme konfiguratsioonid struktureeritud JSON formaati. Ressursside moodulitega on olemasolevatel vĂ”rkudel lihtsam muuta oma konfiguratsioon struktuurseteks vĂ”tme-vÀÀrtus paarideks, mis esindavad loetavat tĂ”e allikat. Kasutades struktureeritud vĂ”tme-vÀÀrtus paare, on vĂ”imalik liikuda seadmete igas seadmega kĂ€itatavatest konfiguratsioonidest sĂ”ltumatute struktureeritud andmete töötlemise juurde, edendades vĂ”rke âinfrastruktuur kui koodâ lĂ€henemisega.
Millised vÔrguressursside moodulid kuvatakse Ansible Engine 2.9-s?
Enne kui rÀÀgime ĂŒksikasjalikult sellest, mis Ansible 2.9-s on, tuletagem meelde, kuidas me jagasime kogu töömahu.
Me eraldasime 7 kategooriat ja mÀÀrasime igale teatud vÔrguressursid:

MĂ€rkus: rasvaselt esile toodud ressursid on planeeritud ja rakendatud Ansible 2.9-s.
Kliendi ja kogukonna tagasiside pÔhjal oli mÔistlik alustada moodulitest, mis on seotud vÔrgu topoloogia, virtualiseerimise ja liidestega.
JÀrgmised vÔrguressursside moodulid on vÀlja töötatud Ansible Networki meeskonna poolt ja vastavad Red Hati toetatavatele platvormidele:

JÀrgmised moodulid on vÀlja töötatud Ansible'i kogukonna poolt:
exos_lldp_globalâ Extreme Networksilt.nxos_bfd_interfacesâ Cisco pooltnxos_telemetryâ Cisco poolt
Nagu nÀete, sobib ressursimoodulite kontseptsioon meie platvormile orienteeritud strateegiasse. See tÀhendab, et me integreerime vajalikud vÔimekused ja funktsioonid Ansible'i endasse, et toetada standardiseerimist vÔrgu moodulite arendamisel ning lihtsustada kasutajate tööd Ansible'i rollide ja mÀngude tasemel. Ressursimoodulite arendamise laiendamiseks on Ansible'i meeskond vÀlja töötanud Module Builder'i tööriista.
Plaane Ansible 2.10 ja edasise jaoks
PÀrast Ansible 2.9 vÀljalaset keskendume jÀrgmisele vÔrguressursside moodulite komplektile Ansible 2.10-s, mida saab kasutada vÔrgu topoloogia ja poliitika edasise kohandamise jaoks, nÀiteks Arenguplaan on endiselt kohandatav, seega kui teil on kommentaare, andke sellest teada .
Ressursid ja algus
Allikas: habr.com
