The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

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

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

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 postitus 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 ĂŒle 1200 parserit 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: True

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

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

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

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

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

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.

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

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:

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

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:

The Inside Playbook. VÔrgufunktsioonid uues Ansible Engine 2.9

JÀrgmised moodulid on vÀlja töötatud Ansible'i kogukonna poolt:

  • exos_lldp_global — Extreme Networksilt.
  • nxos_bfd_interfaces — Cisco poolt
  • nxos_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 ACL, OSPF ja BGPArenguplaan on endiselt kohandatav, seega kui teil on kommentaare, andke sellest teada Ansible Network'i kogukonnas.

Ressursid ja algus

Pressiteade Ansible Automation Platform'i kohta
Ansible Automation Platform'i blogi
Ansible'i sisu edastamise tulevik
MÔtted Ansible projekti struktuuri muutmisest

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster