Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

ʻO ka hoʻokuʻu hou ʻana o Red Hat Ansible Engine 2.9 e lawe mai i nā hoʻomaikaʻi hoihoi, ʻo kekahi o ia mau mea i kūkākūkā ʻia ma kēia ʻatikala. E like me nā manawa a pau, ua hoʻomohala mākou i nā hoʻomaikaʻi ʻana o Ansible Network me ke kākoʻo kaiāulu. E hui pū me mākou - e nānā papa hoʻopuka ma GitHub a e aʻo i ka papahana hoʻomohala no ka hoʻokuʻu ʻana o Red Hat Ansible Engine 2.9 ma ka ʻaoʻao wiki no Pūnaehana Ansible.

E like me kā mākou i hoʻolaha aku nei, Pae ʻĀina Ansible Automation Platform Aia i kēia manawa ka hale kiaʻi ʻo Ansible, Ansible Engine a me nā ʻike āpau Ansible Network. I kēia mau lā, ua hoʻokō ʻia nā pūnaewele pūnaewele kaulana loa ma o nā modula Ansible. ʻo kahi laʻana:

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

No ka papa inoa piha o nā kahua i kākoʻo piha ʻia e Red Hat ma o ka inoa inoa Ansible Automation, paʻi ʻia ma ʻaneʻi.

He aha kā mākou i aʻo ai

I loko o nā makahiki ʻehā i hala iho nei, ua aʻo nui mākou e pili ana i ka hoʻomohala ʻana i kahi kahua hoʻomohala pūnaewele. Ua aʻo pū mākou i kēlā pehea Hoʻohana ʻia nā mea hana kiʻi ma nā puke pāʻani Ansible a me nā kuleana e nā mea hoʻohana hope. A eia kā mākou i ʻike ai:

  • Hoʻopili nā hui i nā polokalamu mai hoʻokahi wale nō, akā he nui nā mea kūʻai aku.
  • ʻAʻole ʻo Automation kahi mea ʻenehana wale nō, akā he moʻomeheu pū kekahi.
  • ʻOi aku ka paʻakikī o ka hoʻokaʻawale ʻana i nā ʻupena ma mua o ka mea i manaʻo ʻia ma muli o nā kumu kumu kumu o ka hoʻolālā automation.

I ko mākou kūkākūkā ʻana i kā mākou mau hoʻolālā ulu lōʻihi ma mua o hoʻokahi makahiki i hala aku nei, ua noi kā mākou mea kūʻai aku no kēia:

  • Pono e ʻoi aku ka maikaʻi o ka hōʻiliʻili ʻana i ka ʻoiaʻiʻo a hoʻohālikelike ʻia me nā kahe hana automation ma nā ʻaoʻao āpau.
  • ʻO ka hoʻonui ʻana i nā hoʻonohonoho hoʻonohonoho ma ka hāmeʻa pono e hoʻohālikelike ʻia a kūlike i hiki i nā modula Ansible ke mālama i ka hapa ʻelua o ka pōʻai ma hope o ka hōʻiliʻili ʻana i nā ʻoiaʻiʻo.
  • Pono mākou i nā ala paʻa a kākoʻo ʻia no ka hoʻololi ʻana i ka hoʻonohonoho hoʻonohonoho ʻana i ka ʻikepili i kūkulu ʻia. Ma kēia kumu, hiki ke hoʻoneʻe ʻia ke kumu o ka ʻoiaʻiʻo mai ka hāmeʻa pūnaewele.

Hoʻomaikaʻi ʻoiaʻiʻo

ʻO ka hōʻiliʻili ʻana i nā ʻoiaʻiʻo mai nā polokalamu pūnaewele me ka hoʻohana ʻana iā Ansible e hana pinepine ʻia me ka ʻole. Loaʻa i nā paena pūnaewele nā ​​ʻano o ka hiki ke hōʻiliʻili ʻoiaʻiʻo, akā he mea liʻiliʻi a ʻaʻohe mea hana no ka parsing a me ka hoʻohālikelike ʻana i ka hōʻike ʻana o nā ʻikepili i nā hui waiwai kī. Heluhelu leka ʻO Ken Celenza e pili ana i ka paʻakikī a me ka ʻeha o ka nānā ʻana a me ka hoʻohālikelike ʻana i ka ʻikepili maoli.

