Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Ang umaabot nga pagpagawas sa Red Hat Ansible Engine 2.9 nagdala mga kulbahinam nga mga pag-uswag, ang pipila niini gihisgutan sa kini nga artikulo. Sama sa naandan, bukas namong gipalambo ang Ansible Network, uban ang suporta sa komunidad. Apil kanamo - tan-awa ang isyu board sa GitHub ug tun-i ang plano sa kalamboan para sa pagpagawas sa Red Hat Ansible Engine 2.9 sa wiki nga panid para sa Ansible nga Network.

Sama sa among gipahibalo bag-o lang, Ang Red Hat Ansible Automation Platform karon naglakip sa Ansible Tower, Ansible Engine ug sa tanan nga Ansible Network sulod. Karong panahona, ang labing inila nga mga platform sa networking gipatuman pinaagi sa Ansible modules. Pananglitan:

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

Alang sa usa ka kompleto nga lista sa mga platform nga hingpit nga gisuportahan sa Red Hat pinaagi sa Ansible Automation subscription, gipatik dinhi.

Unsay atong nakat-onan

Sa niaging upat ka tuig, daghan na mig nakat-onan bahin sa pagpalambo sa network automation platform. Nakat-onan sab namo kana sa unsa nga paagi gigamit ang mga artifact sa plataporma sa Ansible nga playbook ug mga tahas sa mga end user. Ug ania ang among nahibal-an:

  • Ang mga organisasyon nag-automate sa mga himan gikan sa dili lang usa, apan daghang mga tigbaligya.
  • Ang automation dili lamang usa ka teknikal nga panghitabo, apan usa usab ka kultura.
  • Ang pag-automate sa mga network sa gidak-on mas lisud kay sa daw tungod sa sukaranang mga prinsipyo sa arkitektura sa disenyo sa automation.

Kung among gihisgutan ang among dugay nga mga plano sa pagtubo kapin sa usa ka tuig ang milabay, ang among mga kliyente sa korporasyon nangayo sa mga musunud:

  • Ang pagkolekta sa kamatuoran kinahanglan nga mas maayo nga i-standardize ug ipahiangay sa mga automation sa workflows sa tanang device.
  • Ang pag-update sa mga configuration sa device kinahanglan usab nga i-standardize ug makanunayon aron ang Ansible modules modumala sa ikaduhang katunga sa cycle human makolekta ang mga kamatuoran.
  • Nagkinahanglan kami og higpit ug gisuportahan nga mga pamaagi sa pag-convert sa configuration sa device ngadto sa structured data. Niini nga basehan, ang tinubdan sa kamatuoran mahimong mabalhin gikan sa network device.

Mga pag-uswag sa kamatuoran

Ang pagkolekta sa mga kamatuoran gikan sa mga device sa network gamit ang Ansible kasagaran mahitabo nga random. Ang mga platform nga nakabase sa web adunay lainlain nga ang-ang sa mga kapabilidad sa pagkolekta sa kamatuoran, apan kini adunay gamay o wala’y gamit para sa pag-parse ug pag-standardize sa representasyon sa datos sa mga pares nga hinungdanon nga kantidad. Basaha post Ken Celenza kung unsa ka lisud ug kasakit ang pag-analisar ug pag-standardize sa tinuod nga datos.

Tingali nakamatikod ka nga nagtrabaho kami sa papel nga Ansible Network Engine. Natural, ang 24K nga pag-download sa ulahi, ang papel sa Network Engine dali nga nahimong usa sa labing inila nga mga tahas sa Ansible sa Ansible Galaxy alang sa mga senaryo sa automation sa network. Sa wala pa namo ibalhin ang kadaghanan niini ngadto sa Ansible 2.8 aron maandam kung unsa ang gikinahanglan sa Ansible 2.9, kini nga papel sa Ansible naghatag sa unang hugpong sa mga himan aron makatabang sa pag-parse sa mga sugo, pagdumala sa mga sugo, ug pagkolekta sa datos alang sa mga device sa network.

Kung nahibal-an nimo kung giunsa ang paggamit sa Network Engine, kini usa ka episyente kaayo nga paagi sa pagkolekta, pag-parse, ug pag-standardize sa datos sa kamatuoran aron magamit sa Ansible. Ang disbentaha sa kini nga tahas mao nga kinahanglan nimo nga maghimo usa ka tibuuk nga hugpong sa mga parser para sa matag plataporma ug alang sa tanan nga kalihokan sa network. Aron masabtan kung unsa ka lisud ang paghimo, pagpadala, ug pagpadayon sa mga parser, tan-awa Labaw sa 1200 ka mga parser gikan sa mga lalaki sa Cisco.

