ʻO ka wikiwiki o Ansible

ʻO ka wikiwiki o Ansible
ʻAʻole ia he mea huna me nā hoʻonohonoho paʻamau ʻaʻole hiki iā Ansible ke hana wikiwiki i kāna hana. Ma ka ʻatikala e kuhikuhi wau i nā kumu he nui no kēia a hāʻawi i kahi haʻahaʻa kūpono o nā hoʻonohonoho, hiki paha, e hoʻonui maoli i ka wikiwiki o kāu papahana.

Ma ʻaneʻi a ma lalo mākou e kūkākūkā ai iā Ansible 2.9.x, i hoʻokomo ʻia i kahi virtualenv hou i hana ʻia ma kāu ala punahele.

Ma hope o ka hoʻouka ʻana, e hana i kahi faila "ansible.cfg" ma kahi o kāu puke pāʻani - e ʻae kēia wahi iā ʻoe e hoʻololi i kēia mau hoʻonohonoho me ka papahana, a e hoʻouka koke lākou.

Paipaipa

Ua lohe mua paha kekahi e pili ana i ka pono e hoʻohana i ka pipelining, ʻo ia hoʻi, ʻaʻole kope ʻana i nā modules i ka ʻōnaehana faila o ka ʻōnaehana target, akā e hoʻoneʻe i kahi waihona zip i kāʻei ʻia ma Base64 pololei i ka stdin o ka unuhi ʻōlelo Python, akā ʻaʻole paha kekahi, akā ʻo ka ʻoiaʻiʻo. he mea ʻoiaʻiʻo: keia hoonohonoho mau nō ka manaʻo haʻahaʻa. ʻO ka mea pōʻino, ʻo kekahi o nā māhele Linux kaulana i hoʻohana ʻia no ka hoʻonohonoho ʻana i ka sudo ʻaʻole maikaʻi loa ma ka paʻamau - no laila pono kēia kauoha i kahi tty (terminal), no laila ua haʻalele ʻo Ansible i kēia hoʻonohonoho pono loa i hoʻopaʻa ʻole ʻia.

pipelining = True

ʻOhi ʻike

Ua ʻike paha ʻoe me nā hoʻonohonoho paʻamau, ʻo Ansible no kēlā me kēia pāʻani e hoʻomaka i ka hōʻiliʻili o nā ʻoiaʻiʻo no nā pūʻali āpau e komo i loko? Ma keʻano laulā, inā ʻaʻole ʻoe i ʻike, ʻike ʻoe i kēia manawa. No ka pale ʻana i kēia, pono ʻoe e ʻae i ke ʻano noi kikoʻī no ka hōʻiliʻili ʻana i nā ʻoiaʻiʻo (explicit) a i ʻole ke ʻano akamai. I loko o ia mea, e hōʻiliʻili wale ʻia nā ʻike mai kēlā mau pūʻali i ʻike ʻole ʻia ma nā pāʻani mua.
UPD. I ke kope ʻana, pono ʻoe e koho i kekahi o kēia mau hoʻonohonoho.

gathering = smart|explicit

Hoʻohana hou i nā pilina ssh

Inā ua holo ʻoe iā Ansible ma ke ʻano debugging (ke koho "v", hana hou ʻia i hoʻokahi a ʻeiwa manawa), ua ʻike paha ʻoe e hana mau ʻia nā pilina ssh a haki. No laila, aia kekahi mau subtleties ma aneʻi.

Hiki iā ʻoe ke pale i ka hana o ka hoʻokumu hou ʻana i kahi pilina ssh ma nā pae ʻelua i ka manawa hoʻokahi: pololei ma ka mea kūʻai aku ssh, a i ka wā e hoʻoili ai i nā faila i ka host hoʻokele mai ka luna.
No ka hoʻohana hou ʻana i kahi pilina ssh wehe, e hoʻohele wale i nā kī pono i ka mea kūʻai aku ssh. A laila e hoʻomaka ia e hana i kēia: i ka wā e hoʻokumu ai i kahi pilina ssh no ka manawa mua, e hana hou ia i kahi mea i kapa ʻia ʻo control socket, ma nā hoʻonohonoho hope, e nānā ʻo ia i ke ola o kēia kumu, a inā kūleʻa, hoʻohana hou i ka pili ssh i kēia manawa. A no ka hoʻomaopopo ʻana i kēia, e hoʻonohonoho i ka manawa no ka mālama ʻana i ka pilina inā ʻaʻole hana. Hiki iā ʻoe ke heluhelu hou aku ma ssh palapala, a ma ka pōʻaiapili o Ansible ke hoʻohana wale nei mākou i ka "forward" i nā koho kūpono i ka mea kūʻai aku ssh.

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

No ka hoʻohana hou ʻana i kahi pilina ssh i wehe ʻia i ka wā e hoʻoili ai i nā faila i kahi hoʻokele mālama, e kuhikuhi wale i kahi hoʻonohonoho ʻike ʻole ssh_tranfer_method. Nui loa ka palapala e pili ana i kēia kumuhana ʻoʻoleʻa a hoʻopunipuni, no ka mea, hana maikaʻi kēia koho! Akā heluhelu hoʻopā'ālua hiki iā ʻoe ke hoʻomaopopo i ka mea e hiki mai ana: e hoʻokuʻu ʻia ke kauoha dd ma luna o ka host hoʻokele, e hana pololei me ka faila makemake.

transfer_method = piped

Ma ke ala, ma ka lālā "hoʻomohala" aia nō kēia hoʻonohonoho ʻaʻole hele i kahi.

Mai makaʻu i ka pahi, makaʻu i ka ʻōpala

ʻO kahi hoʻonohonoho pono ʻē aʻe ʻo ia nā forks. Hoʻoholo ia i ka helu o nā kaʻina hana e hoʻopili like i nā pūʻali a hana i nā hana. Ma muli o nā hiʻohiʻona o Python ma ke ʻano he ʻōlelo, hoʻohana ʻia nā kaʻina hana, ʻaʻole nā ​​kaula, no ka mea, kākoʻo mau ʻo Ansible i ka Python 2.7 - ʻaʻohe asyncio no ʻoe, ʻaʻohe kumu o ka hoʻokomo ʻana i nā ʻano asynchronous ma aneʻi! Ma ka paʻamau, holo ʻo Ansible ʻelima nā limahana, akā inā e nīnau pololei ʻia, e hoʻomaka hou ia:

forks = 20

Ke aʻo koke aku nei au iā ʻoe aia paha kekahi mau pilikia ma aneʻi e pili ana i ka nui o ka hoʻomanaʻo i loaʻa ma ka mīkini hoʻomalu. I nā huaʻōlelo ʻē aʻe, hiki iā ʻoe, ʻoiaʻiʻo, hoʻonohonoho i nā forks=100500, akā ʻo wai ka mea i ʻōlelo e hana?

Hoʻohui pū

ʻO ka hopena, no ka ansible.cfg (ini format), e like paha nā ʻōkuhi kūpono:

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

A inā makemake ʻoe e hūnā i nā mea āpau i kahi YaML-inventory maʻamau o kahi kanaka olakino, a laila hiki ke ʻano like me kēia:

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

ʻO ka mea pōʻino, ʻaʻole e hana kēia me nā hoʻonohonoho "hui = akamai / kikoʻī" a me "forks = 20": ʻaʻole i loaʻa kā lākou YaML like. A i ʻole mākou e hoʻonoho iā lākou ma ansible.cfg, a i ʻole mākou e hāʻawi iā lākou ma nā ʻano hoʻololi kaiapuni ANSIBLE_GATHERING a me ANSIBLE_FORKS.

No Mitogen
- Ma hea kēia e pili ana iā Mitogen? - aia iā ʻoe ke kuleana e nīnau, e ka makamaka heluhelu. ʻAʻohe wahi ma kēia ʻatikala. Akā inā ua mākaukau maoli ʻoe e heluhelu i kāna code a e noʻonoʻo i ke kumu e hāʻule ai kāu puke pāʻani me Mitogen, akā hana maikaʻi me vanilla Ansible, a i ʻole no ke aha i hana maikaʻi ai ka playbook like ma mua, akā ma hope o ka hoʻomaka ʻana o kahi mea hou e hana i nā mea ʻē - maikaʻi, Mitogen hiki paha i kāu mea hana. E noi, e hoʻomaopopo, e kākau i nā ʻatikala - E heluhelu wau me ka hoihoi.

No ke aha ʻaʻole wau e hoʻohana pilikino iā Mitogen? No ka mea, hana wale ʻo Gladiolus inā maʻalahi nā hana a maikaʻi nā mea a pau. Eia naʻe, inā huli iki ʻoe i ka hema a ʻākau paha - ʻo ia nō, ua hōʻea mākou: i ka pane ʻana, lele mai ka lima o nā ʻokoʻa ʻike ʻole iā ʻoe, a no ka hoʻopiha ʻana i ke kiʻi, ʻo ka ʻōlelo maʻamau ka ʻōlelo maʻamau "mahalo iā ʻoukou a pau. , ua noa nā kānaka a pau.” Ma keʻano laulā, ʻaʻole wau makemake e hoʻopau i ka manawa e ʻike ai i nā kumu o ka "kikeke lalo" e hiki mai ana.

Ua ʻike ʻia kekahi o kēia mau hoʻonohonoho i ka wā o ka heluhelu ʻana hoʻopā'ālua plugin pili ma lalo o ka inoa wehewehe pono'ī "ssh.py". Ke kaʻana nei au i nā hopena o ka heluhelu ʻana me ka manaʻolana e hoʻoikaika ia i kekahi e nānā i nā kumu, heluhelu iā lākou, e nānā i ka hoʻokō ʻana, e hoʻohālikelike me nā palapala - ma hope o nā mea a pau, e lawe mai kēia mau mea iā ʻoe i nā hopena maikaʻi. Pōmaikaʻi iā ʻoe

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

ʻO wai o kēia mau hoʻonohonoho Ansible āu e hoʻohana ai e wikiwiki i kāu mau papahana?

  • 69,6%ka paipu ʻana = ʻoiaʻiʻo32

  • 34,8%ʻākoakoa = akamai/kaka16

  • 52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24

  • 17,4%hoʻoili_ʻano = paipu8

  • 63,0%nā mākia = XXX29

  • 6,5%ʻAʻohe o kēia, ʻo Mitogen3 wale nō

  • 8,7%Mitogen + E ʻike wau i kahi o kēia mau hoʻonohonoho4

46 mea hoʻohana i koho. 21 mea hoʻohana i hōʻole.

Makemake ʻoe i nā mea hou aʻe e pili ana iā Ansible?

  • 78,3%ʻae, ʻoiaʻiʻo54

  • 21,7%ʻAe, makemake au i nā mea paʻakikī hou aʻe!15

  • 0,0%ʻaʻole, a ʻaʻole pono no ka mea0

  • 0,0%ʻaʻole, paʻakikī!!!0

69 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 7.

Source: www.habr.com

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