ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management

Ke kokoke mai nei i ka makahiki hou. Ua hoʻouna mua nā keiki a puni ka ʻāina i nā leka iā Santa Claus a i hāʻawi i nā makana no lākou iho, a ʻo kā lākou mea hoʻokō nui, kekahi o nā mea kūʻai nui, ke mākaukau nei no ka apotheosis o nā kūʻai. I Kekemapa, piʻi pinepine ka ukana ma kāna kikowaena data. No laila, ua hoʻoholo ka ʻoihana e hoʻololi i ka kikowaena data a hoʻokomo i ka hana he mau kaukani mau kikowaena hou ma mua o nā mea hana i hiki i ka hopena o kona ola lawelawe. Hoʻopau kēia i ka moʻolelo e pili ana i ke kua o nā hau hau, a hoʻomaka ka thriller.

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Ua hōʻea nā mea hana i ke kahua he mau mahina ma mua o ka piko o ke kūʻai. ʻO ka lawelawe hana, ʻoiaʻiʻo, ʻike pehea a me ka mea e hoʻonohonoho ai i nā kikowaena i mea e lawe ai iā lākou i loko o ka ʻenehana hana. Akā pono mākou e hoʻokaʻawale i kēia a hoʻopau i ke kumu kanaka. Eia hou, ua hoʻololiʻia nā kikowaena ma mua o ka neʻeʻana o kahi hoʻonohonoho o nā pūnaewele SAP i koʻikoʻi no ka hui.

Ua hoʻopaʻa paʻa ʻia ka hoʻonohonoho ʻana i nā kikowaena hou i kahi manawa palena. A ʻo ka neʻe ʻana, ʻo ia ka mea e hoʻoweliweli i ka hoʻouna ʻana i nā makana he piliona a me ka neʻe ʻana o nā ʻōnaehana. ʻAʻole hiki i kahi hui ʻo Father Frost a me Santa Claus ke hoʻololi i ka lā - hiki iā ʻoe ke hoʻololi i ka ʻōnaehana SAP no ka hoʻokele hale kūʻai hoʻokahi wale nō i ka makahiki. Mai ka lā 31 o Dekemaba a hiki i ka lā 1 o Ianuali, hoʻopau nā hale kūʻai nui o ka mea kūʻai aku, i ka nui o 20 mau kahua pôpeku, i kā lākou hana no 15 mau hola. A ʻo kēia wale nō ka manawa no ka neʻe ʻana o ka ʻōnaehana. ʻAʻohe wahi no ka hewa i ka hoʻokomo ʻana i nā kikowaena.

E hoʻomaopopo iaʻu: hōʻike kaʻu moʻolelo i nā mea hana a me ke kaʻina hana hoʻonohonoho hoʻonohonoho a kā mākou hui e hoʻohana ai.

ʻO ka paʻakikī hoʻonohonoho hoʻonohonoho he mau pae. ʻO ka mea nui ka ʻōnaehana CMS. I ka hana ʻoihana, ʻo ka nele o kekahi o nā pae e alakaʻi i nā hana mana maikaʻi ʻole.

Hoʻoponopono hoʻonohonoho OS

ʻO ka pae mua he ʻōnaehana no ka hoʻokele ʻana i nā ʻōnaehana hana ma nā kikowaena kino a me nā kikowaena virtual. Hoʻokumu ia i nā hoʻonohonoho OS kumu, hoʻopau i ke kumu kanaka.

Ke hoʻohana nei i kēia ʻōnaehana, ua loaʻa iā mākou nā manawa kikowaena maʻamau me OS kūpono no ka automation hou aʻe. I ka wā o ka "ninini" ua loaʻa iā lākou ka palena liʻiliʻi o nā mea hoʻohana kūloko a me nā kī SSH lehulehu, a me kahi hoʻonohonoho OS maʻamau. Hiki iā mākou ke hōʻoiaʻiʻo e hoʻokele i nā kikowaena ma o ka CMS a maopopo ʻaʻole he mea kupanaha "i lalo" ma ka pae OS.

