ʻ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ā
E like me kā mākou i hoʻolaha aku nei,
- ʻ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,
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
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ā
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.
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.
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:
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:
Hoʻokumu ʻia nā modula e ka hui Ansible:
exos_lldp_global
- mai Extreme Networks.nxos_bfd_interfaces
- mai Cisconxos_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.
Nā kumuwaiwai a me ka hoʻomaka ʻana
Source: www.habr.com