Ua ʻike paha ʻoe iā mākou e hana ana ma ka hana Ansible Network Engine. Ma keʻano maʻamau, 24K hoʻoiho ma hope, ua lilo koke ka hana Network Engine i kekahi o nā kuleana Ansible kaulana loa ma Ansible Galaxy no nā hiʻohiʻona automation network. Ma mua o ka neʻe ʻana i ka hapa nui o kēia i Ansible 2.8 e hoʻomākaukau ai no ka mea e pono ai ma Ansible 2.9, ua hāʻawi kēia hana Ansible i ka pūʻulu mua o nā mea hana e kōkua i ka hoʻopaʻa ʻana i nā kauoha, mālama i nā kauoha, a me ka hōʻiliʻili ʻana i ka ʻikepili no nā polokalamu pūnaewele.

Inā ʻike ʻoe pehea e hoʻohana ai i ka Network Engine, he ala maikaʻi loa kēia e hōʻiliʻili, hoʻopaʻa, a hoʻopaʻa i ka ʻikepili ʻoiaʻiʻo no ka hoʻohana ʻana ma Ansible. ʻO ka hemahema o kēia kuleana, pono ʻoe e hana i kahi hui o nā parser no kēlā me kēia kahua a no nā hana pūnaewele āpau. No ka hoʻomaopopo ʻana i ka paʻakikī o ka hana ʻana, ka moku, a me ka mālama ʻana i nā parser, e nānā ʻOi aku ma mua o 1200 parser mai nā kāne ma Cisco.

I ka pōkole, ʻo ka loaʻa ʻana o nā ʻoiaʻiʻo mai nā polokalamu a me ka hoʻololi ʻana iā lākou i mau kī-waiwai nui he mea nui ia no ka automation ma ka nui, akā paʻakikī ka hoʻokō ʻana inā loaʻa iā ʻoe nā mea kūʻai aku a me nā kahua pūnaewele.

Hiki i kēlā me kēia module pūnaewele ʻoiaʻiʻo ma Ansible 2.9 ke nānā i ka hoʻonohonoho ʻana o kahi hāmeʻa pūnaewele a hoʻihoʻi i ka ʻikepili i kūkulu ʻia - me ka ʻole o nā hale waihona puke, nā kuleana Ansible a i ʻole nā ​​​​parser maʻamau.

Mai ka Ansible 2.9, i kēlā me kēia manawa i hoʻokuʻu ʻia kahi module pūnaewele hou, hoʻomaikaʻi ʻia ka ʻoiaʻiʻo module e hāʻawi i ka ʻikepili e pili ana i kēia ʻāpana o ka hoʻonohonoho. ʻO ia hoʻi, ke hoʻomohala nei i nā ʻoiaʻiʻo a me nā modules i kēia manawa i ka wikiwiki like, a e loaʻa mau iā lākou kahi ʻano ʻikepili maʻamau.

Hiki ke kiʻi a hoʻololi i ka hoʻonohonoho ʻana o nā kumuwaiwai ma kahi ʻoihana pūnaewele i ʻikepili i kūkulu ʻia ma nā ala ʻelua. Ma nā ala ʻelua, hiki iā ʻoe ke hōʻiliʻili a hoʻololi i kahi papa inoa kikoʻī o nā kumuwaiwai me ka hoʻohana ʻana i kahi huaʻōlelo hou gather_network_resources. Hoʻohālikelike nā inoa waiwai me nā inoa module, kahi kūpono loa.

I ka ʻohi ʻana i nā ʻike:

Ke hoʻohana nei i kahi huaʻōlelo gather_facts hiki iā ʻoe ke hoʻihoʻi i ka hoʻonohonoho ʻana o ka hāmeʻa i kēia manawa ma ka hoʻomaka ʻana o ka puke pāʻani, a laila hoʻohana iā ia i loko o ka puke pāʻani holoʻokoʻa. E wehewehe i nā kumuwaiwai hoʻokahi e kiʻi ʻia mai ka hāmeʻa.

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

Ua ʻike paha ʻoe i kekahi mea hou i kēia mau laʻana, ʻo ia hoʻi - gather_facts: true loaʻa i kēia manawa no ka hōʻiliʻili ʻoiaʻiʻo maoli no nā polokalamu pūnaewele.

Ke hoʻohana pololei nei i ka module network fact:

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

Hoʻihoʻi ka puke pāʻani i nā ʻike e pili ana i ka 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