ʻO ka hana "kiʻekiʻe" no ka ʻōnaehana hoʻonohonoho hoʻonohonoho e hoʻonohonoho aunoa i nā kikowaena mai ka pae BIOS / Firmware i ka OS. ʻO ka nui maʻaneʻi e pili ana i nā mea hana a me nā hana hoʻonohonoho. No nā lako heterogeneous, hiki iā ʻoe ke noʻonoʻo API REDFISH. Inā mai hoʻokahi mea kūʻai aku nā lako a pau, a laila ʻoi aku ka maʻalahi o ka hoʻohana ʻana i nā mea hana hoʻokele mākaukau (no ka laʻana, HP ILO Amplifier, DELL OpenManage, etc.).

No ka hoʻouka ʻana i ka OS ma nā kikowaena kino, ua hoʻohana mākou i ka Cobbler kaulana, kahi e wehewehe ai i kahi hoʻonohonoho o nā profile hoʻonohonoho i ʻae ʻia me ka lawelawe hana. I ka hoʻohui ʻana i kahi kikowaena hou i ka ʻōnaehana, ua hoʻopaʻa ka ʻenekinia i ka helu MAC o ke kikowaena i ka ʻaoʻao i koi ʻia ma Cobbler. I ka wā e hoʻomaka ai ma luna o ka pūnaewele no ka manawa mua, ua loaʻa i ke kikowaena kahi leka uila a me kahi OS hou. A laila ua hoʻololi ʻia i ka ʻōlelo VLAN/IP i hoʻopaʻa ʻia a hoʻomau i ka hana ma laila. ʻAe, ʻo ka hoʻololi ʻana i ka VLAN e lawe i ka manawa a koi i ka hoʻonohonoho ʻana, akā hāʻawi ia i ka pale hou aku i ka hoʻokomo ʻana o ka server i kahi ʻano hana.

Ua hana mākou i nā kikowaena virtual e pili ana i nā mamana i hoʻomākaukau ʻia me ka hoʻohana ʻana iā HashiСorp Packer. Ua like ke kumu: e pale i nā hewa kanaka i ka wā e hoʻokomo ai i ka OS. Akā, ʻaʻole like me nā kikowaena kino, hoʻopau ʻo Packer i ka pono no ka PXE, ka hoʻouka ʻana i ka pūnaewele, a me nā loli VLAN. Ua maʻalahi a maʻalahi kēia i ka hana ʻana i nā kikowaena virtual.

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 1. Ka hoʻonohonoho ʻana i nā ʻōnaehana hana.

Ka mālama ʻana i nā mea huna

Loaʻa i kēlā me kēia ʻōnaehana hoʻonohonoho hoʻonohonoho i nā ʻikepili i hūnā ʻia mai nā mea hoʻohana maʻamau, akā pono e hoʻomākaukau i nā ʻōnaehana. He mau huaʻōlelo kēia no nā mea hoʻohana kūloko a me nā moʻokāki lawelawe, nā kī palapala hōʻoia, nā ʻano API like ʻole, a pēlā aku.

Inā ʻaʻole ʻoe e hoʻoholo mai ka hoʻomaka ʻana i hea a pehea e mālama ai i kēia mau mea huna, a laila, e pili ana i ka paʻakikī o nā koi palekana ʻike, ʻo nā ʻano o ka mālama ʻana e like paha:

  • pololei ma ke code control configuration a i ʻole i nā faila i loko o ka waihona;
  • i nā mea hana hoʻokele hoʻonohonoho kūikawā (no ka laʻana, Ansible Vault);
  • i nā ʻōnaehana CI/CD (Jenkins/TeamCity/GitLab/etc.) a i ʻole i nā ʻōnaehana hoʻonohonoho hoʻonohonoho (Ansible Tower/Ansible AWX);
  • Hiki ke hoʻoili ʻia nā mea huna "manual". No ka laʻana, waiho ʻia lākou ma kahi wahi i kuhikuhi ʻia, a laila hoʻohana ʻia e nā ʻōnaehana hoʻonohonoho hoʻonohonoho;
  • nā hui like ʻole o nā mea i luna.