Sa laktud nga pagkasulti, ang pagkuha sa mga kamatuoran gikan sa mga aparato ug pag-normalize kini sa mga pares nga hinungdanon nga kantidad hinungdanon alang sa automation sa sukod, apan ang pagkab-ot niini lisud kung ikaw adunay daghang mga tigbaligya ug mga platform sa network.

Ang matag network fact module sa Ansible 2.9 mahimo nang analisa ang configuration sa usa ka network device ug ibalik ang structured data - walay dugang nga library, Ansible nga mga papel o custom parser.

Sukad sa Ansible 2.9, sa matag higayon nga ang usa ka updated nga network module ipagawas, ang kamatuoran nga module gipalambo aron sa paghatag og data mahitungod niini nga seksyon sa configuration. Kana mao, ang pag-uswag sa mga kamatuoran ug mga module karon mahitabo sa parehas nga tulin, ug sila kanunay adunay usa ka sagad nga istruktura sa datos.

Ang pag-configure sa mga kapanguhaan sa usa ka aparato sa network mahimong makuha ug mabag-o sa istruktura nga datos sa duha ka paagi. Sa duha ka paagi, mahimo nimong makolekta ug mabag-o ang usa ka piho nga lista sa mga kapanguhaan gamit ang usa ka bag-ong keyword gather_network_resources. Ang mga ngalan sa kapanguhaan motakdo sa mga ngalan sa module, nga sayon ​​kaayo.

Samtang nagtigom sa mga kamatuoran:

Paggamit sa usa ka keyword gather_facts mahimo nimong makuha ang kasamtangan nga configuration sa device sa sinugdanan sa playbook, ug dayon gamiton kini sa tibuok playbook. Ipiho ang indibidwal nga mga kapanguhaan nga makuha gikan sa aparato.

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

Tingali namatikdan nimo ang usa ka butang nga bag-o sa kini nga mga pananglitan, nga mao - gather_facts: true anaa na karon alang sa native fact collection alang sa network devices.

Direkta nga gigamit ang network fact module:

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

Gibalik sa playbook ang mosunod nga mga kamatuoran bahin sa 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

Matikdi kung giunsa pagkuha sa Ansible ang lumad nga configuration gikan sa Arista device ug gibag-o kini ngadto sa structured data aron gamiton isip standard key-value pairs alang sa downstream nga mga buluhaton ug mga operasyon.

Ang mga kamatuoran sa interface mahimong idugang sa Ansible nga gitipigan nga mga variable ug gamiton dayon o sa ulahi isip input sa usa ka resource module eos_interfaces walay dugang nga pagproseso o pagkakabig.

Mga Resource Module

Mao nga, among gikuha ang mga kamatuoran, gi-normalize ang datos, gipahiangay kini sa usa ka standardized internal data structure diagram ug nakadawat sa usa ka andam nga gigikanan sa kamatuoran. Hooray! Nindot kini, siyempre, apan kinahanglan gihapon naton nga i-convert ang mga pares sa yawe nga kantidad balik sa piho nga pagsumpo nga gipaabut sa piho nga platform sa aparato. Nagkinahanglan na kami karon og mga module nga espesipiko sa plataporma aron matubag kining bag-ong mga kinahanglanon sa pagkolekta sa kamatuoran ug normalisasyon.

Unsa ang usa ka module sa kapanguhaan? Mahimo nimong hunahunaon ang mga seksyon sa pag-configure sa usa ka aparato ingon mga kapanguhaan nga gihatag sa kana nga aparato. Ang mga module sa kapanguhaan sa network gituyo nga limitado sa usa ka kapanguhaan ug mahimong i-stack sama sa mga bloke sa pagtukod aron ma-configure ang mga komplikado nga serbisyo sa network. Ingon usa ka sangputanan, ang mga kinahanglanon ug detalye alang sa usa ka module sa kapanguhaan natural nga gipasimple, tungod kay ang module sa kapanguhaan makabasa. ΠΈ i-configure ang usa ka piho nga serbisyo sa network sa usa ka aparato sa network.

Aron ipatin-aw kung unsa ang mahimo sa usa ka module sa kapanguhaan, tan-awon naton ang usa ka pananglitan nga playbook nga nagpakita sa usa ka idempodent nga operasyon gamit ang bag-ong mga kamatuoran sa kapanguhaan sa network ug module 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

