Serep liyane - luwih saka skrip, luwih gampang tinimbang sistem

Ana akeh sistem serep, nanging apa sing kudu ditindakake yen server sing dilayani kasebar ing macem-macem wilayah lan klien lan sampeyan kudu nggawe sistem operasi?

Serep liyane - luwih saka skrip, luwih gampang tinimbang sistem

Good afternoon, Habr!
Jenengku Natalya. Aku pimpinan tim grup administrator aplikasi ing NPO Krista. We are Ops kanggo klompok project perusahaan kita. Kita duwe kahanan sing rada unik: kita nginstal lan njaga piranti lunak ing server perusahaan lan ing server sing ana ing situs klien. Ing kasus iki, ora perlu gawe serep kabeh server. Mung "data penting" sing penting: DBMS lan direktori sistem file individu. Mesthine, klien duwe (utawa ora duwe) peraturan serep dhewe lan asring nyedhiyakake sawetara jinis panyimpenan eksternal kanggo nyimpen serep ing kana. Ing kasus iki, sawise nggawe serep, kita mesthekake ngirim menyang panyimpenan external.

Kanggo sawetara wektu, kanggo tujuan serep, kita nggawe skrip bash, nanging nalika opsi konfigurasi saya tambah, kerumitan skrip iki saya tambah kanthi proporsional, lan ing sawijining wektu kita kudu "nyirnakake menyang lemah, banjur ...”.

Solusi sing wis siap ora cocok kanggo macem-macem alasan: amarga perlu kanggo desentralisasi serep, syarat kanggo nyimpen serep lokal ing klien, kerumitan persiyapan, substitusi impor, watesan akses.

Iku ketoke kanggo kita iku luwih gampang kanggo nulis soko dhewe. Ing wektu sing padha, aku wanted kanggo njaluk soko sing bakal cukup kanggo kahanan kita kanggo N taun sabanjurΓ©, nanging karo kamungkinan saka potensi ngembangaken orane katrangan.

Syarat-syarat tugas kasebut yaiku:

  1. conto serep dhasar iku otonomi lan lumaku sacara lokal
  2. panyimpenan serep lan log tansah ing jaringan klien
  3. conto kasusun saka modul - jenis "konstruktor"
  4. kompatibilitas karo distribusi Linux saiki dibutuhake, kalebu outdated, potensial salib-platform seng di pengeni
  5. Kanggo nggarap conto kasebut, akses liwat ssh cukup; mbukak port tambahan ora perlu
  6. ease maksimum persiyapan lan operasi
  7. bisa (nanging ora perlu) duwe conto kapisah sing ngidini sampeyan ndeleng status serep saka server sing beda-beda.

Sampeyan bisa ndeleng apa sing kita teka ing kene: github.com/javister/krista-backup
Piranti lunak kasebut ditulis ing python3; dianggo ing Debian, Ubuntu, CentOS, AstraLinux 1.6.

Dokumentasi dikirim ing direktori docs saka repositori.

Konsep dhasar sistem operasi:
tumindak - tumindak sing ngleksanakake siji operasi atom (database serep, direktori serep, transfer saka direktori A kanggo direktori B, etc.). Tumindak sing wis ana dumunung ing direktori inti/tindakan
tugas - tugas, sakumpulan tumindak sing nggambarake siji "tugas serep" logis
jadwal - jadwal, pesawat saka tugas karo indikasi opsional wektu eksekusi tugas

Konfigurasi serep disimpen ing file yaml; struktur konfigurasi umum:

  • Setelan umum
  • bagean tumindak: gambaran saka tumindak digunakake ing server iki
  • bagean jadwal: katrangan kabeh tugas (set tumindak) lan jadwal kanggo diluncurake kanthi cron, yen diluncurake kasebut dibutuhake

Conto konfigurasi bisa ditemokake ing kene

Apa sing bisa ditindakake aplikasi saiki:

  • Operasi utama kanggo kita didhukung: serep PostgreSQL liwat pg_dump, serep direktori sistem file liwat tar; operasi karo panyimpenan eksternal; rsync antarane direktori; rotasi serep (mbusak salinan lawas)
  • nelpon script external
  • eksekusi manual tugas kapisah
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • sampeyan bisa nambah (utawa mbusak) tugas siji utawa kabeh jadwal kanggo crontab
    /opt/KristaBackup/KristaBackup.py enable all
  • ngasilake file pemicu adhedhasar asil serep. Fungsi iki migunani bebarengan karo Zabbix kanggo ngawasi serep
  • bisa digunakake ing latar mburi ing webapi utawa mode web
    /opt/KristaBackup/KristaBackup.py web start [--api]

Bentenipun antarane mode: webapi ora duwe antarmuka web dhewe, nanging aplikasi nanggapi panjalukan saka conto liyane. Kanggo mode web, sampeyan kudu nginstal flask lan sawetara paket tambahan, lan iki ora bisa ditampa ing endi wae, contone ing AstraLinux SE sing disertifikasi.

Liwat antarmuka web, sampeyan bisa ndeleng status lan log serep server sing disambungake: "kayata web" njaluk data saka "kayata serep" liwat API. Akses menyang web mbutuhake wewenang, akses menyang webapi ora.

Serep liyane - luwih saka skrip, luwih gampang tinimbang sistem

Log serep sing salah ditandhani kanthi warna: bebaya - kuning, kesalahan - abang.

Serep liyane - luwih saka skrip, luwih gampang tinimbang sistem

Serep liyane - luwih saka skrip, luwih gampang tinimbang sistem

Yen administrator ora mbutuhake sheet cheat ing paramèter lan sistem operasi server podho, sampeyan bisa ngumpulake file lan disebaraké paket siap-digawe.

Kita nyebarake sarana iki utamane liwat Ansible, gulung dhisik menyang sawetara server sing paling ora penting, lan sawise nyoba menyang kabeh liyane.

AkibatΓ©, kita nampa utilitas salinan sing kompak lan mandiri sing bisa otomatis lan bisa digunakake sanajan para pangurus sing ora duwe pengalaman. Iku trep kanggo kita - bisa uga migunani kanggo sampeyan?

Source: www.habr.com

Add a comment