Loaʻa i kēlā me kēia ala kona mau hemahema. ʻO ka mea nui ka nele o nā kulekele no ke komo ʻana i nā mea huna: hiki ʻole a paʻakikī paha ke hoʻoholo i ka mea hiki ke hoʻohana i kekahi mau mea huna. ʻO kahi hemahema ʻē aʻe ʻo ia ka nele o ka loaʻa ʻana o ka loiloi a me ke ola holoʻokoʻa. Pehea e hoʻololi koke ai, no ka laʻana, i kahi kī ākea i kākau ʻia i loko o ke code a i kekahi mau ʻōnaehana pili?

Ua hoʻohana mākou i ka waihona huna huna HashiCorp Vault. Ua ʻae kēia iā mākou:

  • mālama i nā mea huna. Hoʻopili ʻia lākou, a inā loaʻa i kekahi ke komo i ka waihona Vault (no ka laʻana, ma ka hoʻihoʻi ʻana iā ia mai kahi waihona), ʻaʻole hiki iā lākou ke heluhelu i nā mea huna i mālama ʻia ma laila;
  • hoʻonohonoho i nā kulekele no ke komo ʻana i nā mea huna. ʻO nā mea huna wale nō "i hāʻawi ʻia" iā lākou i loaʻa i nā mea hoʻohana a me nā noi;
  • hoʻokolo i nā mea huna. Hoʻopaʻa ʻia nā hana me nā mea huna i loko o ka log audit Vault;
  • hoʻonohonoho i kahi "pōkole ola" piha o ka hana me nā mea huna. Hiki iā lākou ke hana, hoʻopau, hoʻonohonoho i ka lā pau, etc.
  • maʻalahi e hoʻohui me nā ʻōnaehana ʻē aʻe e pono ai ke komo i nā mea huna;
  • a hoʻohana pū i ka hoʻopunipuni hope-a-hope, nā huaʻōlelo hoʻokahi manawa no ka OS a me ka waihona, nā palapala hōʻoia o nā kikowaena ʻae ʻia, etc.

I kēia manawa e neʻe kākou i ke kikowaena hōʻoia a me ka ʻōnaehana ʻae. Ua hiki ke hana me ka ʻole o ia mea, akā, ʻo ka lawelawe ʻana i nā mea hoʻohana i nā ʻōnaehana pili he nui ʻole. Ua hoʻonohonoho mākou i ka hōʻoia a me ka ʻae ʻana ma o ka lawelawe LDAP. A i ʻole, pono ʻo Vault e hoʻopuka mau a mālama i nā hōʻailona hōʻoia no nā mea hoʻohana. A ʻo ka holoi ʻana a me ka hoʻohui ʻana i nā mea hoʻohana e lilo i ʻimi "ua hana a holoi wau i kēia moʻokāki mea hoʻohana ma nā wahi āpau?"

Hoʻohui mākou i kahi pae ʻē aʻe i kā mākou ʻōnaehana: hoʻokele huna a me ka hōʻoia / ʻae kikowaena:

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 2. Hooponopono huna.

Hoʻoponopono hoʻonohonoho

Loaʻa mākou i ke kumu - ka ʻōnaehana CMS. I kā mākou hihia, he hui kēia o Ansible a me Red Hat Ansible AWX.

Ma kahi o Ansible, Chef, Puppet, SaltStack hiki ke hoʻohana. Ua koho mākou iā Ansible ma muli o kekahi mau pae hoʻohālike.

  • ʻO ka mea mua, he versatility. ʻO kahi hoʻonohonoho o nā modula i mākaukau no ka mana he mea kupanaha. A inā ʻaʻole lawa ʻoe, hiki iā ʻoe ke ʻimi ma GitHub a me Galaxy.
  • ʻO ka lua, ʻaʻohe pono e hoʻokomo a kākoʻo i nā mea hana ma nā lako i hoʻokele ʻia, hōʻoia ʻaʻole lākou e hoʻopilikia i ka ukana, a hōʻoia i ka nele o nā "bookmark".
  • ʻO ke kolu, loaʻa iā Ansible kahi pale haʻahaʻa i ke komo ʻana. E kākau maoli kekahi ʻenekinia mākaukau i kahi puke pāʻani hana ma ka lā mua o ka hana ʻana me ka huahana.