Sama sa imong nakita, ang datos nga nakolekta gikan sa aparato direkta nga gibalhin sa katugbang nga module sa kapanguhaan nga wala’y pagkakabig. Kung gilansad, ang playbook nagkuha mga kantidad gikan sa aparato ug gitandi kini sa gipaabut nga mga kantidad. Sa kini nga pananglitan, ang mga kantidad nga gibalik sama sa gipaabut (nga mao, gisusi niini ang mga paglihis sa pagsumpo) ug nagtaho kung nabag-o ba ang pagsumpo.

Ang sulundon nga paagi aron mahibal-an ang pag-anod sa configuration mao ang pagtipig sa mga kamatuoran sa Ansible nga gitipigan nga mga variable ug kanunay nga gamiton kini sa module sa kapanguhaan sa mode sa pag-inspeksyon. Kini usa ka yano nga pamaagi aron makita kung adunay usa nga mano-mano nga nagbag-o sa mga kantidad. Sa kadaghanan nga mga kaso, gitugotan sa mga organisasyon ang mga pagbag-o ug pag-configure nga mano-mano, bisan kung daghang mga operasyon ang gihimo pinaagi sa Ansible Automation.

Sa unsang paagi lahi ang bag-ong mga module sa kapanguhaan gikan sa mga nauna?

Alang sa usa ka network automation engineer, adunay 3 nga nag-unang kalainan tali sa mga module sa kapanguhaan sa Ansible 2.9 ug sa miaging mga bersyon.

1) Alang sa gihatag nga kapanguhaan sa network (nga mahimo usab nga isipon nga seksyon sa pag-configure), ang mga module ug mga kamatuoran mag-uswag sa tanan nga gisuportahan nga mga operating system sa network nga dungan. Naghunahuna kami nga kung gisuportahan sa Ansible ang pagsumpo sa kapanguhaan sa usa ka platform sa network, kinahanglan namon nga suportahan kini bisan diin. Gipasimple niini ang paggamit sa mga module sa kapanguhaan tungod kay ang usa ka network automation engineer mahimo na nga mag-configure sa usa ka kapanguhaan (sama sa LLDP) sa tanan nga mga operating system sa network nga adunay lumad ug gisuportahan nga mga module.

2) Resource modules karon naglakip sa usa ka estado bili.

  • merged: ang configuration gihiusa sa gihatag nga configuration (default);
  • replaced: Ang resource configuration pulihan sa gihatag nga configuration;
  • overridden: Ang resource configuration pulihan sa gihatag nga configuration; ang wala kinahanglana nga mga higayon sa kapanguhaan papason;
  • deleted: Ang resource configuration papason/ibalik sa default.

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

3) Ang mga resource modules karon naglakip sa stable return values. Kung ang module sa kapanguhaan sa network nakahimo (o nagsugyot) sa kinahanglan nga mga pagbag-o sa aparato sa network, ibalik niini ang parehas nga mga pares nga key-value sa playbook.

  • before: configuration sa device sa porma sa structured data sa wala pa ang buluhaton;
  • after: kon ang device nausab (o mahimong mausab kung ang test mode gigamit), ang resulta nga configuration ibalik isip structured data;
  • commands: Ang bisan unsang mga command sa pag-configure nga gipadagan sa aparato aron madala kini sa gusto nga kahimtang.

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Unsay kahulogan niining tanan? Nganong importante kini?

Ang kini nga post naglangkob sa daghang mga komplikado nga konsepto, apan nanghinaut kami nga sa katapusan mas masabtan nimo kung unsa ang gipangayo sa mga kliyente sa negosyo sa tinuud nga pagkolekta, pag-normalize sa datos, ug pag-configure sa loop alang sa usa ka platform sa automation. Apan nganong kinahanglan nila kini nga mga pag-uswag? Daghang mga organisasyon karon ang nagtinguha sa digital nga pagbag-o aron mahimo ang ilang mga palibot sa IT nga labi ka abtik ug kompetisyon. Alang sa mas maayo o mas grabe pa, daghang mga network engineer ang nahimong network developers bisan tungod sa kaugalingong interes o sa mando sa pagdumala.

