The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

Itusilẹ ti n bọ ti Red Hat Ansible Engine 2.9 mu awọn ilọsiwaju moriwu, diẹ ninu eyiti a jiroro ninu nkan yii. Gẹgẹbi igbagbogbo, a ti ṣe agbekalẹ awọn ilọsiwaju Nẹtiwọọki Ansible ni gbangba, pẹlu atilẹyin agbegbe. Darapọ mọ wa - wo ọrọ ọkọ lori GitHub ati iwadi eto idagbasoke fun Tu ti Red Hat Ansible Engine 2.9 loju iwe wiki fun Nẹtiwọọki ti o ṣeeṣe.

Bi a ti kede laipe, Platform adaṣiṣẹ Idahun Red Hat bayi pẹlu Ile-iṣọ Ansible, Enjini Ansible ati gbogbo akoonu Nẹtiwọọki Ansible. Ni ode oni, awọn iru ẹrọ nẹtiwọọki olokiki julọ ni imuse nipasẹ awọn modulu Ansible. Fun apere:

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

Fun atokọ pipe ti awọn iru ẹrọ ti o ni atilẹyin ni kikun nipasẹ Red Hat nipasẹ ṣiṣe alabapin Automation Ansible, atejade nibi.

Kini a ti kọ

Ni ọdun mẹrin sẹhin, a ti kọ ẹkọ pupọ nipa ṣiṣe idagbasoke iru ẹrọ adaṣe nẹtiwọọki kan. A tun kẹkọọ pe bi o Awọn ohun-ọṣọ Syeed ni a lo ninu awọn iwe-iṣere Ansible ati awọn ipa nipasẹ awọn olumulo ipari. Ati pe eyi ni ohun ti a rii:

  • Awọn ile-iṣẹ n ṣe adaṣe awọn ẹrọ lati kii ṣe ọkan nikan, ṣugbọn ọpọlọpọ awọn olutaja.
  • Adaṣiṣẹ kii ṣe lasan imọ-ẹrọ nikan, ṣugbọn tun jẹ aṣa aṣa.
  • Awọn nẹtiwọọki adaṣe ni iwọn jẹ iṣoro diẹ sii ju bi o ti dabi nitori awọn ipilẹ ayaworan ipilẹ ti apẹrẹ adaṣe.

Nigbati a ba jiroro awọn ero idagbasoke igba pipẹ wa ni ọdun kan sẹhin, awọn alabara ile-iṣẹ wa beere fun atẹle yii:

  • Ikojọpọ otitọ nilo lati ni iwọntunwọnsi dara julọ ati ni ibamu pẹlu awọn ṣiṣan iṣẹ adaṣe adaṣe kọja gbogbo awọn ẹrọ.
  • Nmu awọn atunto lori ẹrọ naa tun nilo lati wa ni iwọntunwọnsi ati ni ibamu ki awọn modulu Ansible mu idaji keji ti iyipo lẹhin gbigba awọn otitọ.
  • A nilo awọn ọna lile ati atilẹyin fun iyipada iṣeto ẹrọ sinu data ti a ṣeto. Lori ipilẹ yii, orisun otitọ le ṣee gbe lati ẹrọ nẹtiwọọki naa.

Awọn ilọsiwaju otitọ

Gbigba awọn otitọ lati awọn ẹrọ nẹtiwọọki nipa lilo Ansible nigbagbogbo n ṣẹlẹ laileto. Awọn iru ẹrọ ti o da lori oju opo wẹẹbu ni awọn iwọn oriṣiriṣi ti awọn agbara ikojọpọ otitọ, ṣugbọn wọn ni diẹ tabi ko si iṣẹ ṣiṣe fun sisọtọ ati diwọn aṣoju data ni awọn orisii iye bọtini. Ka sare Ken Celenza lori bawo ni o ṣe ṣoro ati irora ti o le jẹ lati ṣe itupalẹ ati ṣe idiwọn data otitọ.

O le ti ṣe akiyesi pe a n ṣiṣẹ lori ipa Enjini Nẹtiwọọki Ansible. Nipa ti, awọn igbasilẹ 24K nigbamii, ipa Nẹtiwọọki Nẹtiwọọki ti yarayara di ọkan ninu awọn ipa Ansible olokiki julọ ni Ansible Galaxy fun awọn oju iṣẹlẹ adaṣe nẹtiwọọki. Ṣaaju ki a to gbe pupọ ninu eyi sinu Ansible 2.8 lati mura silẹ fun ohun ti yoo nilo ni Ansible 2.9, ipa Ansible yii pese ipilẹ awọn irinṣẹ akọkọ lati ṣe iranlọwọ fun awọn pipaṣẹ, ṣakoso awọn aṣẹ, ati gba data fun awọn ẹrọ nẹtiwọọki.

Ti o ba mọ bi o ṣe le lo Ẹrọ Nẹtiwọọki, eyi jẹ ọna ti o munadoko pupọ lati gba, ṣe itupalẹ, ati ṣe iwọn data otitọ fun lilo ni Ansible. Aila-nfani ti ipa yii ni pe o nilo lati ṣẹda gbogbo opo ti parsers fun pẹpẹ kọọkan ati fun gbogbo iṣẹ nẹtiwọọki. Lati loye bawo ni o ṣe ṣoro lati ṣẹda, ṣaja, ati ṣetọju awọn parsers, wo Diẹ ẹ sii ju 1200 parsers lati awọn enia buruku ni Cisco.

Ni kukuru, gbigba awọn ododo lati awọn ẹrọ ati ṣiṣe deede wọn sinu awọn orisii iye bọtini jẹ pataki fun adaṣe ni iwọn, ṣugbọn iyọrisi eyi nira nigbati o ni ọpọlọpọ awọn olutaja ati awọn iru ẹrọ nẹtiwọọki.

Module otitọ nẹtiwọọki kọọkan ni Ansible 2.9 le ṣe itupalẹ iṣeto ti ẹrọ nẹtiwọọki kan ki o pada data eleto - laisi awọn ile-ikawe afikun, Awọn ipa ti o ṣeeṣe tabi awọn aṣayẹwo aṣa.

Niwon Ansible 2.9, kọọkan akoko ohun imudojuiwọn module nẹtiwọki ti wa ni idasilẹ, ni otitọ module dara si a pese data nipa yi apakan ti iṣeto ni. Iyẹn ni, idagbasoke ti awọn otitọ ati awọn modulu bayi waye ni iyara kanna, ati pe wọn yoo ni eto data ti o wọpọ nigbagbogbo.

Iṣeto ni awọn orisun lori ẹrọ nẹtiwọọki kan le gba pada ki o yipada si data ti a ṣeto ni awọn ọna meji. Ni awọn ọna mejeeji, o le gba ati yipada atokọ kan pato ti awọn orisun nipa lilo Koko tuntun kan gather_network_resources. Awọn oluşewadi orukọ baramu awọn orukọ module, eyi ti o jẹ gidigidi rọrun.

Lakoko ti o n ṣajọ awọn otitọ:

Lilo koko gather_facts o le gba atunto ẹrọ lọwọlọwọ pada ni ibẹrẹ iwe-iṣere, ati lẹhinna lo jakejado gbogbo iwe-iṣere. Pato awọn orisun ẹni kọọkan lati gba pada lati ẹrọ naa.

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

O le ti ṣe akiyesi nkan titun ninu awọn apẹẹrẹ wọnyi, eyun - gather_facts: true wa bayi fun ikojọpọ otitọ abinibi fun awọn ẹrọ nẹtiwọọki.

Lilo module otitọ nẹtiwọki taara:

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

Iwe-iṣere naa da awọn ododo wọnyi pada nipa wiwo naa:

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

Ṣe akiyesi bawo ni Ansible ṣe n gba atunto abinibi pada lati ẹrọ Arista ati yi pada si data eleto lati lo bi awọn orisii iye-bọtini boṣewa fun awọn iṣẹ ṣiṣe ati awọn iṣẹ abẹlẹ.

