Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Ir-rilaxx li jmiss ta 'Red Hat Ansible Engine 2.9 iġib titjib eċċitanti, li wħud minnhom huma diskussi f'dan l-artikolu. Bħal dejjem, konna qed niżviluppaw titjib tan-Netwerk Ansible fil-miftuħ, bl-appoġġ tal-komunità. Ingħaqad magħna - agħti ħarsa lejn bord tal-ħruġ fuq GitHub u tistudja l-pjan ta 'żvilupp għal rilaxx ta' Red Hat Ansible Engine 2.9 fuq il-paġna wiki għal Netwerk Ansible.

Kif ħabbarna dan l-aħħar, Red Hat Ansible Automation Platform issa jinkludi Ansible Tower, Ansible Engine u l-kontenut kollu tan-Netwerk Ansible. Illum il-ġurnata, l-aktar pjattaformi tan-netwerking popolari huma implimentati permezz ta 'moduli Ansible. Pereżempju:

  • Arista EOS
  • Cisco IOS
  • Cisco IOS XR
  • Cisco NX-OS
  • Juniper Junos
  • VyOS

Għal lista kompluta ta' pjattaformi li huma appoġġjati bis-sħiħ minn Red Hat permezz ta' abbonament ta' Ansible Automation, ippubblikat hawn.

X’tgħallimna

Matul l-aħħar erba 'snin, tgħallimna ħafna dwar l-iżvilupp ta' pjattaforma ta 'awtomazzjoni tan-netwerk. Dan tgħallimna wkoll kif artifacts tal-pjattaforma jintużaw fil-playbooks u r-rwoli ta' Ansible mill-utenti finali. U hawn dak li sirna nafu:

  • L-organizzazzjonijiet qed awtomatizzati apparati minn mhux biss wieħed, iżda ħafna bejjiegħa.
  • L-awtomazzjoni mhix biss fenomenu tekniku, iżda wkoll wieħed kulturali.
  • L-awtomatizzazzjoni tan-netwerks fuq skala hija aktar diffiċli milli jidher minħabba l-prinċipji arkitettoniċi fundamentali tad-disinn tal-awtomazzjoni.

Meta ddiskutejna l-pjanijiet ta’ tkabbir fit-tul tagħna aktar minn sena ilu, il-klijenti korporattivi tagħna talbu dan li ġej:

  • Il-ġbir tal-fatti jeħtieġ li jkun standardizzat aħjar u allinjat mal-flussi tax-xogħol tal-awtomazzjoni fl-apparati kollha.
  • L-aġġornament tal-konfigurazzjonijiet fuq l-apparat jeħtieġ ukoll li jkun standardizzat u konsistenti sabiex il-moduli Ansible jimmaniġġjaw it-tieni nofs taċ-ċiklu wara li jiġbru l-fatti.
  • Għandna bżonn metodi rigorużi u appoġġjati għall-konverżjoni tal-konfigurazzjoni tal-apparat f'dejta strutturata. Fuq din il-bażi, is-sors tal-verità jista 'jiġi mċaqlaq mill-apparat tan-netwerk.

Titjib tal-fatti

Il-ġbir ta' fatti minn tagħmir tan-netwerk bl-użu ta' Ansible spiss iseħħ bl-addoċċ. Pjattaformi bbażati fuq il-web għandhom gradi differenti ta 'kapaċitajiet ta' ġbir ta 'fatti, iżda għandhom ftit jew l-ebda funzjonalità għall-parsing u l-istandardizzazzjoni tar-rappreżentazzjoni tad-dejta f'pari ta' valuri ewlenin. Aqra wara Ken Celenza dwar kemm jista’ jkun diffiċli u ta’ uġigħ li tanalizza u tistandardizza data fattwali.

Jista 'jkollok innotajt li naħdmu fuq ir-rwol ta' Ansible Network Engine. Naturalment, 24K downloads aktar tard, ir-rwol tal-Magna tan-Netwerk malajr sar wieħed mill-aktar rwoli Ansible popolari f'Ansible Galaxy għal xenarji ta 'awtomazzjoni tan-netwerk. Qabel ma ċċaqlaqna ħafna minn dan f'Ansible 2.8 biex nippreparaw għal dak li jkun meħtieġ f'Ansible 2.9, dan ir-rwol ta 'Ansible ipprovda l-ewwel sett ta' għodod biex jgħinu parse kmandi, jimmaniġġjaw kmandi, u jiġbru data għall-apparat tan-netwerk.