Ang mga organisasyon nakaamgo nga ang pag-automate sa indibidwal nga mga template sa network dili makasulbad sa problema sa mga silos ug nagdugang lamang sa kaepektibo sa usa ka sukod. Ang Red Hat Ansible Automation Platform naghatag og estrikto ug normatibo nga mga modelo sa datos sa kapanguhaan aron maprograma nga madumala ang nagpahiping datos sa usa ka network device. Sa ato pa, anam-anam nga gibiyaan sa mga tiggamit ang indibidwal nga mga pamaagi sa pag-configure pabor sa labi ka modernong mga pamaagi nga adunay gibug-aton sa mga teknolohiya (pananglitan, mga adres sa IP, VLAN, LLDP, ug uban pa), kaysa sa usa ka piho nga pagpatuman sa vendor.

Nagpasabot ba kini nga ang mga adlaw sa kasaligan ug napamatud-an nga mga module sa command ug pag-configure giihap? Sa walay kaso. Ang gipaabot nga network resource modules dili magamit sa tanang kaso o sa matag vendor, busa ang command ug configuration modules gikinahanglan gihapon sa mga network engineer para sa pipila ka mga pagpatuman. Ang katuyoan sa mga module sa kapanguhaan mao ang pagpayano sa dagkong mga template sa Jinja ug pag-normalize ang dili istruktura nga mga pag-configure sa aparato sa usa ka istruktura nga format sa JSON. Uban sa mga resource modules, mas sayon ​​alang sa kasamtangan nga mga network ang pagbag-o sa ilang configuration ngadto sa structured key-value pairs nga nagrepresentar sa sayon ​​nga basahon nga tinubdan sa kamatuoran. Pinaagi sa paggamit sa structured key-value pairs, mahimo kang mobalhin gikan sa pagpadagan sa mga configuration sa matag device ngadto sa pagtrabaho uban sa independent structured data ug dad-on ang mga network sa unahan sa usa ka infrastructure-as-code approach.

Unsa nga mga module sa kapanguhaan ang moabut sa Ansible Engine 2.9?

Sa wala pa kami isulti kanimo sa detalye kung unsa ang mahitabo sa Ansible 2.9, hinumdoman naton kung giunsa naton gibahin ang tibuuk nga sakup sa trabaho.

Giila namo ang 7 ka mga kategorya ug gi-assign ang piho nga mga kapanguhaan sa network sa matag usa:

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Mubo nga sulat: Ang mga kapanguhaan sa bold giplano ug gipatuman sa Ansible 2.9.
Pinasukad sa feedback gikan sa mga kostumer sa negosyo ug sa komunidad, makatarunganon nga unahon ang mga module nga may kalabotan sa mga protocol sa topology sa network, virtualization, ug mga interface.
Ang mosunod nga mga module sa kapanguhaan gimugna sa Ansible Network team ug katumbas sa mga plataporma nga gisuportahan sa Red Hat:

Ang Sulod nga Playbook. Ang mga gimbuhaton sa network sa bag-ong Ansible Engine 2.9

Ang mosunud nga mga module gihimo sa Ansible nga komunidad:

  • exos_lldp_global - gikan sa Extreme Networks.
  • nxos_bfd_interfaces - gikan sa Cisco
  • nxos_telemetry - gikan sa Cisco

Sama sa imong makita, ang konsepto sa mga module sa kapanguhaan mohaum sa among estratehiya nga nakasentro sa plataporma. Sa ato pa, gilakip namo ang gikinahanglan nga mga kapabilidad ug mga gimbuhaton sa Ansible mismo aron suportahan ang standardisasyon sa pagpauswag sa mga module sa network, ug usab aron mapasimple ang trabaho sa mga tiggamit sa lebel sa mga tahas sa Ansible ug mga playbook. Aron mapalapad ang pagpalambo sa mga module sa kahinguhaan, ang Ansible team nagpagawas sa himan nga Module Builder.

Mga Plano alang sa Ansible 2.10 ug sa unahan

Sa higayon nga mapagawas na ang Ansible 2.9, magbuhat kami sa sunod nga set sa mga resource modules para sa Ansible 2.10, nga magamit sa dugang nga pag-configure sa topology ug polisiya sa network, eg. ACL, OSPF ug BGP. Ang plano sa pag-uswag mahimo pa nga i-adjust, busa kung adunay mga komento, palihug i-report kini Ansible Network nga komunidad.

Mga kapanguhaan ug pagsugod

Press release bahin sa Ansible Automation Platform
Ansible Automation Platform Blog
Ang kaugmaon sa paghatud sa sulud sa Ansible
Mga pagpamalandong sa pagbag-o sa istruktura sa proyekto nga Ansible

Source: www.habr.com

Idugang sa usa ka comment