Awọn otitọ ni wiwo le ṣe afikun si awọn oniyipada ti o tọju Ansible ati lo lẹsẹkẹsẹ tabi nigbamii bi titẹ sii si module orisun eos_interfaces laisi afikun sisẹ tabi iyipada.

Awọn oluşewadi modulu

Nitorinaa, a fa awọn ododo jade, ṣe deede data naa, baamu wọn sinu apẹrẹ eto data inu ti o ni idiwọn ati gba orisun ti a ti ṣetan ti otitọ. Hooray! Eyi jẹ nla, nitorinaa, ṣugbọn a tun nilo lati bakan yipada awọn orisii iye bọtini pada si iṣeto ni pato ti pẹpẹ ẹrọ kan n reti. Bayi a nilo awọn modulu pato-Syeed lati pade ikojọpọ otitọ tuntun wọnyi ati awọn ibeere isọdi deede.

Ohun ti o jẹ a oluşewadi module? O le ronu awọn apakan iṣeto ẹrọ kan gẹgẹbi awọn orisun ti a pese nipasẹ ẹrọ yẹn. Awọn modulu orisun nẹtiwọọki jẹ imomose ni opin si orisun kan ati pe o le ṣe akopọ bi awọn bulọọki ile lati tunto awọn iṣẹ nẹtiwọọki eka. Bi abajade, awọn ibeere ati sipesifikesonu fun module oluşewadi jẹ irọrun nipa ti ara, nitori module orisun le ka. и tunto iṣẹ nẹtiwọki kan pato lori ẹrọ nẹtiwọki kan.

Lati ṣe alaye kini module orisun kan ṣe, jẹ ki a wo iwe-iṣere apẹẹrẹ kan ti o ṣe afihan iṣẹ ti arapodent nipa lilo awọn ododo orisun orisun nẹtiwọọki tuntun ati 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

Bii o ti le rii, data ti a gba lati ẹrọ naa ni a gbe taara si module orisun ti o baamu laisi iyipada. Nigbati o ba ṣe ifilọlẹ, iwe-iṣere n gba awọn iye lati inu ẹrọ naa ati ṣe afiwe wọn pẹlu awọn ti a nireti. Ninu apẹẹrẹ yii, awọn iye ti o pada jẹ bi a ti ṣe yẹ (iyẹn ni, o ṣayẹwo fun awọn iyapa iṣeto) ati awọn ijabọ boya iṣeto ti yipada.

Ọna ti o dara julọ lati ṣe awari fiseete iṣeto ni lati tọju awọn ododo ni awọn oniyipada ti o tọju Ansible ati lo wọn lorekore pẹlu module orisun ni ipo ayewo. Eyi jẹ ọna ti o rọrun lati rii boya ẹnikan ti yi awọn iye pada pẹlu ọwọ. Ni ọpọlọpọ awọn ọran, awọn ajọ gba awọn ayipada ati iṣeto ni ọwọ, botilẹjẹpe ọpọlọpọ awọn iṣẹ ṣiṣe nipasẹ Automation Ansible.

Bawo ni titun awọn oluşewadi modulu yato lati išaaju?

Fun ẹlẹrọ adaṣe nẹtiwọọki kan, awọn iyatọ akọkọ 3 wa laarin awọn modulu orisun ni Ansible 2.9 ati awọn ẹya iṣaaju.

1) Fun awọn oluşewadi nẹtiwọọki ti a fun (eyiti o tun le ronu bi apakan atunto), awọn modulu ati awọn otitọ yoo dagbasoke kọja gbogbo awọn ọna ṣiṣe nẹtiwọọki atilẹyin ni nigbakannaa. A ro pe ti Ansible ba ṣe atilẹyin iṣeto awọn orisun lori pẹpẹ nẹtiwọọki kan, o yẹ ki a ṣe atilẹyin nibi gbogbo. Eyi jẹ irọrun lilo awọn modulu awọn orisun nitori ẹlẹrọ adaṣe nẹtiwọọki kan le tunto awọn orisun bayi (bii LLDP) lori gbogbo awọn ọna ṣiṣe nẹtiwọọki pẹlu abinibi ati awọn modulu atilẹyin.