E ʻike pehea e hoʻihoʻi ai ʻo Ansible i ka hoʻonohonoho ʻōiwi mai ka hāmeʻa Arista a hoʻololi iā ia i ʻikepili i kūkulu ʻia e hoʻohana ma ke ʻano he mau kī-waiwai maʻamau no nā hana a me nā hana o lalo.

Hiki ke hoʻohui ʻia nā ʻike pili i nā ʻano hoʻololi i mālama ʻia ʻo Ansible a hoʻohana koke ʻia a i ʻole ma hope ma ke ʻano he hoʻokomo i kahi module kumuwaiwai eos_interfaces me ka hana ʻole a hoʻololi hou.

Nā Module Punawai

No laila, ua unuhi mākou i nā ʻoiaʻiʻo, hoʻoponopono i ka ʻikepili, hoʻokomo iā lākou i loko o kahi kiʻina hoʻolālā ʻikepili kūloko a loaʻa i kahi kumu i mākaukau mākaukau. Hooray! He mea maikaʻi kēia, ʻoiaʻiʻo, akā pono mākou e hoʻohuli i nā hui kī-waiwai i ka hoʻonohonoho kikoʻī i manaʻo ʻia e ka paepae mea kikoʻī. Pono mākou i kēia manawa i nā modula kikoʻī kikoʻī no ka hoʻokō ʻana i kēia mau koi hōʻiliʻili ʻoiaʻiʻo a me nā koi maʻamau.

He aha ke ʻano o ka module punawai? Hiki iā ʻoe ke noʻonoʻo i nā ʻāpana hoʻonohonoho o kahi hāmeʻa e like me nā kumuwaiwai i hāʻawi ʻia e kēlā hāmeʻa. Hoʻopili wale ʻia nā modula kumuwaiwai pūnaewele i kahi kumuwaiwai hoʻokahi a hiki ke hoʻopaʻa ʻia e like me nā poloka kūkulu hale e hoʻonohonoho i nā lawelawe pūnaewele paʻakikī. ʻO ka hopena, ua maʻalahi nā koi a me nā kikoʻī no kahi module kumu waiwai, no ka mea hiki ke heluhelu i ka module kumu. и hoʻonohonoho i kahi lawelawe pūnaewele kiko'ī ma kahi pūnaewele pūnaewele.

No ka wehewehe ʻana i ka hana ʻana o ka module punawai, e nānā kāua i kahi puke pāʻani e hōʻike ana i kahi hana idempodent me ka hoʻohana ʻana i nā ʻike a me nā module hou. 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

E like me kāu e ʻike ai, ua hoʻoili pololei ʻia nā ʻikepili i hōʻiliʻili ʻia mai ka hāmeʻa i ka module kumu waiwai kūpono me ka ʻole o ka hoʻololi ʻana. I ka hoʻokuʻu ʻia ʻana, kiʻi ka playbook i nā waiwai mai ka hāmeʻa a hoʻohālikelike iā lākou me nā waiwai i manaʻo ʻia. Ma kēia hiʻohiʻona, ʻo nā waiwai i hoʻihoʻi ʻia e like me ka mea i manaʻo ʻia (ʻo ia hoʻi, e nānā i nā deviations hoʻonohonoho) a hōʻike inā ua loli ka hoʻonohonoho.

ʻO ke ala maikaʻi loa e ʻike ai i ka drift hoʻonohonoho ʻana, ʻo ia ka mālama ʻana i nā ʻoiaʻiʻo i loko o nā ʻano hoʻololi i mālama ʻia ʻo Ansible a hoʻohana i kēlā me kēia manawa me ka module kumu i ke ʻano nānā. He ala maʻalahi kēia e ʻike ai inā ua hoʻololi lima kekahi i nā waiwai. I ka hapanui o nā hihia, ʻae nā hui i nā loli a me ka hoʻonohonoho ʻana me ka lima, ʻoiai he nui nā hana i hana ʻia ma o Ansible Automation.

Pehea ka ʻokoʻa o nā modula waiwai hou mai nā modula mua?

No ka 'enekinia automation network, aia 3 mau ʻokoʻa nui ma waena o nā modula waiwai ma Ansible 2.9 a me nā mana o mua.

