Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

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 GitHubi ĂŒlesannete tahvlit ja uurige arendusplaani Red Hat Ansible Engine 2.9 vĂ€ljaande jaoks wiki lehelt Ansible Network.

Kuidas me hiljuti teada andsime, Red Hat Ansible Automation Platform 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, on avaldatud siin.

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 post 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 ĂŒle 1200 parsereid 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: True

Olete 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:
    - interfaces

Playbook 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: Ethernet1

Pange 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.changed

Nagu 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.

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

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.

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

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:

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

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:

Inside Playbook. Uued vÔrgufunktsioonid Ansible Engine 2.9-s

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 ACL, OSPF ja BGP. Arenduskava on endiselt kohandatav, seega kui teil on kommentaare, andke sellest teada Ansible Network'i kogukonnas.

Ressursid ja alustamine

Pressiteade Ansible Automation Platformist
Ansible Automation Platformi blogi
Sisuleviku tulevik Ansible'is
MÔtisklused Ansible'i projekti struktuuri muutmisest

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster