Готовим тукана в контейнере, или стенд RuBackup 2.0

от автора

Всем привет! 

Резервное копирование — это страховка от потери критически важных данных. Независимо от размера и сферы деятельности компании, инструменты резервного копирования необходимы, чтобы бизнес мог продолжать функционировать в случае сбоев оборудования, человеческих ошибок или кибератак.

RuBackup — это системное клиент-серверное решение корпоративного класса для автоматизированного резервного копирования и восстановления данных.

Данная статья будет полезна людям, которые взаимодействуют с RuBackup, решая рабочие задачи, или просто интересуются техническими новинками в сфере бэкапирования. Здесь представлена информация, как быстро и без лишних усилий раскатать демонстрационный стенд RuBackup 2.0.

Дата выхода версии 2.0.49 — 25 мая 2023 год.

Для пробного использования доступна минимальная конфигурация СРК RuBackup, состоящая из основного сервера резервного копирования и нескольких клиентов. Она позволяет выполнять резервное копирование и восстановление суммарным объемом резервных копий не более 1Тб.

В этой статье предложены следующие способы попробовать RuBackup:

  1. C помощью скрипта.

  2. C помощью Docker-контейнера.

  3. C помощью Docker Сompose.

Каждый сможет выбрать подходящий для него способ и вживую «потрогать» новую версию СРК.

1. Скрипт — всё в одном

База данных, клиент, сервер и графический менеджер будут установлены на одну виртуальную машину.
Предусловие: пакеты rubackup-common_2.0.49-1_amd64.deb,
rubackup-client_2.0.49-1_amd64.deb, rubackup-server_2.0.49-1_amd64.deb,
rubackup-rbm_2.0.49-1_amd64.deb и данный скрипт находятся в одной папке.
Проверено на Astra Linux 1.7.2 и Ubuntu 20.04.

install_rubackup.sh
#!/bin/bash   userName="user"   if [[ $(id -u) != 0 ]]; then   echo "Please, as root"   exit 1 fi   apt-get update   # Client dependencies apt-get -y install openssl   # Server dependencies debconf-set-selections <<< "postfix postfix/mailname string rubackup-mail" debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'" apt-get -y install mailutils libcurl4   # Rbm dependencies apt-get -y install libqt5sql5-psql   # Specific dependencies PRETTY_NAME=$(grep "PRETTY_NAME" /etc/os-release) if [[ "$PRETTY_NAME" == *"$Ubuntu 20.04"* ]]; then    apt-get -y install libicu66 elif [[ "$PRETTY_NAME" == *"$Astra Linux"* ]]; then    apt-get -y install libicu63 parsec-base parsec-cap parsec-mac fi   /usr/bin/dpkg -i rubackup-common_2.0.49-1_amd64.deb rubackup-client_2.0.49-1_amd64.deb rubackup-server_2.0.49-1_amd64.deb rubackup-rbm_2.0.49-1_amd64.deb   if [[ $? != 0 ]]; then   echo "Error:  dpkg return not null! Exit"   exit 1 fi     # Paths to /opt/rubackup/lib and /opt/rubackup/bin cat << EOF >> /root/.bashrc PATH=$PATH:/opt/rubackup/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rubackup/lib export PATH export LD_LIBRARY_PATH EOF   tail -n 4 /root/.bashrc >> /home/$userName/.bashrc     # Add daemons systemctl enable /opt/rubackup/etc/systemd/system/rubackup_client.service systemctl enable /opt/rubackup/etc/systemd/system/rubackup_server.service systemctl daemon-reload     # Install and config postgres apt-get -y install postgresql postgresql-contrib sudo -u postgres psql -c "alter user postgres password '12345';"   if [[ "$PRETTY_NAME" == *"$Astra Linux"* ]]; then   sudo -u postgres psql -c "create user rubackup with superuser createrole login password '12345';"   sed -i 's/zero_if_notfound: no/zero_if_notfound: yes/g' /etc/parsec/mswitch.conf fi   pg_ver=$(psql --version) pg_ver=${pg_ver:18:2}   cat << EOF > /etc/postgresql/$pg_ver/main/pg_hba.conf local   all             postgres                                peer host    all             all             127.0.0.1/32            md5 host    all             all             192.168.0.0/16          md5 EOF   echo "listen_addresses = '*'" >> /etc/postgresql/$pg_ver/main/postgresql.conf   systemctl restart postgresql   # Config RuBackup mkdir /default_pool mkdir /rubackup_tmp   iface=$(ip link | head -3 | tail -1 | grep -oP ': \K.*?(?=:)') /opt/rubackup/bin/rb_init -y -n primary-server -H 127.0.0.1 -X 12345 -Y 12345 -i $iface -f /default_pool -l /rubackup_tmp   if [[ $? != 0 ]]; then   echo "Error:  rb_init return not null! Exit"   exit 1 fi   systemctl restart rubackup_server systemctl restart rubackup_client

2. Docker — всё в одном контейнере

То же самое, что и скрипт, только в предподготовленном для вас контейнере.

https://hub.docker.com/r/rubackup/rubackup_server

docker run -d -p 10022:22 -h rubackup_server --name rubackup_server rubackup/rubackup_server:2.0.49

Заходим в контейнер по ssh, пробрасываем графику:

ssh -X -p 10022 user@localhost 1 rbm

3. Docker compose — сервер и несколько клиентов

Поднимем группу контейнеров, тот же сервер и несколько клиентов к нему. Модуль PostgreSQL прилагается.

docker-compose.yml
version: "3"   services:     rubackup_server:     image: "rubackup/rubackup_server:2.0.49"     container_name: rubackup_server     hostname: rubackup_server     networks:       rb_network:         ipv4_address: 172.18.0.10     ports:       - "10022:22"     expose:       - "22"       - "5432"       - "9991"       - "9992"       - "9993"       - "9995"     rubackup_client_1:     image: "rubackup/rubackup_client:2.0.49"     container_name: rubackup_client_1     hostname: rubackup_client_1     networks:       - rb_network     links:       - rubackup_server     rubackup_client_2:     image: "rubackup/rubackup_client:2.0.49"     container_name: rubackup_client_2     hostname: rubackup_client_2     networks:       - rb_network     links:       - rubackup_server   networks:   rb_network:     ipam:       driver: default       config:       - subnet: 172.18.0.0/24

docker-compose up -d
Или так:
docker run -d --ip 172.17.0.2 -p 10022:22 -h rubackup_server --name rubackup_server rubackup/rubackup_server:2.0.49 docker run -d --add-host=rubackup_server:172.17.0.2 -h rubackup_client_1  --name rubackup_client_1 rubackup/rubackup_client:2.0.49 docker run -d --add-host=rubackup_server:172.17.0.2 -h rubackup_client_2  --name rubackup_client_2 rubackup/rubackup_client:2.0.49

Надеюсь, что данный туториал сэкономил ваше время. Всем добра!


ссылка на оригинал статьи https://habr.com/ru/companies/astralinux/articles/744032/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *