The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

Serbestberdana dahatû ya Red Hat Ansible Engine 2.9 çêtirkirinên balkêş tîne, ku hin ji wan di vê gotarê de têne vegirtin. Mîna her gav, me bi piştgirîya civatê bi eşkereyî çêtirkirina Torgiloka Ansible pêş dixe. Tevlî me bibin - lê binêrin panela pirsgirêkê li ser GitHub û ji bo plana pêşveçûnê bixwînin serbestberdana Red Hat Ansible Engine 2.9 li ser rûpela wiki ji bo Tora Ansible.

Wekî ku me vê dawiyê ragihand, Platforma Otomasyona Bersivê ya Red Hat naha Ansible Tower, Ansible Engine û hemî naveroka Tora Ansible vedihewîne. Naha, platformên torê yên herî populer bi modulên Ansible ve têne bicîh kirin. Bo nimûne:

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

Ji bo navnîşek bêkêmasî ya platformên ku bi tevahî ji hêla Red Hat ve bi abonetiya Ansible Automation ve têne piştgirî kirin, li vir hatiye weşandin.

Em çi fêr bûne

Di çar salên çûyî de, me di derbarê pêşxistina platformek otomasyona torê de gelek tişt fêr bûn. Em jî hîn bûn çawa berhemên platformê di pirtûkên lîstik û rolên Ansible de ji hêla bikarhênerên dawîn ve têne bikar anîn. Û li vir tiştê ku me dît:

  • Rêxistin ne tenê ji yek, lê ji gelek firoşkaran amûrên otomatîk dikin.
  • Otomasyon ne tenê fenomenek teknîkî ye, lê di heman demê de yek çandî ye.
  • Ji ber prensîbên bingehîn ên mîmarî yên sêwirana otomasyonê, xweberkirina torên di pîvanê de ji ku xuya dike dijwartir e.

Dema ku me salek berê li ser plansaziyên mezinbûna xweya dirêj-dirêj nîqaş kir, xerîdarên me yên pargîdanî yên jêrîn xwestin:

  • Pêdivî ye ku berhevkirina rastiyê di hemî cîhazan de çêtir were standardîzekirin û bi rêyên xebata otomasyonê re were hevrêz kirin.
  • Nûvekirina mîhengên li ser cîhazê jî pêdivî ye ku standardkirin û domdar be da ku modulên Ansible piştî berhevkirina rastiyan nîvê duyemîn çerxê rêve bibin.
  • Ji bo veguheztina veavakirina cîhazê li daneyên birêkûpêk pêdivî bi rêbazên hişk û piştgirî hene. Li ser vê bingehê, çavkaniya rastiyê ji cîhaza torê dikare were veguheztin.

Pêşveçûnên rastiyê

Berhevkirina rastiyan ji cîhazên torê yên ku Ansible bikar tînin bi gelemperî bi rengek rasthatî pêk tê. Platformên-based Web xwedan astên cihêreng ên kapasîteyên berhevkirina rastiyan in, lê ji bo parsekkirin û standardîzekirina nûnertiya daneyan di cotên nirx-kilît de fonksiyonek hindik an jî tune. Xwendin post Ken Celenza li ser ku ew dikare çiqas dijwar û bi êş be analîzkirin û standardkirina daneyên rastîn.

Dibe ku we ferq kiriye ku em li ser rola Enerjiya Torgiloka Ansible dixebitin. Bi xwezayî, 24K dakêşan paşê, rola Motora Torê zû bûye yek ji rolên herî populer ên Ansible di Ansible Galaxy de ji bo senaryoyên otomasyona torê. Berî ku me pir ji vê bar kir nav Ansible 2.8 da ku ji bo tiştê ku dê di Ansible 2.9 de hewce bike amade bikin, vê rola Ansible yekem koma amûran peyda kir da ku alîkariya parkirina fermanan, birêvebirina fermanan û berhevkirina daneyan ji bo amûrên torê bike.

Ger hûn dizanin ka meriv çawa Motora Torê bikar tîne, ev rêyek pir bikêr e ji bo berhevkirin, parkirin û standardîzekirina daneyên rastiyê ji bo karanîna di Ansible de. Kêmasiya vê rolê ev e ku hûn hewce ne ku ji bo her platformê û ji bo hemî çalakiya torê komek parsek biafirînin. Ji bo ku hûn fêm bikin ka ew çiqas dijwar e ku meriv parseran çêbikin, barkirin û domandin, lê binêre Zêdetirî 1200 parser ji xortên li Cisco.

