
Red Hat Ansible Engine 2.9 tulevases versioonis ootavad teid tĂ€helepanuvÀÀrsed tĂ€iustused, millest mĂ”ned on selles artiklis kirjeldatud. Nagu tavaliselt, arendasime Ansible Networki tĂ€iustusi avatud koostöös kogukonnaga. Liituge â vaadake ja uurige arendusplaani wiki lehelt .
Kuidas me hiljuti teada andsime, kĂ€tkeb nĂŒĂŒd Ansible Toweri, Ansible Engine'i ja kogu Ansible Networki sisu. Praegu rakendavad enamik tuntud vĂ”rguplatvormidest Ansible'i mooduleid. NĂ€iteks:
- Arista EOS
- Cisco IOS
- Cisco IOS XR
- Cisco NX-OS
- Juniper Junos
- VyOS
TÀpne loetelu platvormidest, mida Red Hat toetab tÀielikult Ansible Automationi tellimuse kaudu, .
Mida me oleme Ôppinud
Viimase nelja aasta jooksul oleme Ôppinud palju vÔrguautomaatika platvormi arendamisest. Samuti oleme Ôppinud, kuidas kuidas platvormi artefakte rakendatakse Ansible'i mÀngude ja rollide kaudu lÔppkasutajate poolt. Ja siin on, mida me avastasime:
- Organisatsioonid automatiseerivad seadmeid mitte ĂŒhelt, vaid paljude tootjatelt.
- Automatiseerimine on mitte ainult tehniline nÀhtus, vaid ka kultuuriline.
- VÔrguhalduse ulatuslik automatiseerimine on keerulisem, kui esmapilgul tundub, kuna see pÔhineb automaatika projekteerimise fundamentaalsetel arhitektuuripÔhimÔtetel.
Kuna me arutasime oma pikaajalisi arenguplaani rohkem kui aasta tagasi, siis palusid meie korporatiivsed kliendid jÀrgmist:
- Faktide kogumist tuleb paremini standardiseerida ja kooskÔlastada automaatika tööprotsessiga igasuguste seadmete jaoks.
- Ka seadme konfiguratsioonide vĂ€rskendamine peab olema standardiseeritud ja kooskĂ”lastatud, et Ansible'i moodulid saaksid kogumise tsĂŒkli teise osa töödelda.
- Vajadus on rangete ja toetatavate meetodite jÀrele seadme konfiguratsiooni muutmiseks struktureeritud andmeteks. Selle alusel saaks tÔe allika viia vÔrgu seadmetelt.
Faktide tÀiustamine
Faktide kogumine vĂ”rgu seadmetelt Ansible'i abil toimub sageli juhuslikult. VĂ”rgupaltvormidel on erineval mÀÀral faktide kogumise vĂ”imalusi, kuid neil on peaaegu puuduvad â vĂ”i isegi tĂ€iesti puuduvad â andmete analĂŒĂŒsi ja esitamise standardimise funktsioonid vĂ”tme-vÀÀrtuse paaridena. Loe Ken Celenza rÀÀgib, kui keeruline ja vaevarikas on faktide andmete analĂŒĂŒsimine ja standardiseerimine.
VĂ”ib-olla olete mĂ€rganud, kuidas me oleme töötanud Ansible Network Engine'i rolli kallal. Loomulikult, pĂ€rast 24 000 allalaadimist, on Network Engine'i roll kiiresti saanud ĂŒheks populaarseimaks Ansible'i rolliks Ansible Galaxy's vĂ”rguautomaatika skriptide jaoks. Enne kui me palju sellest Ansible 2.8-sse edastasime, et valmistuda Ansible 2.9 jaoks, pakkus see Ansible'i roll esimesi tööriistu kĂ€skude parsimiseks, meeskondade haldamiseks ja andmete kogumiseks vĂ”rguseadmetelt.
Kui te tunnete Network Engine'i kasutamist, on see vÀga tÔhus viis faktide andmete kogumiseks, parsimiseks ja standardiseerimiseks Ansible'is. Selle rolli miinus on see, et tuleb luua hulk parsereid igale platvormile ja kogu vÔrguaktiivsuse jaoks. Et mÔista, kui keeruline on parsereid luua, tarnida ja hooldada, vaadake Cisco meestelt.
LĂŒhidalt, ulatusliku automatiseerimise jaoks on oluline saada seadmetelt fakte ja normaliseerida need vĂ”tme-vÀÀrtuse paarideks, kuid see on keeruline, kui teil on palju mĂŒĂŒjaid ja vĂ”rgupaltforme.
Iga Ansible 2.9 vĂ”rgufaktide moodul suudab nĂŒĂŒd analĂŒĂŒsida vĂ”rgu seadme konfiguratsiooni ja tagastada struktureeritud andmeid â ilma tĂ€iendavate teekide, Ansible'i rollideta vĂ”i kohandatud tĂ”lgendajateta.
Alates Ansible 2.9 iga vĂ€rskendatud vĂ”rgu mooduli vĂ€ljaandmisel tĂ€iustatakse faktide moodulit, et esitada andmeid antud konfiguratsiooni osa kohta. See tĂ€hendab, et faktide ja moodulite areng toimub nĂŒĂŒd koos ning neil on alati ĂŒhtne andmestruktuur.
VÔrgu seadme ressursside konfiguratsiooni saab vÀlja tÔmmata ja muuta struktureeritud andmeteks kahel viisil. MÔlemal juhul on vÔimalik koguda ja muuta kindel ressursside nimekiri uue mÀrksÔna abil gather_network_resources. Ressursside nimed vastavad moodulite nimedele, mis on vÀga mugav.
Faktide kogumise ajal:
MÀrksÔna abil gather_facts saate alguses seadme praeguse konfiguratsiooni playbookis vÀlja vÔtta ja seejÀrel kasutada seda kogu playbooki vÀltel. MÀÀrake eraldi ressursid, mille soovite seadmest vÀlja vÔtta.
- hosts: arista
module_defaults:
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
gather_facts: TrueOlete vĂ”inud mĂ€rgata, et nendes nĂ€idetes on midagi uut, nimelt â gather_facts: true on nĂŒĂŒd saadaval vĂ”rgu seadmete jaoks natiivsete faktide kogumiseks.
VÔrgufaktide mooduli otse kasutamine:
- name: kogu liidese konfiguratsiooni faktid
eos_facts:
gather_subset: min
gather_network_resources:
- interfacesPlaybook tagastab jÀrgmised faktid liidese kohta:
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 tĂ”mbab seadme Arista natiivset konfiguratsiooni ja muudab selle struktureeritud andmeteks, et kasutada standardsete vĂ”tme-vÀÀrtuse paaridena edasistes ĂŒlesannetes ja toimingutes.
Ansible'i salvestatud muutujaid saab lisada liideste faktidesse ja kasutada kohe vÔi hiljem sisendina ressursimooduli jaoks. eos_interfaces ilma lisatöötluse vÔi muutmiseta.
Ressursimoodulid
Nii oleme faktid vĂ€lja tĂ”mmanud, andmed normaliseerinud, need standardiseeritud sisemisse andmestruktuuri kirja pannud ja valmis tĂ”eallika saanud. Jeii! See on muidugi suurepĂ€rane, kuid meil on endiselt vaja mingil moel teisendada vĂ”tme-vÀÀrtuse paare tagasi spetsiifiliseks konfiguratsiooniks, mida konkreetne seadmeplatvorm ootab. NĂŒĂŒd vajame platvormi spetsiifilisi mooduleid, et rahuldada neid uusi faktide kogumise ja normaliseerimise nĂ”udeid.
Mis on ressursimoodul? Seadme konfigureerimise jaotisi vĂ”ib ette kujutada kui selle seadme poolt pakutavaid ressursse. VĂ”rgumoodulid on teadlikult piiratud ĂŒhe ressursiga ning neid saab virna laduda nagu klotse, et seadistada keerukamaid vĂ”rguteenuseid. Selle tulemusena lihtsustuvad ressursimooduli nĂ”uded ja spetsifikatsioon loomulikult, kuna ressursimoodul suudab lugeda ja konfigureerima teatud vĂ”rgu teenust vĂ”rgu seadmes.
Selgitamaks, mida ressursimoodul teeb, vaatame nÀidet mÀnguraamatust, mis nÀitab idempotentset operatsiooni, kasutades uusi vÔrgu ressursi fakte ja moodulit. eos_l3_interface.
- name: nÀide faktidest, mis tagasi seadmesse edastatakse.
hosts: arista
gather_facts: false
tasks:
- name: vÔtta arista eos faktid
eos_facts:
gather_subset: min
gather_network_resources: l3_interfaces
- name: veenduda, et IP-aadressi teave on tÀpne
eos_l3_interfaces:
config: "{{ ansible_network_resources['l3_interfaces'] }}"
register: result
- name: veenduda, et konfiguratsioon ei ole muutunud
assert:
that: not result.changedNagu nÀete, edastatakse seadme kogutud andmed otse vastavale ressursimoodulile ilma konversioonita. KÀivitamisel tÔmbab mÀnguraamat seadmetelt vÀÀrtused ja vÔrdleb neid oodatud vÀÀrtustega. KÀesolevas nÀites vastavad saadud vÀÀrtused oodatud vÀÀrtustele (st toimub konfiguratsiooni kÔrvalekallete kontroll) ja vÀljastatakse teade, kas konfiguratsioon on muutunud.
Ideaalne viis konfigureerimise kĂ”rvalekalde tuvastamiseks on salvestada faktid Ansible'i salvestatud muutujatesse ja perioodiliselt kasutada neid koos ressursside mooduliga kontrollreĆŸiimis. See on lihtne meetod nĂ€ha, kas keegi on vÀÀrtusi kĂ€sitsi muutnud. Enamiku jaoks lubavad organisatsioonid kĂ€sitsi muudatusi ja konfigureerimist, kuigi paljusid toiminguid tehakse lĂ€bi Ansible'i automatiseerimise.
Kuidas erinevad uued ressursi moodulid varasematest?
VÔrguhalduse automatiseerimise insenerile on Ansible 2.9 ressursi moodulite ja varasemate versioonide vahel kolm peamist erinevust.
1) Teatud vĂ”rguresursi (mida vĂ”ib ette kujutada ka konfiguratsioonide osana) puhul arenevad moodulid ja faktid kĂ”igis toetatud vĂ”rgukĂ€itus sĂŒsteemides samal ajal. Me arvame, et kui Ansible toetab ressursi konfiguratsiooni ĂŒhel vĂ”rgupĂ”hjal, peaksime selle toetama igal pool. See lihtsustab ressursside moodulite kasutamist, sest vĂ”rguhalduse automatiseerimise insener saab nĂŒĂŒd seadistada ressurssi (nt LLDP) kĂ”igis vĂ”rgukĂ€itus sĂŒsteemides koos kohalike ja toetatud moodulitega.
2) Ressursimoodulid sisaldavad nĂŒĂŒd oleku vÀÀrtust.
ĂŒhendatud: seadistused on ĂŒhendatud esitatud seadistustega (vaikimisi);asendatud: ressursi seadistus asendatakse esitatud seadistusega;ĂŒlekirjutatud: ressursi seadistus asendatakse esitatud seadistusega; ĂŒleliigsed ressursi eksemplarid eemaldatakse;kustutatud: ressursi seadistus eemaldatakse/taastatakse vaikimisi.

3) Ressursimoodulid sisaldavad nĂŒĂŒd stabiilseid tagastatud vÀÀrtusi. Kui vĂ”rguressursi moodul on teinud (vĂ”i soovitanud) vajalikud muudatused vĂ”rgu seadmes, tagastab see samad vĂ”tme-vÀÀrtuse paarid mĂ€nguraamatus.
before: seadistamine seadmes struktureeritud andmete kujul enne ĂŒlesannet;pĂ€rast: kui seade on muutunud (vĂ”i vĂ”ib muutuda, kui kontrollreĆŸiimi kasutatakse), tagastatakse saadud seadistus struktureeritud andmetena;kĂ€sklused: kĂ”ik seadistuskĂ€sklused, mis on seadmes kĂ€ivitatud selle soovitud olekusse viimiseks.


Mis kÔik see tÀhendab? Miks see on oluline?
Selles postituses kĂ€sitletakse palju keerulisi kontseptsioone, kuid loodame, et lĂ”puks mĂ”istate paremini, miks ettevĂ”tte kliendid nĂ”uavad faktide kogumist, andmete normaliseerimist ja tsĂŒklite seadistamist automatiseerimisplatvormile. Miks vajavad nad neid tĂ€iustusi? Paljud organisatsioonid viivad praegu lĂ€bi digitaalset transformatsiooni, et muuta oma IT-keskkonnad paindlikumaks ja konkurentsivĂ”imelisemaks. Hea vĂ”i halb, kuid paljud vĂ”rgutehnikud muutuvad vĂ”rgurakendajateks â kas isikliku huvi vĂ”i juhtkonna nĂ”udmisel.
Organisatsioonid mĂ”istavad, et ĂŒksikute vĂ”rgumallide automatiseerimine ei lahenda killustatuse probleemi ja tĂ”hustab tegevust vaid teatud piirini. Red Hat Ansible Automation Platform pakub rangeid ja normeeritud andmemudeleid ressursside jaoks, et programmeerida alusandmete haldamist vĂ”rgu seadmes. See tĂ€hendab, et kasutajad loobuvad jĂ€rk-jĂ€rgult individuaalsetest seadistamisviisidest, eelistades kaasaegsemaid meetodeid, mis keskenduvad tehnoloogiatele (nt IP-aadressid, VLAN, LLDP jne), mitte konkreetsetele tootja rakendustele.
Kas see tĂ€hendab, et usaldusvÀÀrsete ja testitud komandode ning konfiguratsioonide pĂ€evad on loetud? Absoluutselt mitte. Oodatavad vĂ”rgupoodid ei ole igas olukorras ja mitte iga mĂŒĂŒja jaoks rakendatavad, seega vajavad vĂ”rgutehnikud komandode ja konfiguratsioonide mooduleid teatud rakenduste jaoks. Ressursimoodulite eesmĂ€rk on lihtsustada suurte Jinja mallide kasutamist ja normaliseerida struktureerimata seadme konfiguratsioonid struktureeritud JSON-formaati. Ressursimoodulitega on olemasolevatel vĂ”rkudel lihtsam oma konfiguratsioonid struktureeritud vĂ”tme-vÀÀrtuse paarideks muuta, mis esindavad loetavat tĂ”e allikat. Struktureeritud vĂ”tme-vÀÀrtuse paaride kasutamine vĂ”imaldab liikuda seadmete eraldi kĂ€ivitamisest ja töötamisest sĂ”ltumatute struktureeritud andmetega, viies vĂ”rgud esiplaanile âinfrastruktuur koodinaâ lĂ€henemise kaudu.
Millised ressursimoodulid tulevad Ansible Engine 2.9-sse?
Enne kui rÀÀgime ĂŒksikasjalikult sellest, mis Ansible 2.9-s on, tuletame meelde, kuidas me kogu töö mahu jagasime.
Oleme eraldanud 7 kategooriat ja igale neist on mÀÀratud teatud vÔrguressursid:

MÀrkus: rasvaste tÀhtedega esitatud ressursid on planeeritud ja ellu viidud Ansible 2.9-s.
Korporatiivsete klientide ja kogukonna tagasiside pÔhjal oli loogiline keskenduda kÔigepealt modulitele, mis on seotud vÔrgu topoloogia protokollide, virtualiseerimise ja liidestega.
JÀrgmised ressursimoodulid on vÀlja töötatud Ansible Networki meeskonna poolt ja vastavad Red Hati toetatud platvormidele:

JÀrgmised moodulid on vÀlja töötatud Ansible'i kogukonna poolt:
exos_lldp_globalâ Extreme Networksilt.nxos_bfd_interfacesâ Ciscolt.nxos_telemetryâ Ciscolt.
Nagu nÀete, sobitub ressursimoodulite kontseptsioon meie platvormipÔhise strateegiaga. See tÀhendab, et integreerime vajalikud vÔimekused ja funktsioonid otse Ansible'i, 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 andnud tööriista Module Builder.
Plaanimine Ansible 2.10 ja hiljem
PÀrast Ansible 2.9 vÀljaandmist keskendume jÀrgmistele Ansible 2.10 ressursside moodulitele, mida saab kasutada vÔrgu topoloogia ja poliitika edasiseks kohandamiseks, nÀiteks . Arenduskava on endiselt kohandatav, seega kui teil on kommentaare, andke sellest teada .
Ressursid ja alustamine
Allikas: habr.com
