The Inside Playbook. Ma network mu Ansible Engine 2.9

The Inside Playbook. Ma network mu Ansible Engine 2.9

Kutulutsidwa komwe kukubwera kwa Red Hat Ansible Engine 2.9 kumabweretsa zosintha zosangalatsa, zina zomwe zikukambidwa m'nkhaniyi. Monga nthawi zonse, takhala tikukonza zosintha za Ansible Network poyera, mothandizidwa ndi anthu ammudzi. Lowani nafe - yang'anani perekani pa GitHub ndikuphunzira ndondomeko yachitukuko kutulutsidwa kwa Red Hat Ansible Engine 2.9 patsamba la wiki la Ansible Network.

Monga talengeza posachedwa, Red Hat Ansible Automation Platform tsopano ikuphatikiza Ansible Tower, Ansible Engine ndi zonse za Ansible Network. Masiku ano, nsanja zodziwika bwino zapaintaneti zimayendetsedwa ndi ma Ansible module. Mwachitsanzo:

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

Kuti mupeze mndandanda wathunthu wamapulatifomu omwe amathandizidwa kwathunthu ndi Red Hat kudzera kulembetsa kwa Ansible Automation, zosindikizidwa pano.

Taphunzira chiyani

Pazaka zinayi zapitazi, taphunzira zambiri zopanga makina opangira makina. Tinaphunziranso zimenezo momwe zojambula papulatifomu zimagwiritsidwa ntchito m'mabuku osewerera Ansible ndi maudindo ndi ogwiritsa ntchito kumapeto. Ndipo izi ndi zomwe tapeza:

  • Mabungwe akupanga zida kuchokera osati kwa amodzi okha, koma ogulitsa ambiri.
  • Zochita zokha sizinthu zamakono zokha, komanso chikhalidwe.
  • Kupanga ma netiweki pamlingo wovuta kwambiri kuposa momwe zimawonekera chifukwa cha mfundo zazikuluzikulu zamapangidwe opanga makina.

Titakambirana za mapulani athu akukula kwanthawi yayitali chaka chapitacho, makasitomala athu amabungwe adafunsa izi:

  • Kutolera zowona kuyenera kukhala kokhazikika bwino ndikuyanjanitsidwa ndi mayendedwe a automation pazida zonse.
  • Kusintha masinthidwe pa chipangizocho kumayeneranso kukhala kofanana komanso kofanana kuti ma Ansible modules azigwira theka lachiwiri la kuzungulira pambuyo posonkhanitsa mfundo.
  • Tikufuna njira zolimba komanso zothandiza zosinthira masinthidwe a chipangizo kukhala data yokhazikika. Pamaziko awa, gwero la chowonadi likhoza kusunthidwa kuchokera ku chipangizo cha intaneti.

Zosintha zenizeni

Kutolera zowona kuchokera pazida zamtaneti pogwiritsa ntchito Ansible nthawi zambiri kumachitika mwachisawawa. Mapulatifomu opezeka pa intaneti ali ndi kuthekera kosiyanasiyana kopeza zowona, koma ali ndi magwiridwe antchito pang'ono kapena alibe ntchito yofotokozera ndikuyimira kuyimira kwa data mumagulu awiri amtengo wapatali. Werengani positi Ken Celenza momwe zingakhalire zovuta komanso zowawa kusanthula ndikukhazikitsa zowona.

Mwina mwatiwonapo tikugwira ntchito ya Ansible Network Engine. Mwachilengedwe, kutsitsa kwa 24K pambuyo pake, gawo la Network Engine lidakhala gawo limodzi mwamaudindo otchuka kwambiri mu Ansible Galaxy pamawonekedwe amtundu wa netiweki. Tisanasunthire zambiri mu Ansible 2.8 kuti tikonzekere zomwe zingafunike mu Ansible 2.9, gawo Loyenerali lidapereka zida zoyambirira zothandizira kugawa malamulo, kuyang'anira malamulo, ndi kusonkhanitsa deta pazida zama network.

Ngati mukudziwa kugwiritsa ntchito Network Engine, iyi ndi njira yabwino kwambiri yosonkhanitsira, kusanthula, ndi kulinganiza zowona kuti zigwiritsidwe ntchito mu Ansible. Kuipa kwa gawoli ndikuti muyenera kupanga gulu lonse la magawo papulatifomu iliyonse komanso pazochitika zonse zapaintaneti. Kuti mumvetsetse momwe zimavutira kupanga, kutumiza, ndi kukonza zophatikiza, yang'anani Oposa opitilira 1200 kuchokera kwa anyamata ku Cisco.

Mwachidule, kupeza zowona kuchokera pazida ndikuzisintha kukhala magawo amtengo wapatali ndikofunikira kuti zizingochitika zokha, koma kukwaniritsa izi kumakhala kovuta mukakhala ndi mavenda ambiri ndi nsanja zapaintaneti.

Gawo lililonse lamanetiweki mu Ansible 2.9 tsopano litha kusanthula masinthidwe a chipangizo cha netiweki ndikubweza deta yokhazikika - popanda malaibulale owonjezera, maudindo a Ansible kapena ophatikiza makonda.

Popeza Ansible 2.9, nthawi iliyonse ma module osinthidwa amatulutsidwa, gawo lazowona limasinthidwa kuti lipereke zambiri za gawo ili la kasinthidwe. Ndiko kuti, chitukuko cha mfundo ndi ma modules tsopano chikuchitika pa liwiro lomwelo, ndipo nthawi zonse adzakhala ndi deta yofanana.

Kukonzekera kwazinthu pa chipangizo cha netiweki kumatha kubwezeredwa ndikusinthidwa kukhala deta yokhazikika m'njira ziwiri. Munjira zonse ziwiri, mutha kusonkhanitsa ndikusintha mndandanda wazinthu zina pogwiritsa ntchito mawu osakira gather_network_resources. Mayina azinthu amafanana ndi mayina a ma module, omwe ndi abwino kwambiri.

Posonkhanitsa mfundo:

Kugwiritsa ntchito mawu ofunika gather_facts mutha kupezanso kasinthidwe kachipangizo kamakono koyambira pa sewerolo, ndiyeno mugwiritse ntchito m'buku lonse lamasewera. Tchulani zinthu zomwe ziyenera kutengedwa kuchokera ku chipangizocho.

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

Mwina mwawonapo china chatsopano m'zitsanzo izi, monga - gather_facts: true tsopano ikupezeka pazosonkhanitsira zenizeni pazida zamtaneti.

Kugwiritsa ntchito network fact module mwachindunji:

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

The playbook imabweretsanso zotsatirazi zokhudzana ndi mawonekedwe:

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

Zindikirani momwe Ansible amapezeranso makonzedwe achilengedwe kuchokera ku chipangizo cha Arista ndikuchisintha kukhala deta yokhazikika kuti agwiritse ntchito ngati mawiri awiri amtengo wapatali pa ntchito zotsika ndi ntchito.

Zowona za Interface zitha kuwonjezeredwa kuzinthu zosungidwa za Ansible ndikugwiritsidwa ntchito nthawi yomweyo kapena mtsogolo monga cholowa mu gawo lazinthu eos_interfaces popanda kukonza zowonjezera kapena kutembenuka.

Zida Zothandizira

Chifukwa chake, tidatulutsa zowona, kusinthira zomwe datayo ili nazo, kuziyika muzojambula zofananira zamkati ndikulandila chowonadi chopangidwa kale. Uwu! Izi ndizabwino, komabe, tifunikabe kutembenuza makiyi amtengo wapatali kuti abwerere ku kasinthidwe komwe kachipangizo kachipangizo kamene kamayembekezera. Tsopano tikufunika ma module okhudzana ndi pulatifomu kuti tikwaniritse zosowa zatsopanozi zowunikira komanso zokhazikika.

Kodi gawo lothandizira ndi chiyani? Mutha kuganizira za kasinthidwe kachipangizo ngati zinthu zoperekedwa ndi chipangizocho. Ma module othandizira ma netiweki amangokhala ndi chida chimodzi chokha ndipo amatha kusanjika ngati midadada yomangirira kuti musinthe ma network ovuta. Zotsatira zake, zofunikira ndi mafotokozedwe a gawo lazothandizira zimasinthidwa mwachilengedwe, popeza gawo lazothandizira limatha kuwerenga. ΠΈ sinthani mautumiki apadera pamanetiweki.

Kuti tifotokoze zomwe gawo lachidziwitso limachita, tiyeni tiwone chitsanzo cha playbook chomwe chikuwonetsa magwiridwe antchito pogwiritsa ntchito mfundo zatsopano zamaneti ndi gawo. 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

Monga mukuwonera, zomwe zasonkhanitsidwa kuchokera ku chipangizocho zimasamutsidwa mwachindunji ku gawo lolingana lazinthu popanda kutembenuka. Ikakhazikitsidwa, sewerolo limatenga zinthu kuchokera pachidacho ndikuziyerekeza ndi zomwe zikuyembekezeka. Muchitsanzo ichi, zomwe zabwezedwa ndizomwe zimayembekezeredwa (ndiko kuti, zimayang'ana masinthidwe) ndikuwonetsa ngati kasinthidwe kasintha.

Njira yabwino yodziwira kusuntha kwa kasinthidwe ndikusunga zowona muzosintha zosungidwa za Ansible ndikuzigwiritsa ntchito nthawi ndi nthawi ndi gawo lazothandizira poyang'anira. Iyi ndi njira yosavuta yowonera ngati wina wasintha pamanja pazikhalidwe. Nthawi zambiri, mabungwe amalola kusintha ndikusintha pamanja, ngakhale ntchito zambiri zimachitika kudzera mu Ansible Automation.

Kodi ma module atsopano amasiyana bwanji ndi akale?

Kwa mainjiniya opangira makina, pali kusiyana kwakukulu 3 pakati pa ma module a Ansible 2.9 ndi mitundu yam'mbuyomu.

1) Pazinthu zomwe zidaperekedwa pamanetiweki (zomwe zitha kuganiziridwanso ngati gawo lokonzekera), ma module ndi zowona zidzasintha pamakina onse ogwiritsira ntchito maukonde nthawi imodzi. Tikuganiza kuti ngati Ansible imathandizira kasinthidwe kazinthu papulatifomu imodzi, tiyenera kuthandizira kulikonse. Izi zimathandizira kugwiritsa ntchito ma modules chifukwa makina opanga makina opangira ma netiweki tsopano amatha kukonza zinthu (monga LLDP) pamakina onse ogwiritsira ntchito ma netiweki okhala ndi ma module am'deralo komanso othandizira.

2) Ma module othandizira tsopano akuphatikiza mtengo wa boma.

  • merged: kasinthidwe kaphatikizidwe ndi kasinthidwe koperekedwa (chosasinthika);
  • replaced: Kukonzekera kwazinthu kudzasinthidwa ndi kasinthidwe koperekedwa;
  • overridden: Kukonzekera kwazinthu kudzasinthidwa ndi kasinthidwe koperekedwa; zochitika zosafunikira zidzachotsedwa;
  • deleted: Kukonzekera kwazinthu kudzachotsedwa / kubwezeretsedwa kukhala osasintha.

The Inside Playbook. Ma network mu Ansible Engine 2.9

3) Ma module azinthu tsopano akuphatikiza zokhazikika zobwerera. Pamene gawo la gwero la maukonde lapanga (kapena likufuna) kusintha kofunikira pa chipangizo cha intaneti, chimabwezeretsanso mafungulo omwewo amtengo wapatali ku playbook.

  • before: kasinthidwe pa chipangizocho mu mawonekedwe a deta yokonzedwa ntchito isanayambe;
  • after: ngati chipangizocho chasintha (kapena chitha kusintha ngati njira yoyesera ikugwiritsidwa ntchito), kasinthidwe kameneka kadzabwezedwa ngati deta yokonzedwa;
  • commands: Malamulo aliwonse kasinthidwe amayendetsa pa chipangizocho kuti abweretse momwe mukufunira.

The Inside Playbook. Ma network mu Ansible Engine 2.9

The Inside Playbook. Ma network mu Ansible Engine 2.9

Kodi zonsezi zikutanthauza chiyani? Chifukwa chiyani kuli kofunikira?

Chotsatirachi chimakhala ndi malingaliro ovuta kwambiri, koma tikukhulupirira kuti pamapeto pake mumvetsetsa bwino zomwe makasitomala amabizinesi akufunsa, kusonkhanitsa, kukhazikika kwa data, ndikusintha kwa loop papulatifomu yodzichitira. Koma n’chifukwa chiyani amafunikira kuwongolera kumeneku? Mabungwe ambiri tsopano akutsata kusintha kwa digito kuti malo awo a IT akhale okhwima komanso opikisana. Zabwino kapena zoyipa, akatswiri opanga ma network ambiri amakhala opanga maukonde mwina chifukwa chodzikondera kapena chifukwa cha kasamalidwe.

Mabungwe akuwona kuti kupanga ma templates pa intaneti sikuthetsa vuto la silos ndipo kumangowonjezera kuchita bwino pamlingo wina. Red Hat Ansible Automation Platform imapereka ma data okhazikika komanso okhazikika kuti athe kuwongolera mwadongosolo zomwe zili pa chipangizo cha netiweki. Izi zikutanthauza kuti, ogwiritsa ntchito akusiya pang'onopang'ono njira zosinthira payekha m'malo mwa njira zamakono ndikugogomezera matekinoloje (mwachitsanzo, ma adilesi a IP, ma VLAN, LLDP, ndi zina), m'malo mogwiritsa ntchito mavenda ena.

Kodi izi zikutanthauza kuti masiku a ma module odalirika komanso otsimikiziridwa ndi kasinthidwe amawerengedwa? Ayi ndithu. Ma module omwe akuyembekezeredwa pamaneti sangagwire ntchito nthawi zonse kapena kwa ogulitsa aliyense, chifukwa chake ma module amawu ndi kasinthidwe adzafunikabe ndi akatswiri opanga maukonde kuti akwaniritse zina. Cholinga cha ma modules ndikusintha ma tempuleti akulu a Jinja ndikusintha masinthidwe osakhazikika a chipangizo kukhala mawonekedwe a JSON. Ndi ma modules, zidzakhala zosavuta kwa maukonde omwe alipo kuti asinthe kasinthidwe kake kukhala magulu awiri amtengo wapatali omwe amaimira gwero losavuta kuwerenga la choonadi. Pogwiritsa ntchito makiyi amtengo wapatali omwe amapangidwa, mutha kusuntha kuchoka pakukonzekera pa chipangizo chilichonse kupita ku deta yodziyimira payokha ndikubweretsa maukonde kutsogolo kwa njira yoyendetsera zomangamanga.

Ndi ma module ati omwe azibwera mu Ansible Engine 2.9?

Tisanakuuzeni mwatsatanetsatane zomwe zidzachitike mu Ansible 2.9, tiyeni tikumbukire momwe tidagawira gawo lonse la ntchito.

Tidazindikira magulu 7 ndikugawa zida zapaintaneti kwa aliyense:

The Inside Playbook. Ma network mu Ansible Engine 2.9

Zindikirani: Zothandizira zomwe zili m'zilembo zakuda zidakonzedwa ndikukhazikitsidwa mu Ansible 2.9.
Kutengera ndi mayankho ochokera kwa makasitomala amabizinesi ndi anthu ammudzi, zinali zomveka kuti tithane ndi ma module okhudzana ndi ma protocol a network topology, virtualization, ndi ma interfaces.
Ma module otsatirawa adapangidwa ndi gulu la Ansible Network ndipo amagwirizana ndi nsanja zothandizidwa ndi Red Hat:

The Inside Playbook. Ma network mu Ansible Engine 2.9

Ma module otsatirawa amapangidwa ndi gulu la Ansible:

  • exos_lldp_global - kuchokera ku Extreme Networks.
  • nxos_bfd_interfaces - kuchokera ku Cisco
  • nxos_telemetry - kuchokera ku Cisco

Monga mukuwonera, lingaliro la ma module othandizira likugwirizana ndi njira yathu yotsatsira nsanja. Ndiko kuti, timaphatikizapo kuthekera kofunikira ndi ntchito mu Ansible palokha kuti tithandizire kukhazikika pakupanga ma module a netiweki, komanso kufewetsa ntchito ya ogwiritsa ntchito pamlingo wa Ansible maudindo ndi mabuku osewerera. Kukulitsa chitukuko cha ma modules, gulu la Ansible linatulutsa chida cha Module Builder.

Mapulani a Ansible 2.10 ndi kupitirira

Ansible 2.9 ikangotulutsidwa, tikhala tikugwira ntchito pagawo lotsatira la ma modules a Ansible 2.10, omwe angagwiritsidwe ntchito kupititsa patsogolo ndondomeko ya maukonde ndi ndondomeko, mwachitsanzo. ACL, OSPF ndi BGP. Ndondomeko yachitukuko ikhoza kusinthidwa, kotero ngati muli ndi ndemanga, chonde nenani Ansible Network Community.

Zida ndi zoyambira

Kutulutsa atolankhani za Ansible Automation Platform
Ansible Automation Platform Blog
Tsogolo la kutumiza zomwe zili mu Ansible
Malingaliro osintha mawonekedwe a Ansible Project

Source: www.habr.com

Kuwonjezera ndemanga