Akā ʻo Ansible wale nō i loko o kahi ʻenehana hana ʻaʻole lawa iā mākou. A i ʻole, nui nā pilikia e ala mai me ka hoʻopaʻa ʻana i ke komo ʻana a me ka loiloi i nā hana a nā luna hoʻoponopono. Pehea e kaohi ai i ke komo? Ma hope o nā mea a pau, pono i kēlā me kēia keʻena ke hoʻokele (heluhelu: holo i ka puke pāʻani Ansible) "kona pono'ī" o nā kikowaena. Pehea e ʻae ai i kekahi mau limahana e holo i nā puke pāʻani Ansible? A i ʻole pehea e ʻimi ai i ka mea nāna i hoʻokumu i ka puke pāʻani me ka ʻole o ka hoʻonohonoho ʻana i ka ʻike kūloko ma nā kikowaena a me nā mea hana e holo ana iā Ansible?

Hoʻoholo ʻia ka ʻāpana liona o ia mau pilikia e Red Hat hale kiaʻi ʻo Ansible, a i ʻole kāna papahana open-source upstream Ansible AWX. ʻO ia ke kumu i makemake ai mākou no ka mea kūʻai.

A hoʻokahi pā hou aku i ke kiʻi o kā mākou ʻōnaehana CMS. Pono e mālama ʻia ka puke pāʻani ansible i loko o nā ʻōnaehana hoʻokele code repository. Loaʻa iā mākou GitLab CE.

No laila, mālama ʻia nā hoʻonohonoho ponoʻī e ka hui pū ʻana o Ansible/Ansible AWX/GitLab (e nānā i ke kiʻi 3). ʻOiaʻiʻo, ua hoʻohui ʻia ʻo AWX/GitLab me kahi ʻōnaehana hōʻoia hoʻokahi, a ua hui pū ʻia ka puke pāʻani Ansible me HashiCorp Vault. Hoʻokomo ka hoʻonohonoho ʻana i ka ʻenehana hana wale nō ma o Ansible AWX, kahi i kuhikuhi ʻia ai nā "rula o ka pāʻani": ʻo wai ka mea hiki ke hoʻonohonoho i ka mea, kahi e loaʻa ai ke code hoʻonohonoho hoʻonohonoho no ka CMS, etc.

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 3. Hoʻoponopono hoʻonohonoho.

Manao hoao

Hōʻike ʻia kā mākou hoʻonohonoho ma ke ʻano code. No laila, koi ʻia mākou e pāʻani i nā lula like me nā mea hoʻomohala polokalamu. Pono mākou e hoʻonohonoho i nā kaʻina o ka hoʻomohala ʻana, ka hoʻāʻo mau ʻana, ka hāʻawi ʻana a me ka hoʻohana ʻana i ka code hoʻonohonoho i nā kikowaena hana.

Inā ʻaʻole e hana koke ʻia kēia, a laila pau nā kuleana i kākau ʻia no ka hoʻonohonoho ʻana e pau ke kākoʻo ʻia a hoʻololi ʻia, a i ʻole e pau ka hoʻomaka ʻana i ka hana. Ua ʻike ʻia ka lāʻau lapaʻau no kēia ʻeha, a ua hōʻoia ʻo ia iā ia iho ma kēia papahana.

  • uhi ʻia kēlā me kēia kuleana e nā hoʻokolohua ʻāpana;
  • holo 'akomi 'ia nā ho'ā'o i ka wā e ho'ololi 'ia ai ke code e ho'okele ana i nā ho'onohonoho;
  • Hoʻokuʻu ʻia nā hoʻololi i ke code hoʻonohonoho hoʻonohonoho i loko o ke kaiapuni hana wale nō ma hope o ka holo pono ʻana i nā hoʻokolohua āpau a me ka loiloi code.

