Nui nā ʻōnaehana kākoʻo, akā he aha kāu e hana ai inā hoʻopuehu ʻia nā kikowaena lawelawe ma nā wahi like ʻole a me nā mea kūʻai aku a pono ʻoe e hana me ka ʻōnaehana hana?
Aloha awakea, Aloha Auinalā, ʻO ka ʻōniʻoniʻo!
ʻO Natalya koʻu inoa. ʻO wau ke alakaʻi hui o ka hui hoʻoponopono noi ma NPO Krista. ʻO mākou nā Ops no ka hui papahana o kā mākou hui. Loaʻa iā mākou kahi kūlana kūʻokoʻa: hoʻokomo mākou a mālama i kā mākou polokalamu ma nā kikowaena o kā mākou hui a ma nā kikowaena ma nā pūnaewele o nā mea kūʻai aku. I kēia hihia, ʻaʻohe pono e hoʻihoʻi i ke kikowaena holoʻokoʻa. ʻO ka "ʻikepili koʻikoʻi" wale nō ka mea nui: ka DBMS a me nā papa kuhikuhi ʻōnaehana faila. ʻOiaʻiʻo, loaʻa i nā mea kūʻai aku (a ʻaʻole ʻole) kā lākou hoʻoponopono hoʻihoʻi ponoʻī a hāʻawi pinepine i kahi ʻano o ka waiho waho no ka mālama ʻana i nā backup ma laila. I kēia hihia, ma hope o ka hana ʻana i kahi waihona, hōʻoia mākou i ka hoʻouna ʻana i kahi waihona waho.
No kekahi manawa, no nā kumu hoʻihoʻi, ua hana mākou me kahi script bash, akā i ka ulu ʻana o nā koho hoʻonohonoho, ua ulu like ka paʻakikī o kēia ʻatikala, a i kekahi manawa ua hele mākou i ka pono e "hoʻopau iā ia i ka honua, a laila ...".
ʻAʻole kūpono nā hoʻonā i hoʻomākaukau ʻia no nā kumu like ʻole: ma muli o ka pono e hoʻokaʻawale i nā backup, ke koi e mālama i nā backup kūloko i ka mea kūʻai aku, paʻakikī o ka hoʻonohonoho ʻana, hoʻokomo i nā mea hoʻopili, nā palena ʻae.
Me he mea lā ua maʻalahi ka kākau ʻana i kekahi mea no mākou iho. I ka manawa like, makemake wau e loaʻa i kahi mea e lawa ai i ko mākou kūlana no nā makahiki N e hiki mai ana, akā me ka hiki ke hoʻonui i ka laulā.
ʻO nā kūlana o ka hana penei:
- ʻO ke kumu hoʻihoʻi kumu he autonomous a holo kūloko
- ʻO ka mālama ʻana i nā waihona a me nā lāʻau i loko o ka pūnaewele o ka mea kūʻai aku
- Aia kekahi laʻana i nā modula - kahi ʻano "mea hana"
- Pono ka hoʻohālikelike me nā māhele Linux o kēia manawa, me nā mea kahiko, makemake ʻia ka cross-platform
- No ka hana ʻana me ka laʻana, lawa ke komo ʻana ma o ssh; ʻaʻole pono ka wehe ʻana i nā awa hou
- ka maʻalahi o ka hoʻonohonoho a me ka hana
- hiki (akā ʻaʻole pono) ke loaʻa kahi ʻokoʻa e hiki ai iā ʻoe ke ʻike i ke kūlana o nā waihona mai nā kikowaena like ʻole.
Hiki iā ʻoe ke ʻike i ka mea a mākou i hana ai ma aneʻi:
Ua kākau ʻia ka polokalamu ma python3; hana ma Debian, Ubuntu, CentOS, AstraLinux 1.6.
Hoʻouna ʻia ka palapala ma ka papa kuhikuhi docs o ka waihona.
Nā manaʻo kumu e hana ai ka ʻōnaehana:
hana - he hana e hoʻokō ai i hoʻokahi hana atomic (backup database, backup directory, transfer from directory A to directory B, etc.). Aia nā hana e kū nei ma ka papa kuhikuhi kumu/hana
hana - hana, he pūʻulu hana e wehewehe ana i hoʻokahi "hana hoʻihoʻi" ponoʻī.
papa hoʻonohonoho - hoʻonohonoho, kahi hoʻonohonoho o nā hana me kahi hōʻailona koho o ka manawa hoʻokō hana
Mālama ʻia ka hoʻonohonoho hoʻonohonoho ʻana i kahi faila yaml; hale hoʻonohonoho maʻamau:
- Nā hoʻonohonoho maʻamau
- ʻāpana hana: wehewehe i nā hana i hoʻohana ʻia ma kēia kikowaena
- ʻāpana hoʻonohonoho: wehewehe ʻana i nā hana āpau (nā hoʻonohonoho o nā hana) a me ka hoʻonohonoho ʻana no kā lākou hoʻomaka ʻana e cron, inā koi ʻia kahi hoʻolaha.
He aha ka mea hiki ke hana i kēia manawa:
- Kākoʻo ʻia nā hana koʻikoʻi no mākou: Kākoʻo PostgreSQL ma o pg_dump, hoʻihoʻi i ka papa kuhikuhi waihona waihona ma o ka tar; nā hana me ka waihona waho; rsync ma waena o nā papa kuhikuhi; ka hoʻololi ʻana (ka holoi ʻana i nā kope kahiko)
- ke kāhea ʻana i kahi palapala waho
- hana lima o kahi hana kaawale
/opt/KristaBackup/KristaBackup.py run make_full_dump
- hiki iā ʻoe ke hoʻohui (a wehe paha) i kahi hana a i ʻole ka papa hana holoʻokoʻa i ka crontab
/opt/KristaBackup/KristaBackup.py enable all
- ka hana ʻana i kahi faila hoʻāla e pili ana i nā hopena hoʻihoʻi. Pono kēia hana me Zabbix no ka nānā ʻana i nā backup
- hiki ke hana ma ke kua ma ka webapi a i ʻole ke ʻano pūnaewele
/opt/KristaBackup/KristaBackup.py web start [--api]
ʻO ka ʻokoʻa ma waena o nā ʻano ʻano: ʻaʻohe pūnaewele pūnaewele ʻo webapi, akā pane ka noi i nā noi mai kahi manawa ʻē aʻe. No ke ʻano pūnaewele, pono ʻoe e hoʻokomo i ka flask a me nā pūʻulu hou aʻe, a ʻaʻole ʻae ʻia kēia ma nā wahi āpau, no ka laʻana ma AstraLinux SE i hōʻoia ʻia.
Ma o ke kikowaena pūnaewele, hiki iā ʻoe ke nānā i ke kūlana a me nā moʻolelo o nā backup o nā kikowaena pili: noi ka "web instance" i ka ʻikepili mai nā "backup instances" ma o ka API. Pono ka ʻae ʻana i ka pūnaewele, ʻaʻole pono ke komo i ka webapi.
Hōʻailona ʻia nā moʻolelo o nā hoʻihoʻi hewa i ke kala: ʻōlelo aʻo - melemele, hewa - ʻulaʻula.
Inā ʻaʻole pono ka luna hoʻomalu i kahi pepa hoʻopunipuni ma nā ʻāpana a me nā ʻōnaehana lawelawe kikowaena like ʻole, hiki iā ʻoe ke hōʻuluʻulu i ka faila a hāʻawi i ka pūʻulu i mākaukau.
Hāʻawi mākou i kēia pono ma o Ansible, e ʻōwili mua iā ia i kekahi o nā kikowaena liʻiliʻi loa, a ma hope o ka hoʻāʻo ʻana i nā mea ʻē aʻe.
ʻO ka hopena, ua loaʻa iā mākou kahi pono kope paʻa, kū hoʻokahi i hiki ke hoʻohana ʻia a hiki ke hoʻohana ʻia e nā luna hoʻokele ʻike ʻole. He mea maʻalahi iā mākou - pono paha ia no ʻoe?
Source: www.habr.com