Duplicity
Duplicity — интерфейс командной строки для резервного копирования. Duplicity поддерживает протоколы SSH/SCP, FTP, HSI, WebDAV, Tahoe-LAFS и Amazon S3 для соединения с файловым сервером, архивирует данные и загружает их на локальный или удаленный файловый сервер и шифрует данные при помощи утилиты GnuPG.
Настроить Duplicity
1. Настроить доступ
Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.
- Создайте сервисного пользователя с ролью с доступом в объектное хранилище. Если вы используете пользователя с ролью Пользователь объектного хранилища, в контейнере должна быть настроена политика доступа.
- Если вы хотите подключаться по S3, выдайте пользователю S3-ключ.
2. Установить клиент
Ubuntu
-
Откройте терминал.
-
Установите Duplicity:
sudo apt-get install duplicity
-
Установите пакеты
python-swiftclient
иlibrsync
:sudo apt-get install python-swiftclient
sudo apt-get install librsync-dev -
Установите систему контроля версий Bazaar и загрузите
swiftbackend
:sudo apt-get install bzr
bzr branch lp:~mhu-s/duplicity/swiftbackend -
Установите
swiftbackend
:cd swiftbackend && sudo python dist/setup.py install
3. Настроить конфигурацию Duplicity
Swift
S3
-
Создайте файл со скриптом для резервного копирования:
export SWIFT_PASSWORD=<password>
export SWIFT_AUTHVERSION=3
export SWIFT_TENANTNAME=<project_name>
export SWIFT_AUTHURL="https://cloud.api.selcloud.ru/identity"
export SWIFT_REGIONNAME=<pool>
export SWIFT_USERNAME=<username>
export SWIFT_USER_DOMAIN_NAME=<account_id>
export SWIFT_PROJECT_DOMAIN_NAME=<account_id>
duplicity <path> swift://<container_name>
unset SWIFT_PASSWORD
unset SWIFT_AUTHVERSION
unset SWIFT_TENANTNAME
unset SWIFT_AUTHURL
unset SWIFT_USERNAMEУкажите:
<password>
— пароль сервисного пользователя. Если вы забыли пароль, создайте новый;<project_name>
— имя проекта;<pool>
— пул, в котором находится объектное хранилище;<username>
— имя сервисного пользователя;<account_id>
— номер аккаунта панели управления, можно посмотреть в панели управления в правом верхнем углу;<path>
— путь к папке на локальной машине;<container_name>
— имя контейнера.
-
Сделайте файл исполняемым:
chmod +x <file_name>
Укажите
<file_name>
— имя файла со скриптом. -
Запустите скрипт:
./<file_name>
-
Введите кодовое слово. Запустится резервное копирование, статистика отобразится в консоли.
-
Опционально: для загрузки зашифрованной резервной копии из хранилища на локальную машину:
5.1. Скопируйте скрипт из шага 1.
5.2. В скрипте замените команду
duplicity <path> swift://<container_name>
наduplicity swift://<container_name> <path>
.5.3. Сохраните скрипт в файле с именем
restore.sh
.5.4. Сделайте файл исполняемым:
chmod +x restore.sh
5.5. Запустите скрипт:
./restore.sh
5.6. Введите кодовое слово. Все файлы из резервной копии будут загружены в указанную директорию на локальной машине.
-
Убедитесь, что в контейнере включена Virtual-Hosted адресация.
-
Установите boto:
sudo apt install python3-boto
-
Создайте файл
touch duplicity.conf
с конфигурацией:[s3]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key>
bucket = <container_name>
region = <pool>
endpoint = <s3_domain>
type = s3
provider = Other
env_auth = falseУкажите:
<access_key>
— значение поля Access key из S3-ключа;<secret_key>
— значение поля Secret key из S3-ключа;<container_name>
— имя контейнера;<pool>
— пул, в котором находится объектное хранилище;<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище.
-
Выполните архивирование:
duplicity <path> s3://<s3_domain>/<container_name>
Укажите:
<path>
— путь к папке на локальной машине;<container_name>
— имя контейнера.