1) No kahi kumuwaiwai pūnaewele i hāʻawi ʻia (hiki ke noʻonoʻo ʻia ma ke ʻano he ʻāpana hoʻonohonoho), e hoʻololi ʻia nā modula a me nā ʻoiaʻiʻo ma nā ʻōnaehana lawelawe pūnaewele i kākoʻo ʻia i ka manawa like. Manaʻo mākou inā kākoʻo ʻo Ansible i ka hoʻonohonoho waiwai ma kahi kahua pūnaewele, pono mākou e kākoʻo iā ia ma nā wahi āpau. Hoʻomaʻamaʻa kēia i ka hoʻohana ʻana i nā modula waiwai no ka mea hiki i kahi ʻenekini ʻenehana pūnaewele ke hoʻonohonoho i kahi kumuwaiwai (e like me LLDP) ma nā ʻōnaehana hana pūnaewele āpau me nā modula maoli a kākoʻo ʻia.

2) Loaʻa ka waiwai mokuʻāina i nā modula waiwai.

  • merged: ua hoʻohuiʻia ka hoʻonohonoho me ka hoʻonohonoho i hāʻawiʻia (paʻamau);
  • replaced: E hoʻololiʻia ka hoʻonohonoho waiwai me ka hoʻonohonoho i hāʻawiʻia;
  • overridden: E hoʻololiʻia ka hoʻonohonoho waiwai me ka hoʻonohonoho i hāʻawiʻia; e holoi ʻia nā kumu waiwai pono ʻole;
  • deleted: Hoʻopau ʻia ka hoʻonohonoho waiwai.

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

3) Loaʻa i nā modula waiwai nā waiwai hoʻihoʻi paʻa. I ka manawa i hana ai (a i ʻole ʻōlelo ʻia) ka hoʻololi e pono ai i ka hāmeʻa pūnaewele, e hoʻihoʻi ʻo ia i nā hui waiwai kī like i ka puke pāʻani.

  • before: hoʻonohonoho i ka mea hana ma ke ʻano o ka ʻikepili i kūkulu ʻia ma mua o ka hana;
  • after: inā ua loli ka mea hana (a i ʻole ke hoʻololi ʻia inā hoʻohana ʻia ke ʻano hoʻāʻo), e hoʻihoʻi ʻia ka hoʻonohonoho hoʻonohonoho e like me ka ʻikepili i kūkulu ʻia;
  • commands: Ke holo nei kekahi mau kauoha hoʻonohonoho ma ka hāmeʻa e hoʻokomo iā ia i loko o ka mokuʻāina i makemake ʻia.

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

He aha ke ʻano o kēia mau mea a pau? No ke aha he mea nui?

Hoʻopili kēia pou i nā manaʻo paʻakikī, akā ke manaʻo nei mākou i ka hopena e loaʻa iā ʻoe kahi ʻike maikaʻi aʻe i ka mea a nā mea kūʻai aku ʻoihana e noi nei i ka hōʻiliʻili ʻoiaʻiʻo, ka hoʻoponopono ʻana i ka ʻikepili, a me ka hoʻonohonoho loop no kahi kahua automation. Akā no ke aha lākou e pono ai i kēia mau hoʻomaikaʻi? Ke ʻimi nei nā hui he nui i ka hoʻololi kikohoʻe e hana i kā lākou ʻenehana IT i ʻoi aku ka agile a me ka hoʻokūkū. No ka maikaʻi a i ʻole ka hewa, nui nā ʻenekini pūnaewele i lilo i mea hoʻomohala pūnaewele ma muli o ka makemake ponoʻī a i ʻole ma ke kauoha a ka hoʻokele.

Ke ʻike nei nā hui ʻaʻole i hoʻoponopono i ka pilikia o nā silos i ka hoʻomaʻamaʻa ʻana i nā ʻōnaehana pūnaewele pilikino a hoʻonui wale i ka pono i kekahi ʻano. Hāʻawi ka Red Hat Ansible Automation Platform i nā hiʻohiʻona ʻike kumu waiwai paʻa a maʻamau e hoʻokele programmatically i nā ʻikepili i lalo o kahi mea pūnaewele. ʻO ia hoʻi, ke haʻalele mālie nei nā mea hoʻohana i nā ʻano hoʻonohonoho hoʻonohonoho ponoʻī e makemake i nā ʻano hana hou me ka manaʻo nui i nā ʻenehana (no ka laʻana, nā IP address, VLANs, LLDP, etc.), ma mua o ka hoʻokō ʻana i kahi mea kūʻai.