Ua ʻoi aku ka mālie o ka hoʻomohala ʻana i nā code a me ka hoʻonohonoho hoʻonohonoho. No ka hoʻonohonoho ʻana i ka hoʻāʻo hoʻomau, ua hoʻohana mākou i ka mea hana GitLab CI/CD, a lawe Ansible Molecule.

I kēlā me kēia manawa he hoʻololi i ka code hoʻonohonoho hoʻonohonoho, kāhea ʻo GitLab CI/CD iā Molecule:

  • nānā ia i ke code syntax,
  • hoʻokiʻekiʻe i ka pahu Docker,
  • pili i ke code i hoʻololi ʻia i ka ipu i hana ʻia,
  • nānā i ka hana no ka idempotency a holo i nā ho'āʻo no kēia code (ʻo ka granularity ma ʻaneʻi ma ka ansible role level, nānā Fig. 4).

Hāʻawi mākou i nā hoʻonohonoho i ke kaiapuni hana me ka hoʻohana ʻana iā Ansible AWX. Ua hoʻohana nā ʻenekinia hana i nā hoʻololi hoʻonohonoho ma o nā mamana i koho mua ʻia. Ua "noi" kūʻokoʻa ʻo AWX i ka mana hou o ke code mai ka lālā kumu GitLab i kēlā me kēia manawa i hoʻohana ʻia. ʻO kēia ala mākou i kāpae ai i ka hoʻohana ʻana i ka code i hoʻāʻo ʻole ʻia a i ʻole ka wā kahiko i loko o ke kaiapuni hana. Ma keʻano maʻamau, ua komo ke code i ka lālā kumu ma hope o ka hoʻāʻo, loiloi a ʻae ʻia.

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 4. ʻO ka hoʻāʻo ʻakomi o nā kuleana ma GitLab CI/CD.

Aia kekahi pilikia e pili ana i ka hana o nā ʻōnaehana hana. Ma ke ola maoli, paʻakikī loa ka hana ʻana i nā hoʻololi hoʻonohonoho ma o ka code CMS wale nō. E kū mai nā kūlana pilikia inā pono e hoʻololi ka ʻenekinia i ka hoʻonohonoho "ma ʻaneʻi a i kēia manawa", me ke kali ʻole no ka hoʻoponopono code, hoʻāʻo, ʻae ʻia, etc.

ʻO ka hopena, ma muli o nā hoʻololi lima, ʻike ʻia nā ʻokoʻa i ka hoʻonohonoho ʻana ma ke ʻano o nā mea hana like (no ka laʻana, hoʻonohonoho ʻokoʻa nā hoʻonohonoho sysctl ma nā nodes cluster HA). A i ʻole ʻokoʻa ka hoʻonohonoho maoli ʻana i nā mea hana mai ka mea i kuhikuhi ʻia ma ke code CMS.

No laila, ma kahi o ka hoʻāʻo mau ʻana, nānā mākou i nā wahi hana no nā ʻokoʻa hoʻonohonoho. Ua koho mākou i ka koho maʻalahi: e holo ana i ka code configuration CMS ma ke ʻano "dry run", ʻo ia hoʻi, me ka ʻole o ka hoʻopili ʻana i nā loli, akā me ka hoʻolaha ʻana i nā ʻokoʻa āpau ma waena o ka hoʻonohonoho i hoʻolālā ʻia a me ka hoʻonohonoho maoli. Hoʻokō mākou i kēia ma ka holo ʻana i nā puke pāʻani Ansible āpau me ke koho "—check" ma nā kikowaena hana. E like me nā manawa a pau, ʻo Ansible AWX ke kuleana no ka hoʻomaka ʻana a me ka mālama ʻana i ka puke pāʻani a hiki i kēia lā (e nānā i ke kiʻi 5):

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 5. Nānā no nā ʻokoʻa hoʻonohonoho ma Ansible AWX.

