Настройка бекапа на DigitalOcean Spaces
26.05.2018
Настраиваем бекап сервера на CentOS 7, арендованного у DigitalOcean. Для начала установим и настроим утилиту s3cmd.
yum install s3cmd
Сверим версию
Для проверки версии используем следующую команду:
s3cmd --version
Вывод:
s3cmd version 2.0.1
Проверка версии важна, так как команды и вывод команд может меняться в зависимости от версии утилиты.
Настроим конфигурационный файл
По умолчанию s3cmd хранит свои настройки в файле .s3cfg, который расположен в домашней директории пользователя, из под которого выполняются команды. Это текстовый файл с форматом ключ/значение, который может быть отредактирован после того, как создастся. Вы можете создать файл настроек с хранилищем DigitalOcean Spaces по умолчанию, так и использовать другие хранилища.
Вариант 1: DigitalOcean Spaces по умолчанию
Если DigitalOcean главный или единственный провайдер, который использует s3cmd то настроим файл ~/.s3cfg командой:
s3cmd --configure
Вариант 2: Использование стороннего сервиса вместе с DigitalOcean
Если вы уже используете s3cmd с другим сервисом, например Amazon, вы можете создать отдельный конфигурационный файл для DigitalOcean Spaces, для этого просто используйте параметр -c. Файл создастся в той директории, где вы находитесь, поэтому можно указать путь, по которому создать файл:
В примере мы создадим файл конфигурации ams3 в нашей домашней директории:
s3cmd --configure -c ~/ams3
Важно: Для использования этого конфига, нужно будет при использовании s3cmd добавлять параметр в -c ~/ams3 конце каждой команды.
Настройка s3cmd
После того, как вы выбрали, как вы будете использовать s3cmd (по умолчанию DigitalOcean или отдельный конфигурационный файл). При выполнении команды запускается пошаговый интерактивный скрипт конфигурации. В этом разделе будет пояснение пунктов.
Enter Access Keys
Скрипт начинает спрашивать Access Key и Secret Key. Если вы еще не имеете ключей, вы можете сгенерировать их на странице панели управления в разделе API.
После ввода ключей, вас спросят про Default Region, выбираем US, для DigitalOcean этот параметр не имеет значения.
Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed description of all options. Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables. Access Key []: EXAMPLE7UQOTHDTF3GK4 Secret Key []: b8e1ec97b97bff326955375c5example Default Region [US]:
Заметка: Вы так же можете задать переменные AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY для ключей.
Set the Endpoint
Далее мы введем точку доступа DigitalOcean, nyc3.digitaloceanspaces.com, если брали в Амстердаме, то будет ams3.digitaloceanspaces.com.
Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.<br>S3 Endpoint [s3.amazonaws.com]: nyc3.digitaloceanspaces.com
Так как Space поддерживает DNS бакеты, то в следующем поле, мы введем бакет в требуемом формате:
%(bucket)s.nyc3.digitaloceanspaces.com
Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used if the target S3 system supports dns based buckets. DNS-style bucket+hostname:port template for accessing a bucket []: %(bucket)s.nyc3.digitaloceanspaces.com
Optional: Set an encryption password
Следующий пункт опциональный и добавляет шифрование файлов. Для его работы потребуется gpg.
Encryption password is used to protect your files from reading by unauthorized persons while in transfer to S3 Encryption password: secure_password Path to GPG program [/usr/bin/gpg]:
Connect via HTTPS
Далее включаем соединение по HTTPS, вводим в поле Yes.
When using secure HTTPS protocol all communication with Amazon S3 servers is protected from 3rd party eavesdropping. This method is slower than plain HTTP, and can only be proxied with Python 2.7 or newer Use HTTPS protocol [Yes]: Yes
Optional: Set a Proxy Server
Настройки прокси, если у вы хотите работать через прокси, то введите данные от прокси-сервера.
On some networks all internet access must go through a HTTP proxy. Try setting it here if you can't connect to S3 directly HTTP Proxy server name:
Confirm and test settings
После ввода настроек прокси-сервера, скрипт настройки выведет все параметры и их значения для подтверждения, а также предложит протестировать их.
New settings: Access Key: EXAMPLES7UQOTHDTF3GK4 Secret Key: b8e1ec97b97bff326955375c5example Default Region: US S3 Endpoint: nyc3.digitaloceanspaces.com DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.n yc3.digitaloceanspaces.com Encryption password: secure_password Path to GPG program: /usr/bin/gpg Use HTTPS protocol: True HTTP Proxy server name: HTTP Proxy server port: 0 Test access with supplied credentials? [Y/n] Y
Save the settings
Если тест прошел успешно, то вводите Y для сохранения настроек.
Please wait, attempting to list all buckets... Success. Your access key and secret key worked fine :-) Now verifying that encryption works... Success. Encryption and decryption worked fine :-) Save settings? [y/N] Y
Если тест прошел с ошибкой или вы ввели N, вы сможете заново настроить скрипт. Если сохранили настройки, вы получите следующие сообщение
Configuration saved to '/home/sammy/nyc3'
На этом настройка s3cmd закончена, в следующей статье мы настроем резервное копирование в хранилище с помощью s3cmd.