Duplicity
Duplicity — интерфейс командной строки для резервного копирования. Duplicity поддерживает протоколы SSH/SCP, FTP, HSI, WebDAV, Tahoe-LAFS и Amazon S3 для соединения с файловым сервером, архивирует данные и загружает их на локальный или удаленный файловый сервер и шифрует данные при помощи утилиты GnuPG.
Настроить Duplicity
1. Настроить доступ к S3
Настроить доступ может Владелец аккаунта или пользователь с ролью iam_admin.
- Создайте сервисного пользователя с ролью с доступом в S3.
Если вы используете сервисного пользователя с ролью
object_storage_userилиs3.bucket.user, в бакете должна быть настроена политика доступа. - Если вы хотите подключаться по 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://<bucket_name>
unset SWIFT_PASSWORD
unset SWIFT_AUTHVERSION
unset SWIFT_TENANTNAME
unset SWIFT_AUTHURL
unset SWIFT_USERNAMEУкажите:
<password>— пароль сервисного пользователя. Если вы забыли пароль, создайте новый;<project_name>— имя проекта;<pool>— пул, в котором находится S3;<username>— имя сервисного пользователя;<account_id>— номер аккаунта панели управления, можно посмотреть в панели управления в правом верхнем углу;<path>— путь к папке на локальной машине;<bucket_name>— имя бакета.
-
Сделайте файл исполняемым:
chmod +x <file_name>Укажите
<file_name>— имя файла со скриптом. -
Запустите скрипт:
./<file_name> -
Введите кодовое слово. Запустится резервное копирование, статистика отобразится в консоли.
-
Опционально: для загрузки зашифрованной резервной копии из хранилища на локальную машину:
5.1. Скопируйте скрипт из шага 1.
5.2. В скрипте замените команду
duplicity <path> swift://<bucket_name>наduplicity swift://<bucket_name> <path>.5.3. Сохраните скрипт в файле с именем
restore.sh.5.4. Сделайте файл исполняемым:
chmod +x restore.sh5.5. Запустите скрипт:
./restore.sh5.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 = <bucket_name>
region = <pool>
endpoint = <s3_domain>
type = s3
provider = Other
env_auth = falseУкажите:
<access_key>— значение поля Access key из S3-ключа;<secret_key>— значение поля Secret key из S3-ключа;<bucket_name>— имя бакета;<pool>— пул, в котором находится S3;<s3_domain>— домен S3 API, зависит от пула, в котором находится S3.
-
Выполните архивирование:
duplicity <path> s3://<s3_domain>/<bucket_name>Укажите:
<path>— путь к папке на локальной машине;<bucket_name>— имя бакета.