Ma hope o ka nānā ʻana, hoʻouna ʻo AWX i kahi hōʻike like ʻole i nā luna. Aʻo lākou i ka hoʻonohonoho pilikia a laila hoʻoponopono iā ia ma o nā puke pāʻani i hoʻoponopono ʻia. ʻO kēia keʻano o kā mākou mālamaʻana i ka hoʻonohonohoʻana i ka hana hana a me ka CMS i nā manawa a me ka synchronized. Hoʻopau kēia i nā "mana" maikaʻi ʻole ke hoʻohana ʻia ka code CMS ma nā kikowaena "hana".

He papa hoʻāʻo koʻikoʻi kā mākou i kēia manawa me Ansible AWX/GitLab/Molecule (Figure 6).

ʻO kahi thriller e pili ana i ka hoʻonohonoho ʻana i nā kikowaena me nā hana mana me ka Configuration Management
Laiki. 6. Manao hoao.

Paʻakikī? ʻAʻole wau e hoʻopaʻapaʻa. Akā ua lilo kēlā ʻano paʻakikī o ka hoʻokele hoʻonohonoho i pane piha i nā nīnau he nui e pili ana i ka automation o ka hoʻonohonoho kikowaena. I kēia manawa, loaʻa i nā kikowaena maʻamau o kahi mea kūʻai aku kahi hoʻonohonoho i wehewehe pono ʻia. ʻAʻole e poina ʻo CMS, e like me ka ʻenekinia, e hoʻohui i nā hoʻonohonoho pono, hana i nā mea hoʻohana a hana i nā haneli a i ʻole nā ​​​​haneri o nā hoʻonohonoho pono.

ʻAʻohe "ʻike huna" i nā hoʻonohonoho o nā kikowaena a me nā kaiapuni i kēia lā. Hōʻike ʻia nā hiʻohiʻona pono a pau i ka puke pāʻani. ʻAʻohe mea noʻonoʻo a me nā ʻōlelo kuhikuhi: "E hoʻouka iā ia e like me Oracle maʻamau, akā pono ʻoe e kuhikuhi i ʻelua mau hoʻonohonoho sysctl a hoʻohui i nā mea hoʻohana me ka UID pono. E nīnau i nā kāne e hana nei, ʻike lākou".

ʻO ka hiki ke ʻike i nā ʻokoʻa hoʻonohonoho a hoʻoponopono iā lākou me ka wikiwiki e hāʻawi i ka maluhia o ka noʻonoʻo. Me ka ʻole o ka ʻōnaehana hoʻonohonoho hoʻonohonoho, ʻokoʻa ke ʻano o kēia. Hoʻonui nā pilikia a hiki i kekahi lā "pana" lākou i ka hana. A laila lawe ʻia kahi debriefing, nānā ʻia nā hoʻonohonoho a hoʻoponopono ʻia. A hana hou ka pōʻai

A ʻoiaʻiʻo, ua wikiwiki mākou i ka hoʻomaka ʻana o nā kikowaena i ka hana mai nā lā a i nā hola.

ʻAe, ma ka Pōʻakahi o ka makahiki hou, i ka wā e ʻoliʻoli ana nā keiki i ka wehe ʻana i nā makana a me nā poʻe mākua e hana nei i nā manaʻo i ka wā o ke kani ʻana, ua neʻe kā mākou poʻe ʻenekinia i ka ʻōnaehana SAP i nā kikowaena hou. E ʻōlelo ʻo Santa Claus ʻo nā hana mana maikaʻi loa ka mea i mākaukau maikaʻi.

PS ʻIke pinepine kā mākou hui i ka makemake o nā mea kūʻai aku e hoʻoponopono i nā pilikia hoʻokele hoʻonohonoho e like me ka hiki. ʻO ke kūpono, me he mea lā ma ke kilokilo - me hoʻokahi mea hana. Akā i ke ola, ʻoi aku ka paʻakikī o nā mea āpau (ʻae, ʻaʻole i hāʻawi hou ʻia nā pōkā kālā): pono ʻoe e hana i kahi kaʻina holoʻokoʻa me ka hoʻohana ʻana i nā mea hana kūpono no ka hui o ka mea kūʻai.

Mea kākau: Sergey Artemov, ka mea kākau hale Nā hoʻonā DevOps "Nā Pūnaewele ʻIke Jet"

Source: www.habr.com

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