Jekk taf kif tuża Network Engine, dan huwa mod effiċjenti ħafna biex tiġbor, teżamina, u tistandardizza d-dejta tal-fatti għall-użu f'Ansible. L-iżvantaġġ ta 'dan ir-rwol huwa li għandek bżonn toħloq mazz sħiħ ta' parsers għal kull pjattaforma u għall-attività kollha tan-netwerk. Biex tifhem kemm hu diffiċli li toħloq, tibgħat, u żżomm parsers, agħti ħarsa lejn Aktar minn 1200 parsers mill-guys ta' Cisco.

Fil-qosor, li tikseb fatti mill-apparati u n-normalizzazzjoni tagħhom f'pari ewlenin-valur hija essenzjali għall-awtomazzjoni fuq skala, iżda dan huwa diffiċli li jinkiseb meta jkollok ħafna bejjiegħa u pjattaformi tan-netwerk.

Kull modulu tal-fatti tan-netwerk f'Ansible 2.9 issa jista' janalizza l-konfigurazzjoni ta' apparat tan-netwerk u jirritorna data strutturata - mingħajr libreriji addizzjonali, rwoli Ansible jew parsers personalizzati.

Minn Ansible 2.9, kull darba li jiġi rilaxxat modulu tan-netwerk aġġornat, il-modulu tal-fatti jitjieb biex jipprovdi dejta dwar din it-taqsima tal-konfigurazzjoni. Jiġifieri, l-iżvilupp ta 'fatti u moduli issa jseħħ bl-istess pass, u dejjem se jkollhom struttura ta' data komuni.

Il-konfigurazzjoni tar-riżorsi fuq apparat tan-netwerk tista' tiġi rkuprata u kkonvertita f'dejta strutturata b'żewġ modi. Fiż-żewġ modi, tista 'tiġbor u tittrasforma lista speċifika ta' riżorsi billi tuża keyword ġdida gather_network_resources. L-ismijiet tar-riżorsi jaqblu mal-ismijiet tal-moduli, li huwa konvenjenti ħafna.

Waqt li tiġbor il-fatti:

Bl-użu ta' keyword gather_facts tista 'tirkupra l-konfigurazzjoni tal-apparat attwali fil-bidu tal-playbook, u mbagħad tużaha matul il-playbook kollu. Speċifika r-riżorsi individwali li għandhom jiġu rkuprati mill-apparat.

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

Forsi ndunajt xi ħaġa ġdida f'dawn l-eżempji, jiġifieri - gather_facts: true issa hija disponibbli għall-ġbir tal-fatti indiġeni għal tagħmir tan-netwerk.

Bl-użu tal-modulu tal-fatt tan-netwerk direttament:

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

Il-playbook jirritorna l-fatti li ġejjin dwar l-interface:

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

Innota kif Ansible jirkupra l-konfigurazzjoni nattiva mill-apparat Arista u jittrasformaha f'dejta strutturata biex tużaha bħala pari standard ta' valuri ewlenin għal kompiti u operazzjonijiet downstream.

Il-fatti tal-interface jistgħu jiġu miżjuda mal-varjabbli maħżuna ta' Ansible u jintużaw immedjatament jew aktar tard bħala input għal modulu tar-riżorsi eos_interfaces mingħajr ipproċessar jew konverżjoni addizzjonali.

Moduli tar-Riżorsi

Allura, estrajna l-fatti, innormalizzajna d-dejta, daħħalna f'dijagramma standardizzata tal-istruttura tad-dejta interna u rċevejna sors ta 'verità lest. Ħura! Dan huwa kbir, ovvjament, iżda għad għandna bżonn li b'xi mod nikkonvertiw il-pari ewlenin-valur lura għall-konfigurazzjoni speċifika li tistenna l-pjattaforma tal-apparat speċifiku. Issa neħtieġu moduli speċifiċi għall-pjattaforma biex nilħqu dawn ir-rekwiżiti ġodda ta 'ġbir ta' fatti u normalizzazzjoni.

X'inhu modulu tar-riżorsi? Tista' taħseb fit-taqsimiet tal-konfigurazzjoni ta' apparat bħala riżorsi pprovduti minn dak l-apparat. Il-moduli tar-riżorsi tan-netwerk huma limitati intenzjonalment għal riżorsa waħda u jistgħu jiġu f'munzelli bħal blokki tal-bini biex jiġu kkonfigurati servizzi kumplessi tan-netwerk. Bħala riżultat, ir-rekwiżiti u l-ispeċifikazzjoni għal modulu tar-riżorsi huma ssimplifikati b'mod naturali, peress li l-modulu tar-riżorsi jista 'jaqra и kkonfigurat servizz tan-netwerk speċifiku fuq apparat tan-netwerk.

Biex tispjega x'jagħmel modulu tar-riżorsi, ejja nħarsu lejn playbook eżempju li juri operazzjoni idempodent bl-użu ta' fatti u modulu ta' riżorsi ġodda tan-netwerk 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