Bi kurtasî, wergirtina rastiyan ji cîhazan û normalîzekirina wan di nav cotên nirx-kilît de ji bo otomatê di pîvanê de pêdivî ye, lê gihîştina vê dema ku we gelek firoşkar û platformên torê hene dijwar e.

Her modulek rastiya torê ya di Ansible 2.9 de naha dikare veavakirina amûrek torê analîz bike û daneyên sazkirî vegerîne - bêyî pirtûkxaneyên zêde, rolên Ansible an parsekên xwerû.

Ji Ansible 2.9-ê ve, her carê ku modulek torê ya nûvekirî tê berdan, modula rastiyê çêtir dibe da ku daneyên li ser vê beşa veavakirinê peyda bike. Ango, pêşkeftina rastiyan û modulan naha bi heman lezê diqewime, û ew ê her gav xwediyê avahiyek daneya hevbeş bin.

Veavakirina çavkaniyan li ser amûrek torê dikare bi du awayan were vegerandin û veguheztin daneyên sazkirî. Bi her du awayan, hûn dikarin bi karanîna keywordek nû navnîşek taybetî ya çavkaniyan berhev bikin û veguherînin gather_network_resources. Navên çavkaniyê bi navên modulê re li hev dikin, ku pir hêsan e.

Dema berhevkirina rastiyan:

Bi kar tînin a keyword gather_facts hûn dikarin veavakirina cîhaza heyî di destpêka lîstika lîstikê de vegerînin, û dûv re wê li seranserê pirtûka lîstikê bikar bînin. Çavkaniyên takekesî yên ku ji cîhazê têne derxistin diyar bikin.

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

Dibe ku we di van mînakan de tiştek nû dîtibe, ango - gather_facts: true naha ji bo berhevkirina rastiya xwemalî ya ji bo amûrên torê heye.

Rasterast modula rastiya torê bikar bînin:

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

Pirtûka lîstikê di derbarê navberê de rastiyên jêrîn vedigerîne:

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

Bala xwe bidinê ka Ansible çawa veavakirina xwemalî ji cîhaza Arista distîne û wê vediguhezîne daneya birêkûpêk da ku ji bo kar û xebatên jêrîn wekî cotên key-nirxa standard bikar bîne.

Rastiyên navberê dikarin li guhêrbarên hilanîn ên Ansible werin zêdekirin û yekser an paşê wekî têketina modulek çavkaniyê werin bikar anîn eos_interfaces bêyî pêvajoyek an veguherînek zêde.

Modulên Çavkaniyê

Ji ber vê yekê, me rastiyan derxist, daneyan normalîze kir, wan di nav diagramek avahiya daneya navxweyî ya standardkirî de bicîh kir û çavkaniyek amade ya rastiyê wergirt. Hooray! Bê guman, ev pir xweş e, lê dîsa jî pêdivî ye ku em bi rengekî cotên key-nirxê vegerînin veavakirina taybetî ya ku platforma cîhaza taybetî hêvî dike. Em naha hewceyê modulên platform-taybet in da ku van daxwazên nû yên berhevkirin û normalîzekirinê bicîh bînin.

Modulek çavkaniyê çi ye? Hûn dikarin beşên veavakirina amûrekê wekî çavkaniyên ku ji hêla wê cîhazê ve têne peyda kirin bifikirin. Modulên çavkaniya torê bi mebest bi çavkaniyek yekane têne sînordar kirin û dikarin wekî blokên avahî werin berhev kirin da ku karûbarên torê yên tevlihev mîheng bikin. Wekî encamek, pêdivî û taybetmendiya modulek çavkaniyê bi xwezayî hêsan têne hêsan kirin, ji ber ku modula çavkaniyê dikare bixwîne и karûbarek torê ya taybetî li ser amûrek torê mîheng bikin.

Ji bo ravekirina ka modulek çavkaniyê çi dike, ka em li mînakek lîstika lîstikê binêrin ku bi karanîna rastiyên çavkaniya torê û modulek nû operasyonek îdempodent nîşan dide. 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

Wekî ku hûn dikarin bibînin, daneyên ku ji cîhazê têne berhev kirin rasterast bêyî veguheztinê ji modula çavkaniya têkildar re têne veguheztin. Dema ku dest pê dike, pirtûka lîstikê nirxan ji cîhazê vedigire û wan bi yên bendewar re berhev dike. Di vê nimûneyê de, nirxên ku hatine vegerandin wekî ku tê hêvî kirin in (ango, ew ji bo veguheztinên mîhengê kontrol dike) û rapor dike ka konfigurasyon guheriye.

Awayê îdeal ji bo tesbîtkirina dravê veavakirinê ev e ku meriv rastiyan di guhêrbarên hilanînkirî yên Ansible de hilîne û wan bi modula çavkaniyê di moda vekolînê de bi awayekî periyodîk bikar bîne. Ev rêbazek hêsan e ku hûn bibînin ka kesek bi destan nirxan guhertiye. Di pir rewşan de, rêxistin bi destan destûr didin guhertin û veavakirinê, her çend gelek operasyon bi rêya Ansible Automation ve têne kirin.

Modulên çavkaniya nû ji yên berê çawa cûda dibin?

Ji bo endezyarek otomasyona torê, 3 cûdahiyên sereke di navbera modulên çavkaniyê yên di Ansible 2.9 û guhertoyên berê de hene.

1) Ji bo çavkaniyek torê ya diyar (ku dikare wekî beşek vesazkirinê jî were hesibandin), modul û rastî dê di hemî pergalên xebitandinê yên torê yên piştgirî de bi hevdemî pêşve bibin. Em difikirin ku ger Ansible veavakirina çavkaniyê li ser yek platformek torê piştgirî bike, divê em wê li her deverê piştgirî bikin. Ev karanîna modulên çavkaniyê hêsan dike ji ber ku endezyarek otomasyona torê naha dikare çavkaniyek (wek LLDP) li ser hemî pergalên xebitandinê yên torê bi modulên xwemalî û piştgirî vesaz bike.

2) Modulên çavkaniyê naha nirxek dewletê vedihewîne.

  • merged: veavakirin bi veavakirina peydakirî re tê yek kirin (default);
  • replaced: Veavakirina çavkaniyê dê bi veavakirina peydakirî re were guheztin;
  • overridden: Veavakirina çavkaniyê dê bi veavakirina peydakirî re were guheztin; Mînakên çavkaniyê yên nepêwist dê werin jêbirin;
  • deleted: Veavakirina çavkaniyê dê were jêbirin/vegerandin li gorî xwerû.

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

3) Modulên çavkaniyê naha nirxên vegerê yên domdar vedigirin. Dema ku modula çavkaniya torê di cîhaza torê de guheztinên pêwîst çêkir (an pêşniyar kir), ew heman cotên key-nirxê vedigerîne pirtûka lîstikê.

  • before: veavakirina li ser cîhazê di forma daneya sazkirî ya berî peywirê de;
  • after: Ger cîhaz guherî (an jî dibe ku biguhere ger moda ceribandinê were bikar anîn), veavakirina encam dê wekî daneyên sazkirî were vegerandin;
  • commands: Hemî fermanên veavakirinê li ser cîhazê têne xebitandin da ku wê bînin rewşa xwestinê.

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

Ev hemû tê çi wateyê? Çima girîng e?

Vê postê gelek têgehên tevlihev vedigire, lê em hêvî dikin ku di dawiyê de hûn ê çêtir têgihiştinek hebe ku xerîdarên pargîdanî di rastiyê de berhevok, normalîzekirina daneyê, û veavakirina loopê ji bo platformek xweseriyê dixwazin. Lê çima ew hewceyê van pêşveçûnan in? Gelek rêxistin naha li dû veguherîna dîjîtal in da ku hawîrdorên xwe yên IT-ya xwe jêhatî û pêşbaztir bikin. Baştir an xirabtir, gelek endezyarên torê an ji ber berjewendiya xwe an jî bi fermana rêveberiyê dibin pêşdebirên torê.