2) Awọn modulu orisun ni bayi pẹlu iye ipinlẹ kan.

  • merged: iṣeto ni ti dapọ pẹlu iṣeto ti a pese (aiyipada);
  • replaced: Awọn oluşewadi iṣeto ni yoo rọpo pẹlu iṣeto ti a pese;
  • overridden: Awọn oluşewadi iṣeto ni yoo rọpo pẹlu iṣeto ti a pese; Awọn iṣẹlẹ orisun ti ko ni dandan yoo paarẹ;
  • deleted: Awọn oluşewadi iṣeto ni yoo paarẹ/pada si aiyipada.

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

3) Awọn modulu orisun ni bayi pẹlu awọn iye ipadabọ iduroṣinṣin. Nigbati module orisun nẹtiwọki ba ti ṣe (tabi dabaa) awọn ayipada pataki si ẹrọ nẹtiwọọki, yoo da awọn orisii iye-bọtini kanna pada si iwe-iṣere naa.

  • before: iṣeto ni lori ẹrọ ni irisi data ti a ṣeto ṣaaju iṣẹ-ṣiṣe;
  • after: ti ẹrọ ba ti yipada (tabi o le yipada ti o ba lo ipo idanwo), iṣeto abajade yoo pada bi data ti a ṣeto;
  • commands: Eyikeyi awọn aṣẹ iṣeto ni ṣiṣe lori ẹrọ lati mu wa sinu ipo ti o fẹ.

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

Kí ni gbogbo èyí túmọ̀ sí? Kini idi ti o ṣe pataki?

Ifiweranṣẹ yii ni wiwa ọpọlọpọ awọn imọran idiju, ṣugbọn a nireti pe ni ipari iwọ yoo ni oye ti o dara julọ ti kini awọn alabara ile-iṣẹ n beere fun ni otitọ gbigba, data deede, ati iṣeto ni lupu fun pẹpẹ adaṣe kan. Ṣugbọn kilode ti wọn nilo awọn ilọsiwaju wọnyi? Ọpọlọpọ awọn ajo ti n lepa iyipada oni nọmba lati jẹ ki awọn agbegbe IT wọn ni irọrun ati ifigagbaga. Fun dara tabi buru, ọpọlọpọ awọn ẹlẹrọ nẹtiwọọki di awọn olupilẹṣẹ nẹtiwọọki boya lati inu anfani ara ẹni tabi ni aṣẹ iṣakoso.

Awọn ile-iṣẹ n ṣe akiyesi pe adaṣe adaṣe awọn awoṣe nẹtiwọọki kọọkan ko yanju iṣoro ti silos ati pe o pọ si ṣiṣe nikan si iwọn kan. Platform Automation Red Hat Ansible n pese awọn awoṣe data awọn orisun iwulo to muna lati ṣakoso ni ṣiṣe eto data ti o wa labẹ ẹrọ lori ẹrọ nẹtiwọọki kan. Iyẹn ni, awọn olumulo maa n kọ awọn ọna atunto ẹni kọọkan silẹ ni ojurere ti awọn ọna ode oni diẹ sii pẹlu tcnu lori awọn imọ-ẹrọ (fun apẹẹrẹ, awọn adirẹsi IP, VLANs, LLDP, ati bẹbẹ lọ), kuku ju imuse olutaja kan pato.

Ṣe eyi tumọ si pe awọn ọjọ ti igbẹkẹle ati awọn modulu aṣẹ ti a fihan ati iṣeto ni nọmba? Ni ọran kankan. Awọn modulu orisun nẹtiwọọki ti a nireti kii yoo wulo ni gbogbo awọn ọran tabi fun gbogbo olutaja, nitorinaa aṣẹ ati awọn modulu iṣeto ni yoo tun nilo nipasẹ awọn ẹlẹrọ nẹtiwọọki fun awọn imuse kan. Idi ti awọn modulu orisun ni lati ṣe irọrun awọn awoṣe Jinja nla ati ṣe deede awọn atunto ẹrọ ti a ko ṣeto sinu ọna kika JSON ti a ṣeto. Pẹlu awọn modulu orisun, yoo rọrun fun awọn nẹtiwọọki ti o wa tẹlẹ lati yi atunto wọn pada si awọn orisii iye bọtini ti a ṣeto ti o jẹ aṣoju orisun ti o rọrun lati ka ti otitọ. Nipa lilo awọn orisii iye-bọtini ti iṣeto, o le gbe lati awọn atunto ṣiṣiṣẹ lori ẹrọ kọọkan lati ṣiṣẹ pẹlu data eleto ominira ati mu awọn nẹtiwọọki wa si iwaju ti ọna amayederun-bi-koodu.

Awọn modulu oluşewadi wo ni yoo wa ni Ansible Engine 2.9?

Ṣaaju ki a sọ fun ọ ni alaye ohun ti yoo ṣẹlẹ ni Ansible 2.9, jẹ ki a ranti bi a ṣe pin gbogbo ipari iṣẹ naa.

A ṣe idanimọ awọn ẹka 7 ati sọtọ awọn orisun nẹtiwọọki kan pato si ọkọọkan:

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

Akiyesi: Awọn orisun ni igboya ti gbero ati imuse ni Ansible 2.9.
Da lori esi lati ọdọ awọn alabara ile-iṣẹ ati agbegbe, o jẹ ọgbọn lati kọkọ kọkọ koju awọn modulu wọnyẹn ti o ni ibatan si awọn ilana topology nẹtiwọọki, agbara ipa, ati awọn atọkun.
Awọn modulu orisun atẹle wọnyi ni idagbasoke nipasẹ ẹgbẹ Nẹtiwọọki Ansible ati ibaamu si awọn iru ẹrọ ti o ni atilẹyin nipasẹ Red Hat:

The Inu Playbook. Awọn ẹya Nẹtiwọọki ninu Ẹrọ Aṣeṣe tuntun 2.9

Awọn modulu atẹle yii jẹ idagbasoke nipasẹ agbegbe Ansible:

  • exos_lldp_global - lati awọn iwọn nẹtiwọki.
  • nxos_bfd_interfaces - lati Cisco
  • nxos_telemetry - lati Cisco

Gẹgẹbi o ti le rii, imọran ti awọn modulu orisun ni ibamu si ilana-centric Syeed wa. Iyẹn ni, a pẹlu awọn agbara pataki ati awọn iṣẹ ni Ansible funrararẹ lati ṣe atilẹyin isọdiwọn ni idagbasoke awọn modulu nẹtiwọọki, ati tun lati ṣe irọrun iṣẹ ti awọn olumulo ni ipele ti awọn ipa Ansible ati awọn iwe-iṣere. Lati faagun awọn idagbasoke ti awọn oluşewadi modulu, awọn Ansible egbe tu awọn Module Akole ọpa.

Awọn eto fun Ansible 2.10 ati ju

Ni kete ti Ansible 2.9 ti tu silẹ, a yoo ṣiṣẹ lori eto atẹle ti awọn modulu oluşewadi fun Ansible 2.10, eyiti o le ṣee lo lati tunto topology nẹtiwọki ati eto imulo siwaju sii, fun apẹẹrẹ. ACL, OSPF ati BGP. Eto idagbasoke naa le tun ṣe atunṣe, nitorina ti o ba ni awọn asọye, jọwọ jabo si Ansible Network awujo.

Awọn orisun ati bibẹrẹ

Tẹ itusilẹ nipa Platform Automation Ansible
Ansible Automation Platform Blog
Ojo iwaju ti ifijiṣẹ akoonu ni Ansible
Iweyinpada lori yiyipada awọn Ansible ise agbese be

orisun: www.habr.com

Fi ọrọìwòye kun