ProHoster > Pūnaewele > Nā Administration > Pehea e hoʻomaka ai e hoʻāʻo iā Ansible, e hoʻihoʻi hou i ka papahana i hoʻokahi makahiki a ʻaʻole hele pupule
Pehea e hoʻomaka ai e hoʻāʻo iā Ansible, e hoʻihoʻi hou i ka papahana i hoʻokahi makahiki a ʻaʻole hele pupule
E hoʻomaka ana mai ka hana ʻelua, lilo kekahi code i hoʻoilina, no ka mea hoʻomaka nā manaʻo mua e ʻokoʻa mai ka ʻoiaʻiʻo paʻakikī. ʻAʻole maikaʻi a maikaʻi ʻole kēia, he mea paʻakikī ke hoʻopaʻapaʻa a pono e ola pū me. ʻO kahi ʻāpana o kēia kaʻina hana refactoring. Hoʻoponopono hou i nā mea hana e like me ke Code. E hoʻomaka ka moʻolelo e pili ana i ka hana hou ʻana iā Ansible i hoʻokahi makahiki a ʻaʻole hele pupule.
Ka Hanau o ka Hooilina
Lā #1: ʻO ka maʻi Zero
I kekahi manawa he papahana kūlana. Loaʻa iā ia kahi hui hoʻomohala Dev a me nā ʻenekini Ops. Ke hoʻoponopono nei lākou i ka pilikia like: pehea e kau ai i nā kikowaena a holo i kahi noi. ʻO ka pilikia, ua hoʻoponopono kēlā me kēia hui i kēia pilikia ma kona ala ponoʻī. Ma ka papahana, ua hoʻoholo ʻia e hoʻohana iā Ansible e hoʻohui i ka ʻike ma waena o nā hui Dev a me Ops.
Lā #89: Ka hānau ʻana o ka hoʻoilina
Me ka ʻike ʻole iā lākou iho, makemake lākou e hana i ka mea maikaʻi loa, akā ua lilo ia i hoʻoilina. Pehea e hana ai kēia?
He hana koʻikoʻi kā mākou ma ʻaneʻi, e hana mākou i kahi hack lepo a laila hoʻoponopono.
ʻAʻole pono ʻoe e kākau i nā palapala a maopopo nā mea a pau e hana nei ma aneʻi.
ʻIke wau iā Ansible/Python/Bash/Terraform! E nānā pehea e hiki ai iaʻu ke alo!
ʻO wau kahi Full Stack Overflow Developer a kope i kēia mai stackoverflow, ʻaʻole maopopo iaʻu pehea e hana ai, akā ʻoluʻolu a hoʻonā i ka pilikia.
ʻO ka hopena, hiki iā ʻoe ke loaʻa i kahi ʻano code hiki ʻole ke hoʻomaopopo ʻole ʻia ʻaʻohe palapala, ʻaʻole maopopo i kāna hana, inā pono ia, akā ʻo ka pilikia e pono ʻoe e hoʻomohala, hoʻololi, hoʻohui i nā koʻokoʻo a me nā kākoʻo. , e hoʻonui ana i ke kūlana.
ʻAʻole i hoʻokō hou ʻia ke kumu hoʻohālike IaC i nā koi o nā mea hoʻohana / ʻoihana / hui ʻē aʻe, a ua pau ka manawa e hoʻololi ai i ka ʻoihana. I kēia manawa, hiki mai ka ʻike ʻo ia ka manawa e hana ai.
IaC refactoring
Lā #139: Pono ʻoe e hoʻoponopono hou?
Ma mua o kou holo wikiwiki ʻana i ka refactor, pono ʻoe e pane i kekahi mau nīnau koʻikoʻi:
No ke aha ʻoe e pono ai i kēia mau mea a pau?
He manawa kou?
Ua lawa anei ka ike?
Inā ʻaʻole ʻoe maopopo i ka pane ʻana i nā nīnau, a laila e pau ka refactoring ma mua o ka hoʻomaka ʻana, a i ʻole e ʻoi aku ka hewa. No ka mea loaʻa ka ʻike ( ʻO kaʻu mea i aʻo ai mai ka hoʻāʻo ʻana i nā laina 200 o ka code infrastructure), a laila loaʻa i ka papahana kahi noi no ke kōkua e hoʻoponopono i nā kuleana a uhi iā lākou me nā hoʻokolohua.
Lā #149: Ke hoʻomākaukau nei i ka hana hou
ʻO ka mea mua e hoʻomākaukau. E hoʻoholo i kā mākou e hana ai. No ka hana ʻana i kēia, kamaʻilio mākou, ʻimi i nā wahi pilikia a noʻonoʻo i nā ala e hoʻoponopono ai. Hoʻopaʻa mākou i nā manaʻo hopena i kekahi ʻano, no ka laʻana he ʻatikala i ka hui ʻana, a i ka wā e kū ai ka nīnau "he aha ka mea maikaʻi?" aiʻole "ʻo wai ka pololei?" ʻAʻole mākou i nalowale i ko mākou ala. I ko mākou hihia, pili mākou i ka manaʻo e mahele a e hooponopono: hoʻokaʻawale mākou i ka ʻoihana i nā ʻāpana liʻiliʻi / pōhaku. Hāʻawi kēia ala iā ʻoe e lawe i kahi ʻāpana kaʻawale, hoʻomaopopo i kāna hana, uhi iā ia me nā hoʻāʻo a hoʻololi iā ia me ka makaʻu ʻole i ka haki ʻana i kekahi mea.
ʻIke ʻia ʻo ka hoʻāʻo ʻana i ka ʻōnaehana i lilo i pōhaku kihi a eia ke kūpono e haʻi i ka pyramid hoʻāʻo ʻoihana. ʻO ka manaʻo like i ka hoʻomohala ʻana, akā no ka ʻoihana: ke neʻe nei mākou mai nā hoʻokolohua wikiwiki wikiwiki e nānā i nā mea maʻalahi, e like me ka indentation, a i nā hoʻokolohua piha piha e hoʻokau i ka ʻōnaehana holoʻokoʻa.
Nā hoʻāʻo hoʻāʻo ansible
Ma mua o ko mākou hele ʻana e wehewehe pehea mākou i uhi ai i nā hoʻokolohua Ansible ma ka papahana, e wehewehe wau i nā hoʻāʻo a me nā ala i loaʻa iaʻu ka manawa e hoʻohana ai ma mua i mea e hoʻomaopopo ai i ka pōʻaiapili o nā hoʻoholo i hana ʻia.
Lā helu -997: Hāʻawi SDS
ʻO ka manawa mua aʻu i hoʻāʻo ai iā Ansible ma kahi papahana e hoʻomohala i ka SDS (Software Defined Storage). Aia kekahi ʻatikala ʻokoʻa ma kēia kumuhana Pehea e uhaki ai i nā paikikala ma luna o nā koʻokoʻo i ka wā e hoʻāʻo ai i kāu mahele, akā i ka pōkole, ua hoʻopau mākou i kahi pyramid hoʻāʻo hoʻohuli a me ka hoʻāʻo ʻana ua hoʻohana mākou i 60-90 mau minuke ma ka hana hoʻokahi, ʻo ia ka manawa lōʻihi. ʻO ke kumu nā hoʻokolohua e2e, ʻo ia hoʻi. ua kau mākou i kahi hoʻonohonoho piha a laila hoʻāʻo iā ia. ʻO ka mea ʻoi aku ka ʻoi aku o ka hōʻeha ʻana, ʻo ia ka hana ʻana o kāna kaʻa ponoʻī. Akā pono wau e ʻae, ua hana kēia hoʻonā a ʻae ʻia no ka hoʻokuʻu paʻa.
Lā # -701: Ansible a ho'āʻo lumi kuke
ʻO ka hoʻomohala ʻana i ka manaʻo hoʻāʻo Ansible ʻo ia ka hoʻohana ʻana i nā mea hana i hana ʻia, ʻo ia hoʻi ka kīhini hoʻāʻo / kīhini-ci a me ka inspec. Ua hoʻoholo ʻia ke koho e ka ʻike o Ruby (no nā kikoʻī hou aku, e ʻike i ka ʻatikala ma Habré: Manaʻo paha nā mea polokalamu YML i ka hoʻāʻo ʻana iā Ansible?) ʻoi aku ka wikiwiki, ma kahi o 40 mau minuke no 10 mau hana. Ua hana mākou i kahi pūʻulu o nā mīkini virtual a holo i nā hoʻokolohua i loko.
Ma keʻano laulā, ua hana ka hopena, akā aia kekahi sediment ma muli o ka heterogeneity. I ka hoʻonui ʻia ʻana o ka nui o ka poʻe i hoʻāʻo ʻia i 13 mau kuleana kumu a me 2 mau hana meta e hui pū ana i nā kuleana liʻiliʻi, a laila hoʻomaka koke nā hoʻāʻo e holo no 70 mau minuke, ʻo ia ka aneane 2 mau manawa lōʻihi. He mea paʻakikī ke kamaʻilio e pili ana i nā hana XP (extreme programming) no ka mea... ʻaʻohe mea makemake e kali i 70 mau minuke. ʻO kēia ke kumu o ka hoʻololi ʻana i ke ʻano
Lā # -601: Ansible a me ka mole
ʻO ka manaʻo, ua like kēia me ka testkitchen, ua neʻe wale mākou i ka hoʻāʻo ʻana i ka docker a hoʻololi i ka waihona. ʻO ka hopena, ua hoʻemi ʻia ka manawa i 20-25 mau minuke no 7 mau hana.
Ma ka hoʻonui ʻana i ka helu o nā hana i hoʻāʻo ʻia i 17 a me ka hoʻopaʻa ʻana i nā kuleana 45, ua holo mākou i kēia i 28 mau minuke ma 2 mau kauā jenkins.
Lā #167: Hoʻohui i nā hoʻokolohua Ansible i ka papahana
ʻO ka mea nui, ʻaʻole hiki ke hana i ka hana refactoring me ka wikiwiki. Pono e ana ʻia ka hana i hiki iā ʻoe ke wāwahi i nā ʻāpana liʻiliʻi a ʻai i ka ʻāpana elepani me kahi ʻāpana. Pono e hoʻomaopopo inā e neʻe ana ʻoe ma ke ala pololei, pehea ka lōʻihi e hele ai.
Ma keʻano laulā, ʻaʻole ia he mea nui pehea e hana ʻia ai, hiki iā ʻoe ke kākau ma kahi ʻāpana pepa, hiki iā ʻoe ke kau i nā mea hoʻopaʻa ma ka lumi lumi, hiki iā ʻoe ke hana i nā hana ma Jira, a i ʻole hiki iā ʻoe ke wehe i nā Google Docs a kākau i ke kūlana o kēia manawa. ma laila. Ke ulu nei nā wāwae mai ka ʻoiaʻiʻo ʻaʻole wikiwiki ka hana, e lōʻihi a paʻakikī. ʻAʻole paha makemake kekahi e hoʻopau ʻoe i nā manaʻo, luhi, a lilo i mea kaumaha i ka wā refactoring.
He mea maʻalahi ka refactoring:
Mea ʻai.
Moe.
Pāʻālua
hoao IaC.
hana hou
a ke hana hou nei mākou a hiki i ka pahuhopu i manaʻo ʻia.
ʻAʻole hiki ke hoʻomaka koke i ka hoʻāʻo ʻana i nā mea āpau, no laila ʻo kā mākou hana mua e hoʻomaka me ka linting a nānā i ka syntax.
Lā #181: Kumu kūkulu ʻōmaʻomaʻo
He wahi liʻiliʻi liʻiliʻi ʻo Linting i ka Green Build Master. ʻAʻole kēia e uhaʻi i kekahi mea, akā e ʻae iā ʻoe e hoʻopau i nā kaʻina hana a hana i nā kūkulu ʻōmaʻomaʻo ma Jenkins. ʻO ka manaʻo e hoʻomohala i nā maʻamau i waena o ka hui:
He ino na hoao ulaula.
Ua hele mai au e hoʻoponopono i kekahi mea a ma ka manawa like e hoʻomaikaʻi iki i ke code ma mua o kou.
Lā #193: Mai ka linting a hiki i nā hoʻokolohua ʻāpana
Ke kūkulu nei i ke kaʻina hana o ka hoʻokomo ʻana i ke code i loko o ka haku, hiki iā ʻoe ke hoʻomaka i ke kaʻina hana o ka hoʻomaikaʻi ʻana i kēlā me kēia ʻanuʻu - hoʻololi i ka linting me nā hana hoʻomaka, hiki iā ʻoe ke hana me ka ʻole o ka idempotency. Pono ʻoe e hoʻomaopopo pehea e hoʻohana ai i nā kuleana a pehea e hana ai lākou.
Lā #211: Mai ka ʻāpana a i nā hoʻokolohua hoʻohui
Ke uhi ʻia ka hapa nui o nā hana me nā hoʻāʻo ʻāpana a hoʻopaʻa ʻia nā mea a pau, hiki iā ʻoe ke neʻe i ka hoʻohui ʻana i nā hoʻokolohua hoʻohui. ʻO kēlā mau mea. ʻaʻole hoʻāʻo i kahi brick hoʻokahi i loko o ka ʻōnaehana, akā he hui pū ʻana o lākou, no ka laʻana, kahi hoʻonohonoho hoʻonohonoho piha.
Me ka hoʻohana ʻana i nā jenkins, ua hana mākou i nā pae he nui i hoʻopaʻa ʻia i nā kuleana/puke pāʻani i ka like, a laila hoʻāʻo ʻia i loko o nā ipu, a hope hoʻi nā hoʻāʻo hoʻohui.
Jenkins + Docker + Ansible = Nā hoʻāʻo
E nānā i ka repo a hana i nā pae kūkulu.
E holo like i nā ʻanuʻu lint playbook.
E holo like i nā pae lint role.
E holo like i nā ʻanuʻu hana syntax.
E holo like i nā pae hoʻokolohua.
Hana lint.
E nānā i ka hilinaʻi ma nā kuleana ʻē aʻe.
E nānā i ka syntax.
E hana i ka laʻana docker
Holo i ka mole/default/playbook.yml.
Nānā idempotency.
Holo i nā hoʻokolohua hoʻohui
a pau
Lā #271: Kaʻa Kaʻa
I ka wā mua, ua hana ʻia ka refactoring e kahi hui liʻiliʻi o ʻelua a ʻekolu mau kānaka. Ua nānā lākou i ke code ma ka haku. I ka wā lōʻihi, ua hoʻomohala ka hui i ka ʻike e pili ana i ke kākau ʻana i ke code a me ka loiloi code i kōkua i ka hoʻolaha ʻana i ka ʻike e pili ana i ka ʻōnaehana a me ke ʻano o ka hana. ʻO ka mea koʻikoʻi ma ʻaneʻi ʻo ia ka mea i koho ʻia ka poʻe loiloi, e like me ka papa kuhikuhi, ʻo ia hoʻi. me kekahi degere o ka manaʻo e piʻi ʻoe i kahi ʻāpana hou o ka ʻōnaehana.
A pono e oluolu maanei. He mea maʻalahi ke hana i ka loiloi, e ʻike i loko o ka hoʻolālā o ka hana i hana ʻia, a me ka mōʻaukala o nā kūkākūkā. Ua hoʻohui mākou i nā jenkins + bitbucket + jira.
Akā ʻo ia, ʻaʻole he panacea ka loiloi; i kekahi mea, ua komo mākou i loko o ka master code, i hana ai mākou i nā hoʻokolohua flop:
I ka manawa lōʻihi, ua nui nā hoʻokolohua, ua holo mālie nā kūkulu, a hiki i hoʻokahi hola i ka hihia ʻino loa. Ma kekahi o nā retros aia kekahi ʻōlelo e like me "maikaʻi aia nā hoʻokolohua, akā lohi." ʻO ka hopena, ua haʻalele mākou i nā hoʻokolohua hoʻohui i nā mīkini virtual a hoʻololi iā lākou no Docker e wikiwiki. Ua hoʻololi pū mākou i ka testinfra me ka mea hōʻoia ansible e hōʻemi i ka nui o nā mea hana i hoʻohana ʻia.
ʻO ka ʻōlelo koʻikoʻi, aia kekahi mau ana:
E hoʻololi i ka docker.
Wehe i ka hoʻāʻo kuleana, i hoʻopaʻa ʻia ma muli o nā hilinaʻi.
E hoʻonui i ka nui o nā kauā.
Ke kauoha holo hoao.
Ka hiki ke lint ALL kūloko me hoʻokahi kauoha.
ʻO ka hopena, ua hui pū ʻia ka Pipeline ma jenkins
E hana i nā pae kūkulu.
Hoʻopili i nā mea a pau i ka like.
E holo like i nā pae hoʻokolohua.
E hoʻopau.
Nā haʻawina i aʻoʻia
Hōʻalo i nā mea hoʻololi honua
Hoʻohana ʻo Ansible i nā ʻano hoʻololi honua, aia kahi ʻāpana hana i ke ʻano nā_role_vars, aka, aole keia he panacea.
E hāʻawi wau i kumu hoʻohālike. E loaʻa iā mākou role_a и role_b
ʻO ka mea ʻakaʻaka, ʻo ka hopena o nā puke pāʻani e pili ana i nā mea i ʻike ʻole ʻia, e like me ke ʻano o ka papa inoa o nā kuleana. ʻO ka mea pōʻino, ʻo kēia ke ʻano o Ansible a ʻo ka mea maikaʻi loa e hiki ke hana ʻia ʻo ia ka hoʻohana ʻana i kekahi ʻano ʻaelike, no ka laʻana, i loko o kahi kuleana, e hoʻohana wale i ka mea hoʻololi i wehewehe ʻia i kēia kuleana.
MAIKAʻI LOA: Ma nā kuleana no nā ʻano like ʻole, e hoʻohana i nā mea hoʻololi i kau mua ʻia me ka inoa kuleana; ʻo kēia, ma ka nānā ʻana i ka waihona, e maʻalahi ka hoʻomaopopo ʻana i ka mea e hana nei.
hewa: E hoʻohana i ka hoʻololi maʻamau i nā puka lou item, inā hoʻokomo ʻia kēia haʻawina/puke pāʻani ma kekahi wahi, hiki i kēia ke alakaʻi i ka hana i manaʻo ʻole ʻia
Ua ʻae mākou e hoʻohana i nā prefix hoʻololi; ʻaʻole ia he mea nui ke nānā aku ua wehewehe ʻia lākou e like me kā mākou i manaʻo ai a, no ka laʻana, ʻaʻole i hoʻopau ʻia e kahi waiwai ʻole.
MAIKAʻI LOA: E nānā i nā mea hoʻololi.
- name: "Verify that required string variables are defined"
assert:
that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None
fail_msg: "{{ ahs_var }} needs to be set for the role to work "
success_msg: "Required variables {{ ahs_var }} is defined"
loop_control:
loop_var: ahs_var
with_items:
- ahs_item1
- ahs_item2
- ahs_item3
E hōʻalo i nā puke wehewehe ʻōlelo hashes, e hoʻohana i ke ʻano pālahalaha
Inā manaʻo kekahi kuleana i ka hash/dictionary ma kekahi o kāna mau ʻāpana, a laila inā makemake mākou e hoʻololi i kekahi o nā ʻāpana keiki, pono mākou e hoʻopau i ka hash / puke wehewehe'ōlelo holoʻokoʻa, kahi e hoʻonui ai i ka paʻakikī o ka hoʻonohonoho.
hewa: E hoʻohana i ka hash/papaʻōlelo.
---
user:
name: admin
group: admin
MAIKAʻI LOA: E hoʻohana i kahi hoʻololi palahalaha.
E hana i nā puke pāʻani idempotent a me nā kuleana
Pono pono nā kuleana a me nā puke pāʻani, no ka mea e ho'ēmi ana i ka neʻe ʻana o ka hoʻonohonoho ʻana a me ka makaʻu i ka haki ʻana i kekahi mea. Akā inā ʻoe e hoʻohana i ka mole, a laila ʻo ia ke ʻano maʻamau.
E hōʻalo i ka hoʻohana ʻana i nā modula shell shell
ʻO ka hoʻohana ʻana i kahi module shell e hopena i kahi paradigm wehewehe pono, ma kahi o ka declarative, ʻo ia ke kumu o Ansible.
E ho'āʻo i kāu mau kuleana ma o ka mole
He mea maʻalahi loa ka Molecule, e nānā kākou i kekahi mau hiʻohiʻona.
Molecule He mau manawa
В molecule.yml ma ka pauku platforms hiki iā ʻoe ke wehewehe i nā pūʻali he nui āu e kau ai.
Ma ka mole hiki ke hoʻohana i ka ansible e nānā i ka hoʻonohonoho pololei ʻana o ka hihia, ʻoi aku, ʻo ia ka mea paʻamau mai ka hoʻokuʻu ʻana 3. ʻAʻole hiki ke maʻalahi e like me testinfra/inspec, akā hiki iā mākou ke nānā i nā mea o ka faila i kūpono i kā mākou mau manaʻo:
A i ʻole e kau i ka lawelawe, e kali a loaʻa iā ia a hana i kahi hoʻāʻo uahi:
---
- name: Verify
hosts: solr
tasks:
- command: /blah/solr/bin/solr start -s /solr_home -p 8983 -force
- uri:
url: http://127.0.0.1:8983/solr
method: GET
status_code: 200
register: uri_result
until: uri_result is not failed
retries: 12
delay: 10
- name: Post documents to solr
command: /blah/solr/bin/post -c master /exampledocs/books.csv
E hoʻokomo i nā loina paʻakikī i loko o nā modules & plugins
Kākoʻo ʻo Ansible i kahi ala hoʻolaha, no laila ke hana ʻoe i ka lālā code, ka hoʻololi ʻana i ka ʻikepili, nā modules shell, lilo ke code i mea paʻakikī ke heluhelu. No ka hoʻopaʻapaʻa ʻana i kēia a mālama i ka maʻalahi o ka hoʻomaopopo ʻana, ʻaʻole ia he mea nui ke hakakā ʻana i kēia paʻakikī ma ka hana ʻana i kāu mau modula ponoʻī.
E hōʻuluʻulu manaʻo a me nā mea hoʻopunipuni
Hōʻalo i nā mea hoʻololi honua.
Nā mea hoʻololi kūlana prefix.
E hoʻohana i ka hoʻololi mana loop.
E nānā i nā mea hoʻololi hoʻokomo.
E hōʻalo i nā puke wehewehe ʻōlelo hashes, e hoʻohana i ke ʻano pālahalaha.
E hana i nā puke pāʻani idempotent a me nā kuleana.
E hōʻalo i ka hoʻohana ʻana i nā modula shell shell.
E ho'āʻo i kāu mau kuleana ma o ka mole.
E hoʻokomo i nā loina paʻakikī i loko o nā modules & plugins.
hopena
ʻAʻole hiki iā ʻoe ke hele wale a hoʻoponopono hou i ka ʻōnaehana ma kahi papahana, ʻoiai inā he IaC kāu. He hana lōʻihi kēia e pono ai ke ahonui, ka manawa a me ka ʻike.
UPD1 2020.05.01 20:30 - No ka hana mua ʻana i nā puke pāʻani hiki iā ʻoe ke hoʻohana callback_whitelist = profile_tasks e hoʻomaopopo i ka hana maoli no ka manawa lōʻihi. A laila hele mākou ma waena Ansible acceleration classics. Hiki iā ʻoe ke hoʻāʻo mitogen UPD2 2020.05.03 16:34 - English mana