Rêxistin fam dikin ku bixweberkirina şablonên torê yên kesane pirsgirêka siloyan çareser nake û tenê heya radeyekê karîgeriyê zêde dike. Platforma Xweseriya Red Hat Ansible modelên daneya çavkaniyê hişk û normatîf peyda dike da ku bi bernamekî daneyên bingehîn li ser amûrek torê birêve bibe. Ango, bikarhêner hêdî hêdî dev ji rêbazên mîhengê yên takekesî berdidin û li şûna ku li ser pêkanînek firoşkarek taybetî, bi giranî li ser teknolojiyên (mînak, navnîşanên IP, VLAN, LLDP, hwd.) bi rêbazên nûjentir veqetînin.

Ma ev tê vê wateyê ku rojên modul û mîhengên fermanê yên pêbawer û îsbatkirî têne jimartin? Di tu rewşê de. Modulên çavkaniyê yên torê dê di hemî rewşan de an ji bo her firoşkarê neyên sepandin, ji ber vê yekê modulên ferman û veavakirinê dê ji bo hin pêkanînan hîn jî ji hêla endezyarên torê ve hewce bibin. Armanca modulên çavkaniyê hêsankirina şablonên mezin ên Jinja û normalîzekirina mîhengên cîhaza nesazkirî di nav formatek JSON-ya sazkirî de ye. Bi modulên çavkaniyê re, dê ji torên heyî re hêsantir be ku veavakirina xwe veguhezînin cotên sereke-nirxê birêkûpêk ên ku çavkaniyek rast-xwendina hêsan temsîl dikin. Bi karanîna cotên key-nirxa birêkûpêkkirî, hûn dikarin ji konfigurasyonên xebitandinê yên li ser her cîhazê berbi xebata bi daneya birêkûpêk a serbixwe ve biçin û toran bînin pêşiya nêzîkatiyek binesaziyê-wek kod.

Kîjan modulên çavkaniyê dê di Ansible Engine 2.9 de werin?

Berî ku em bi hûrgulî ji we re vebêjin ka dê di Ansible 2.9 de çi bibe, em bînin bîra xwe ka me çawa tevahiya qada xebatê dabeş kir.

Me 7 kategorî nas kir û çavkaniyên torê yên taybetî ji her yekê re destnîşan kirin:

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

Nîşe: Çavkaniyên bi stûr di Ansible 2.9 de hatine plansaz kirin û bicîh kirin.
Li ser bingeha bertekên ji xerîdarên pargîdanî û civakê, mentiqî bû ku pêşî li wan modulên ku bi protokolên topolojiya torê, virtualîzasyon, û navbeynkaran ve girêdayî ne mijûl bibin.
Modulên çavkaniyê yên jêrîn ji hêla tîmê Tora Ansible ve hatine pêşve xistin û bi platformên ku ji hêla Red Hat ve têne piştgirî kirin re têkildar in:

The Inside Playbook. Taybetmendiyên torê di Ansible Engine 2.9 ya nû de

Modulên jêrîn ji hêla civata Ansible ve têne pêşve xistin:

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

Wekî ku hûn dibînin, têgeha modulên çavkaniyê di stratejiya meya platform-navendî de cih digire. Ango, em di Ansible bixwe de kabîl û fonksiyonên pêwîst vedihewînin da ku piştgirîya standardkirinê di pêşkeftina modulên torê de bikin, û her weha ji bo hêsankirina xebata bikarhêneran di asta rol û pirtûkên lîstikê de Ansible. Ji bo berfirehkirina pêşkeftina modulên çavkaniyê, tîmê Ansible amûra Module Builder berdan.

Planên ji bo Ansible 2.10 û pê ve

Gava ku Ansible 2.9 serbest hat berdan, em ê li ser modulên çavkaniyê yên din ên ji bo Ansible 2.10 bixebitin, ku dikare were bikar anîn da ku hûn topolojî û polîtîkaya torê bêtir mîheng bikin, mînakî. ACL, OSPF û BGP. Plana pêşkeftinê hîn jî dikare were sererast kirin, ji ber vê yekê heke şîroveyên we hebin, ji kerema xwe wê rapor bikin civaka Torê ya Ansible.

Çavkanî û dest pê kirin

Daxuyaniya çapemeniyê di derbarê Platforma Otomasyona Ansible
Blog Platforma Xweseriya Ansible
Pêşeroja radestkirina naverokê li Ansible
Nêrînên li ser guhertina avahiya projeya Ansible

Source: www.habr.com

Add a comment