Kif tistgħu taraw, id-dejta miġbura mill-apparat tiġi trasferita direttament lill-modulu tar-riżorsi korrispondenti mingħajr konverżjoni. Meta jitnieda, il-playbook jirkupra valuri mill-apparat u jqabbelhom ma 'dawk mistennija. F'dan l-eżempju, il-valuri rritornati huma kif mistenni (jiġifieri, jiċċekkja għal devjazzjonijiet tal-konfigurazzjoni) u jirrapporta jekk il-konfigurazzjoni nbidlitx.

Il-mod ideali biex tiskopri drift tal-konfigurazzjoni huwa li taħżen fatti f'varjabbli maħżuna Ansible u tużahom perjodikament mal-modulu tar-riżorsi fil-mod ta 'spezzjoni. Dan huwa metodu sempliċi biex tara jekk xi ħadd biddilx il-valuri manwalment. Fil-biċċa l-kbira tal-każijiet, l-organizzazzjonijiet jippermettu bidliet u konfigurazzjoni manwalment, għalkemm ħafna operazzjonijiet jitwettqu permezz ta 'Ansible Automation.

Kif huma differenti l-moduli tar-riżorsi l-ġodda minn dawk preċedenti?

Għal inġinier tal-awtomazzjoni tan-netwerk, hemm 3 differenzi ewlenin bejn il-moduli tar-riżorsi f'Ansible 2.9 u verżjonijiet preċedenti.

1) Għal riżorsa tan-netwerk partikolari (li tista' titqies ukoll bħala sezzjoni ta' konfigurazzjoni), il-moduli u l-fatti se jevolvu fis-sistemi operattivi tan-netwerk kollha appoġġjati simultanjament. Aħna naħsbu li jekk Ansible jappoġġja l-konfigurazzjoni tar-riżorsi fuq pjattaforma waħda tan-netwerk, għandna nappoġġjawha kullimkien. Dan jissimplifika l-użu ta 'moduli tar-riżorsi minħabba li inġinier tal-awtomazzjoni tan-netwerk issa jista' jikkonfigura riżorsa (bħal LLDP) fuq is-sistemi operattivi tan-netwerk kollha b'moduli indiġeni u appoġġjati.

2) Il-moduli tar-riżorsi issa jinkludu valur tal-istat.

  • merged: il-konfigurazzjoni hija magħquda mal-konfigurazzjoni pprovduta (default);
  • replaced: Il-konfigurazzjoni tar-riżorsi se tiġi sostitwita bil-konfigurazzjoni pprovduta;
  • overridden: Il-konfigurazzjoni tar-riżorsi se tiġi sostitwita bil-konfigurazzjoni pprovduta; istanzi ta' riżorsi mhux meħtieġa se jitħassru;
  • deleted: Il-konfigurazzjoni tar-riżorsi se titħassar/tiġi restawrata għal default.

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

3) Il-moduli tar-riżorsi issa jinkludu valuri ta 'ritorn stabbli. Meta l-modulu tar-riżorsi tan-netwerk ikun għamel (jew ippropona) il-bidliet meħtieġa għall-apparat tan-netwerk, jirritorna l-istess pari ta 'valur-ċavetta lill-playbook.

  • before: konfigurazzjoni fuq l-apparat fil-forma ta 'data strutturata qabel il-kompitu;
  • after: jekk l-apparat inbidel (jew jista' jinbidel jekk tintuża l-modalità tat-test), il-konfigurazzjoni li tirriżulta tiġi rritornata bħala data strutturata;
  • commands: Kwalunkwe kmandi tal-konfigurazzjoni jimxu fuq l-apparat biex iġibu fl-istat mixtieq.

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Xi jfisser dan kollu? Għaliex huwa importanti?

Din il-kariga tkopri ħafna kunċetti kumplessi, iżda nittamaw li fl-aħħar ikollok fehim aħjar ta 'dak li l-klijenti tal-intrapriżi qed jitolbu fil-fatt ġbir, normalizzazzjoni tad-dejta, u konfigurazzjoni ta' loop għal pjattaforma ta 'awtomazzjoni. Imma għaliex għandhom bżonn dan it-titjib? Ħafna organizzazzjonijiet issa qed isegwu trasformazzjoni diġitali biex jagħmlu l-ambjenti tal-IT tagħhom aktar b'aġilità u kompetittivi. Fit-tajjeb jew għall-agħar, ħafna inġiniera tan-netwerk isiru żviluppaturi tan-netwerk jew għal interess personali jew fuq talba tal-ġestjoni.

L-organizzazzjonijiet qed jirrealizzaw li l-awtomatizzazzjoni tal-mudelli tan-netwerk individwali ma ssolvix il-problema tas-silos u żżid biss l-effiċjenza sa ċertu punt. Ir-Red Hat Ansible Automation Platform tipprovdi mudelli ta 'dejta ta' riżorsi rigorużi u normattivi biex timmaniġġja b'mod programmatiku d-dejta sottostanti fuq apparat tan-netwerk. Jiġifieri, l-utenti qed jabbandunaw gradwalment metodi ta 'konfigurazzjoni individwali favur metodi aktar moderni b'enfasi fuq teknoloġiji (per eżempju, indirizzi IP, VLANs, LLDP, eċċ.), aktar milli fuq implimentazzjoni speċifika tal-bejjiegħ.

Dan ifisser li l-ġranet ta 'moduli ta' kmand affidabbli u ppruvati u konfigurazzjoni huma nnumerati? Fl-ebda każ. Il-moduli tar-riżorsi tan-netwerk mistennija mhux se jkunu applikabbli fil-każijiet kollha jew għal kull bejjiegħ, għalhekk il-moduli tal-kmand u tal-konfigurazzjoni xorta se jkunu meħtieġa mill-inġiniera tan-netwerk għal ċerti implimentazzjonijiet. L-iskop tal-moduli tar-riżorsi huwa li jissimplifikaw mudelli kbar ta 'Jinja u jinnormalizzaw konfigurazzjonijiet ta' apparat mhux strutturat f'format JSON strutturat. Bil-moduli tar-riżorsi, se jkun aktar faċli għan-netwerks eżistenti li jittrasformaw il-konfigurazzjoni tagħhom f'pari strutturati ta' valuri ewlenin li jirrappreżentaw sors ta' verità faċli biex jinqara. Billi tuża pari ta' valuri-ċavetta strutturati, tista' timxi minn konfigurazzjonijiet ta' tħaddim fuq kull apparat għal xogħol b'dejta strutturata indipendenti u ġġib in-netwerks fuq quddiem ta' approċċ ta' infrastruttura bħala kodiċi.

Liema moduli tar-riżorsi se jkunu ġejjin f'Ansible Engine 2.9?

Qabel ma ngħidulek fid-dettall x'se jiġri f'Ansible 2.9, ejja niftakru kif qsamna l-ambitu kollu tax-xogħol.

Aħna identifikajna 7 kategoriji u assenjati riżorsi speċifiċi tan-netwerk lil kull waħda:

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Nota: Ir-riżorsi b'tipa grassa ġew ippjanati u implimentati f'Ansible 2.9.
Ibbażat fuq feedback mill-klijenti tal-intrapriżi u l-komunità, kien loġiku li l-ewwel jiġu ttrattati dawk il-moduli relatati mal-protokolli tat-topoloġija tan-netwerk, il-virtwalizzazzjoni u l-interfaces.
Il-moduli tar-riżorsi li ġejjin ġew żviluppati mit-tim tan-Netwerk Ansible u jikkorrispondu mal-pjattaformi appoġġjati minn Red Hat:

Il-Playbook Ġewwa. Karatteristiċi tan-netwerking fl-Ansible Engine il-ġdid 2.9

Il-moduli li ġejjin huma żviluppati mill-komunità Ansible:

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

Kif tistgħu taraw, il-kunċett tal-moduli tar-riżorsi jidħol fl-istrateġija tagħna ċċentrata fuq il-pjattaforma. Jiġifieri, aħna ninkludu l-kapaċitajiet u l-funzjonijiet meħtieġa f'Ansible innifsu biex nappoġġaw l-istandardizzazzjoni fl-iżvilupp ta 'moduli tan-netwerk, u wkoll biex nissimplifikaw ix-xogħol tal-utenti fil-livell ta' rwoli u playbooks Ansible. Biex tespandi l-iżvilupp tal-moduli tar-riżorsi, it-tim Ansible ħareġ l-għodda Module Builder.

Pjanijiet għal Ansible 2.10 u lil hinn

Ladarba Ansible 2.9 jiġi rilaxxat, se nkunu qed naħdmu fuq is-sett li jmiss ta 'moduli ta' riżorsi għal Ansible 2.10, li jistgħu jintużaw biex jiġu kkonfigurati aktar it-topoloġija u l-politika tan-netwerk, eż. ACL, OSPF u BGP. Il-pjan ta 'żvilupp xorta jista' jiġi aġġustat, għalhekk jekk għandek kummenti, jekk jogħġbok irrapporta lil komunità tan-Netwerk Ansible.

Riżorsi u tibda

Stqarrija għall-istampa dwar Ansible Automation Platform
Ansible Automation Platform Blog
Il-futur tal-kunsinna tal-kontenut f'Ansible
Riflessjonijiet dwar il-bidla fl-istruttura tal-proġett Ansible

Sors: www.habr.com

Żid kumment