Боз як нусхаи эҳтиётӣ - бештар аз як скрипт, соддатар аз система

Системаҳои эҳтиётии зиёде мавҷуданд, аммо агар серверҳои хидматрасонӣ дар минтақаҳо ва мизоҷони гуногун пароканда бошанд ва шумо бояд бо истифода аз абзорҳои системаи оператсионӣ идора кунед?

Боз як нусхаи эҳтиётӣ - бештар аз як скрипт, соддатар аз система

Хуб, Он ҷо хоҳад буд!
Номи ман Наталя аст. Ман як роҳбари гурӯҳи гурӯҳи маъмурони барномаҳо дар NPO Krista ҳастам. Мо барои дастаи лоиҳаи ширкатамон кор мекунем. Мо вазъияти хеле хосе дорем: мо нармафзори худро ҳам дар серверҳои ширкатамон ва ҳам дар серверҳои дар сайтҳои муштариён ҷойгиршуда насб ва нигоҳ медорем. Дар ин ҳолат, зарурати нусхабардории тамоми сервер вуҷуд надорад. Танҳо "маълумоти муҳим" муҳим аст: DBMS ва директорияҳои инфиродии системаи файлӣ. Албатта, мизоҷон сиёсатҳои эҳтиётии худро доранд (ё надоранд) ва аксар вақт барои нигоҳ доштани нусхаҳои эҳтиётӣ дар он ҷо як намуди нигаҳдории беруна таъмин мекунанд. Дар ин ҳолат, пас аз сохтани нусхаи эҳтиётӣ, мо боварӣ ҳосил мекунем, ки он ба нигаҳдории беруна фиристода мешавад.

Дар тӯли чанд вақт, барои мақсадҳои эҳтиётӣ, мо бо скрипти bash идора мекардем, аммо вақте ки имконоти танзимот афзоиш ёфт, мураккабии ин скрипт мутаносибан афзоиш ёфт ва дар як лаҳзаи хуб ба мо лозим омад, ки “онро ба замин нобуд созем ва пас ....».

Қарорҳои тайёр бо сабабҳои гуногун мувофиқ набуданд: аз сабаби зарурати ғайримарказикунонии нусхаҳои эҳтиётӣ, ӯҳдадории нигоҳ доштани нусхаҳои эҳтиётӣ дар мизоҷ, мураккабии танзимот, ивазкунии воридот ва маҳдудиятҳои дастрасӣ.

Ба назари мо чунин менамуд, ки чизе аз худамон навиштан осонтар аст. Дар баробари ин, мо мехостем чизе ба даст орем, ки барои N соли оянда барои вазъияти мо кифоя бошад, аммо бо имкони васеъ кардани миқёс.

Шартҳои вазифа чунин буданд:

  1. мисоли эҳтиётии асосӣ офлайн аст ва ба таври маҳаллӣ кор мекунад
  2. нигоҳдории нусхаҳои эҳтиётӣ ва гузоришҳо ҳамеша дар дохили шабакаи муштарӣ
  3. намуна аз модулҳо иборат аст - як намуди "конструктор"
  4. мувофиқат бо дистрибюторҳои Linux истифодашуда, аз ҷумла кӯҳнашуда, платформаи эҳтимолии кросс-платформа матлуб аст
  5. дастрасии ssh барои кор бо мисол кифоя аст, кушодани портҳои иловагӣ ихтиёрӣ аст
  6. ҳадди аксар осонии насб ва амалиёт
  7. мумкин аст (вале зарур нест) як мисоли алоҳидае дошта бошед, ки ба шумо имкон медиҳад ҳолати нусхаҳои эҳтиётиро аз серверҳои гуногун ба таври мутамарказ дидан кунед

Он чизе ки мо гирифтем, дар ин ҷо дидан мумкин аст: github.com/javister/krista-backup
Нармафзор дар python3 навишта шудааст; дар Debian, Ubuntu, CentOS, AstraLinux 1.6 кор мекунад.

Ҳуҷҷатҳо дар феҳристи ҳуҷҷатҳои репозиторий ҷойгир карда мешаванд.

Мафҳумҳои асосие, ки система аз рӯи онҳо амал мекунад:
амал – амале, ки як амалиёти атомиро амалӣ мекунад (захираи махзани маълумот, нусхабардории директория, интиқол аз директорияи А ба каталоги В ва ғ.). Амалҳои мавҷуда дар феҳристи аслӣ/амалҳо ҳастанд
вазифа - вазифа, маҷмӯи амалҳое, ки як "вазифаи эҳтиётӣ"-и мантиқиро тавсиф мекунанд
ҷадвал – ҷадвал, маҷмӯи вазифаҳо бо нишон додани ихтиёрии вақти иҷрои супориш

Конфигуратсияи захиравӣ дар файли yaml нигоҳ дошта мешавад; сохтори конфигуратсияи умумӣ:

  • Танзимоти умумӣ
  • Бахши амалҳо: тавсифи амалҳое, ки дар ин сервер истифода мешаванд
  • фасли ҷадвал: тавсифи ҳама вазифаҳо (маҷмӯи амалҳо) ва ҷадвали ба кор андохтани онҳо аз ҷониби cron, агар чунин оғоз лозим бошад

Намунаи конфигуратсияро дар ин ҷо пайдо кардан мумкин аст

Дар айни замон барнома чӣ кор карда метавонад:

  • амалиётҳои асосӣ барои мо дастгирӣ мешаванд: нусхаи эҳтиётии PostgreSQL тавассути pg_dump, нусхабардории феҳристи системаи файлӣ тавассути tar; амалиёт бо нигаҳдории беруна; rsync байни директорияҳо; гардиши эҳтиётӣ (нест кардани нусхаҳои кӯҳна)
  • даъвати скрипти беруна
  • дастй ичро кардани як супориш
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • шумо метавонед як вазифаи инфиродӣ ё тамоми ҷадвалро дар crontab илова кунед (ё хориҷ кунед).
    /opt/KristaBackup/KristaBackup.py enable all
  • триггер тавлиди файл дар асоси натиҷаҳои нусхабардорӣ. Ин хусусият дар якҷоягӣ бо Zabbix барои мониторинги нусхабардорӣ муфид аст.
  • метавонад дар замина дар webapi ё реҷаи веб кор кунад
    /opt/KristaBackup/KristaBackup.py web start [--api]

Фарқи байни режимҳо дар он аст, ки webapi интерфейси дурусти веб надорад, аммо барнома ба дархостҳои як мисоли дигар посух медиҳад. Барои реҷаи веб, шумо бояд колба ва якчанд бастаҳои иловагӣ насб кунед ва ин дар ҳама ҷо қобили қабул нест, масалан, дар AstraLinux SE сертификатсияшуда.

Тавассути интерфейси веб, шумо метавонед вазъ ва сабтҳои нусхаҳои эҳтиётии серверҳои пайвастшударо бубинед: "инстансияи веб" тавассути API маълумотро аз "инстансҳои эҳтиётӣ" дархост мекунад. Дастрасӣ ба веб иҷозатро талаб мекунад, дастрасии webapi ин тавр нест.

Боз як нусхаи эҳтиётӣ - бештар аз як скрипт, соддатар аз система

Гузоришҳои нусхаҳои эҳтиётии гузашта бо ранг ишора карда мешаванд: огоҳӣ - зард, хато - сурх.

Боз як нусхаи эҳтиётӣ - бештар аз як скрипт, соддатар аз система

Боз як нусхаи эҳтиётӣ - бештар аз як скрипт, соддатар аз система

Агар ба администратор варақаи фиреб оид ба параметрҳо лозим набошад ва системаҳои оператсионии сервер якхела бошанд, шумо метавонед файлро тартиб диҳед ва бастаи тайёрро паҳн кунед.

Мо ин утилитаро асосан тавассути Ansible паҳн карда, онро аввал ба баъзе аз серверҳои муҳимтарин ва пас аз санҷиш ба ҳамаи дигарон паҳн мекунем.

Натиҷаи ниҳоӣ як утилитаи нусхабардории паймонест, ки метавонад автоматӣ ва ҳатто аз ҷониби маъмурони бетаҷриба истифода шавад. Ин барои мо қулай аст - шояд барои шумо низ муфид бошад?

Манбаъ: will.com

Илова Эзоҳ