ʻO kēia ke ʻano o ka helu ʻana i nā lā o nā modules kauoha hilinaʻi a hōʻoia ʻia? ʻAʻohe hihia. ʻAʻole pili nā modula waiwai pūnaewele i manaʻo ʻia i nā hihia a i ʻole no kēlā me kēia mea kūʻai aku, no laila e pono mau ke kauoha a me nā modula hoʻonohonoho e nā ʻenekinia pūnaewele no kekahi mau hoʻokō. ʻO ke kumu o nā modula waiwai e hoʻomaʻamaʻa i nā hiʻohiʻona Jinja nui a hoʻomaʻamaʻa i nā hoʻonohonoho pono ʻole i kūkulu ʻia i kahi ʻano JSON i kūkulu ʻia. Me nā modula waiwai, e maʻalahi ka hoʻololi ʻana o nā pūnaewele i kēia manawa i kā lākou hoʻonohonoho ʻana i mau hui waiwai kī i kūkulu ʻia e hōʻike ana i kahi kumu maʻalahi o ka ʻoiaʻiʻo. Ma ka hoʻohana ʻana i nā hui waiwai kī i kūkulu ʻia, hiki iā ʻoe ke neʻe mai ka holo ʻana i nā hoʻonohonoho ma kēlā me kēia hāmeʻa i ka hana ʻana me nā ʻikepili i kūkulu ʻia kūʻokoʻa a lawe i nā pūnaewele i mua o kahi ala hoʻolālā-as-code.

He aha nā modula waiwai e hiki mai ana ma Ansible Engine 2.9?

Ma mua o ka haʻi kikoʻī ʻana iā ʻoe i ka mea e hiki mai ana ma Ansible 2.9, e hoʻomanaʻo mākou pehea mākou i puʻunaue ai i ke ʻano holoʻokoʻa o ka hana.

Ua ʻike mākou i 7 mau ʻāpana a hāʻawi i nā kumuwaiwai kikoʻī kikoʻī i kēlā me kēia:

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

Nānā: Ua hoʻolālā ʻia a hoʻokō ʻia nā kumuwaiwai ma ka Ansible 2.9.
Ma muli o nā manaʻo mai nā mea kūʻai aku o ka ʻoihana a me ke kaiāulu, pono e hoʻoponopono mua i kēlā mau modula e pili ana i nā protocol topology network, virtualization, a me nā interface.
Ua hoʻomohala ʻia nā modula waiwai e ka hui Ansible Network a pili i nā kahua i kākoʻo ʻia e Red Hat:

Ka Puke Paani Loko. Ke hana nei ka pūnaewele i ka Ansible Engine 2.9 hou

Hoʻokumu ʻia nā modula e ka hui Ansible:

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

E like me kāu e ʻike ai, kūpono ka manaʻo o nā modula waiwai i kā mākou papahana-centric hoʻolālā. ʻO ia hoʻi, hoʻokomo mākou i nā mana kūpono a me nā hana i loko o Ansible ponoʻī e kākoʻo i ka standardization i ka hoʻomohala ʻana i nā modules pūnaewele, a me ka maʻalahi hoʻi i ka hana a nā mea hoʻohana ma ke kiʻekiʻe o nā kuleana Ansible a me nā puke pāʻani. No ka hoʻonui ʻana i ka hoʻomohala ʻana i nā modula waiwai, ua hoʻokuʻu ka hui Ansible i ka mea hana Module Builder.

Nā hoʻolālā no Ansible 2.10 a ʻoi aku

Ke hoʻokuʻu ʻia ʻo Ansible 2.9, e hana ana mākou i ka hoʻonohonoho hou o nā modula waiwai no Ansible 2.10, hiki ke hoʻohana ʻia no ka hoʻonohonoho hou ʻana i ka topology pūnaewele a me nā kulekele, e laʻa. ACL, OSPF a me BGP. Hiki ke hoʻololi ʻia ka hoʻolālā hoʻomohala ʻana, no laila inā he manaʻo kāu, e ʻoluʻolu e hōʻike iā ia Kaiāulu Pūnaewele Ansible.

Nā kumuwaiwai a me ka hoʻomaka ʻana

Hoʻopuka paʻi e pili ana i Ansible Automation Platform
Ansible Automation Platform Blog
ʻO ka wā e hiki mai ana o ka lawe ʻana i ka ʻike ma Ansible
Nā noʻonoʻo e pili ana i ka hoʻololi ʻana i ka hoʻolālā papahana Ansible

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka