Copi wrth gefn arall - mwy na sgript, symlach na system

Mae yna lawer o systemau wrth gefn, ond beth i'w wneud os yw'r gweinyddwyr a wasanaethir wedi'u gwasgaru ar draws gwahanol ranbarthau a chleientiaid a bod angen i chi wneud y tro gyda'r system weithredu?

Copi wrth gefn arall - mwy na sgript, symlach na system

Prynhawn da, Habr!
Fy enw i yw Natalya. Fi yw arweinydd tîm y grŵp gweinyddwyr ceisiadau yn NPO Krista. Rydym yn Ops ar gyfer grŵp prosiect ein cwmni. Mae gennym sefyllfa eithaf unigryw: rydym yn gosod ac yn cynnal ein meddalwedd ar weinyddion ein cwmni ac ar weinyddion sydd wedi'u lleoli ar wefannau cleientiaid. Yn yr achos hwn, nid oes angen gwneud copi wrth gefn o'r gweinydd cyfan. Dim ond y “data hanfodol” sy'n bwysig: y DBMS a chyfeiriaduron systemau ffeiliau unigol. Wrth gwrs, mae gan gleientiaid (neu nid oes ganddynt) eu rheoliadau wrth gefn eu hunain ac yn aml maent yn darparu rhyw fath o storfa allanol ar gyfer storio copïau wrth gefn yno. Yn yr achos hwn, ar ôl creu copi wrth gefn, rydym yn sicrhau ei anfon i storfa allanol.

Am beth amser, at ddibenion wrth gefn, gwnaethom wneud â sgript bash, ond wrth i'r opsiynau ffurfweddu dyfu, tyfodd cymhlethdod y sgript hon yn gymesur, ac ar un adeg daethom at yr angen i'w “dinistrio i'r llawr, ac yna ...”.

Nid oedd atebion parod yn addas am wahanol resymau: oherwydd yr angen i ddatganoli copïau wrth gefn, y gofyniad i storio copïau wrth gefn yn lleol yn y cleient, cymhlethdod y gosodiad, amnewid mewnforio, cyfyngiadau mynediad.

Roedd yn ymddangos i ni ei bod yn haws ysgrifennu rhywbeth ein hunain. Ar yr un pryd, roeddwn am gael rhywbeth a fyddai'n ddigon i'n sefyllfa ar gyfer y blynyddoedd N nesaf, ond gyda'r posibilrwydd o ehangu'r cwmpas o bosibl.

Roedd amodau’r dasg fel a ganlyn:

  1. mae'r enghraifft sylfaenol wrth gefn yn ymreolaethol ac yn rhedeg yn lleol
  2. mae storio copïau wrth gefn a logiau bob amser o fewn rhwydwaith y cleient
  3. mae enghraifft yn cynnwys modiwlau - math o “adeiladwr”
  4. mae angen cydnawsedd â'r dosraniadau a ddefnyddir Linux, gan gynnwys rhai etifeddol, mae cydnawsedd traws-lwyfan posibl yn ddymunol
  5. I weithio gyda'r enghraifft, mae mynediad trwy ssh yn ddigonol; nid oes angen agor porthladdoedd ychwanegol
  6. rhwyddineb mwyaf gosod a gweithredu
  7. mae'n bosibl (ond nid yn angenrheidiol) cael enghraifft ar wahân sy'n eich galluogi i weld statws copïau wrth gefn o wahanol weinyddion yn ganolog

Gallwch chi weld beth wnaethon ni feddwl amdano yma: github.com/javister/krista-backup
Mae'r feddalwedd wedi'i hysgrifennu yn python3; mae'n rhedeg ar Debian, Ubuntu, CentOS, AstraLinux 1.6.

Mae'r ddogfennaeth yn cael ei phostio yng nghyfeirlyfr dogfennau'r gadwrfa.

Cysyniadau sylfaenol y mae'r system yn eu gweithredu:
gweithredu - gweithred sy'n gweithredu un gweithrediad atomig (wrth gefn cronfa ddata, copi wrth gefn o gyfeiriadur, trosglwyddo o gyfeiriadur A i gyfeiriadur B, ac ati). Mae camau gweithredu presennol wedi'u lleoli yn y cyfeiriadur craidd/camau gweithredu
tasg – tasg, set o gamau gweithredu yn disgrifio un “tasg wrth gefn” resymegol
amserlen - amserlen, set o dasgau gydag arwydd dewisol o amser cyflawni'r dasg

Mae'r ffurfweddiad wrth gefn yn cael ei storio mewn ffeil yaml; strwythur cyfluniad cyffredinol:

  • Gosodiadau Cyffredinol
  • adran gweithredoedd: disgrifiad o'r gweithredoedd a ddefnyddir ar y gweinydd hwn
  • adran amserlen: disgrifiad o'r holl dasgau (setiau o gamau gweithredu) ac amserlen ar gyfer eu lansio gan cron, os oes angen lansiad o'r fath

Gellir dod o hyd i ffurfweddiad enghreifftiol yma

Yr hyn y gall y cais ei wneud ar hyn o bryd:

  • Cefnogir y prif weithrediadau i ni: PostgreSQL wrth gefn trwy pg_dump, copi wrth gefn o gyfeiriadur system ffeiliau trwy dar; gweithrediadau gyda storfa allanol; rsync rhwng cyfeiriaduron; cylchdroi wrth gefn (dileu hen gopïau)
  • galw sgript allanol
  • cyflawni tasg ar wahân â llaw
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • gallwch ychwanegu (neu ddileu) un dasg neu'r amserlen gyfan i'r crontab
    /opt/KristaBackup/KristaBackup.py enable all
  • cynhyrchu ffeil sbardun yn seiliedig ar ganlyniadau wrth gefn. Mae'r swyddogaeth hon yn ddefnyddiol ar y cyd â Zabbix ar gyfer monitro copïau wrth gefn
  • yn gallu gweithio yn y cefndir yn y modd webapi neu we
    /opt/KristaBackup/KristaBackup.py web start [--api]

Y gwahaniaeth rhwng y moddau: nid oes gan webapi ryngwyneb gwe ei hun, ond mae'r rhaglen yn ymateb i geisiadau o achos arall. Mae modd gwe yn gofyn am osod Flask a sawl pecyn ychwanegol, nad yw bob amser yn dderbyniol, er enghraifft mewn Astra ardystiedig.Linux GWELER.

Trwy'r rhyngwyneb gwe, gallwch weld statws a logiau copïau wrth gefn o weinyddion cysylltiedig: mae'r “enghraifft gwe” yn gofyn am ddata o'r “achlysuron wrth gefn” trwy'r API. Mae angen awdurdodiad i gael mynediad i'r we, nid oes angen mynediad i webapi.

Copi wrth gefn arall - mwy na sgript, symlach na system

Mae logiau o gopïau wrth gefn anghywir wedi'u marcio mewn lliw: rhybudd - melyn, gwall - coch.

Copi wrth gefn arall - mwy na sgript, symlach na system

Copi wrth gefn arall - mwy na sgript, symlach na system

Os nad oes angen taflen dwyllo ar y gweinyddwr ar y paramedrau a bod systemau gweithredu'r gweinydd yn homogenaidd, gallwch chi lunio'r ffeil a dosbarthu'r pecyn parod.

Rydym yn dosbarthu'r cyfleustodau hwn yn bennaf trwy Ansible, gan ei gyflwyno'n gyntaf i rai o'r gweinyddwyr lleiaf pwysig, ac ar ôl ei brofi i'r gweddill i gyd.

O ganlyniad, cawsom gyfleustodau copi cryno, annibynnol y gellir eu hawtomeiddio a'u defnyddio hyd yn oed gan weinyddwyr dibrofiad. Mae'n gyfleus i ni - efallai y bydd yn ddefnyddiol i chi hefyd?

Ffynhonnell: hab.com

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster