Как стать автором
Обновить
105.45

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.6K

Всем привет! 

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

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 -R -r
 
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

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

Теги:
Хабы:
Всего голосов 10: ↑6 и ↓4+2
Комментарии13

Публикации

Информация

Сайт
astragroup.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия