trellis_backup

Роль для резервного копирования Trellis

Эта роль предназначена для использования с Trellis.

Она позволяет настроить автоматическое резервное копирование с помощью duply.

Она будет:

  • устанавливать duplicity и duply
  • для каждого wordpress_site, который настроен, будет создавать два профиля duply
    • один для базы данных
    • один для загрузок

Она не делает резервную копию кода сайта. Если вам нужно восстановить, сначала необходимо развернуть ваш сайт на новом сервере, а затем восстановить базу данных и загрузки.

Начало работы

Добавьте роль и ее зависимости в файл galaxy.yml Trellis:

- name: backup
  src: xilonz.trellis_backup
  version: 2.1.7

Запустите ansible-galaxy install -r galaxy.yml, чтобы установить новые роли.

Затем добавьте роли в файл server.yml:

roles:
  ... другие роли Trellis ...
  - { role: backup, tags: [backup] }

Переменные роли

Роль будет считывать данные из словаря wordpress_sites в Trellis.

Пример:

wordpress_sites:
  example.com:
    site_hosts:
      - canonical: example.com
        redirects:
          - www.example.com
    local_path: ../site # путь к локальному каталогу Bedrock (относительно корня Ansible)
    repo: [email protected]:example/example.com.git # замените на URL вашего Git репозитория
    repo_subtree_path: site # относительный путь к вашему каталогу Bedrock/WP в репозитории
    branch: master
    multisite:
      enabled: false
    ssl:
      enabled: false
      provider: letsencrypt
    cache:
      enabled: false
+   backup:
+     enabled: true
+     auto: true
+     target: scp://[email protected]/example.com_backups # любое место, поддерживаемое duplicity
+     schedule: '0 4 * * *' # cron время резервного копирования (измените это значение)
+     purge: false # переключите на true для автоматического удаления старых резервных копий
+     max_age: 1M # временной промежуток для хранения старых резервных копий, используется для команды "purge".
+     full_max_age: 1M # принудительное полное резервное копирование, если последняя полная резервная копия достигла этого возраста.
+     max_full_backups: 1 # количество полных резервных копий для хранения
+     post_actions: # опционально
+     - "curl -L http://ваш-пользовательский-адрес" # команды для выполнения после завершения резервного копирования

Вы можете установить enabled: true и auto: false, чтобы установить профили duply, но не планировать фактические резервные копирования. Таким образом, вы можете, например, восстановить вашу продукционную базу данных в режиме ожидания. У вас будут одни и те же профили duply в режиме ожидания и продуктивности, но только продуктивный сервер будет фактически создавать резервные копии.

Читать все форматы URL duplicity (и потенциальные цели).

vault.yml

Добавьте учетные данные для резервной копии в vault.yml (в зависимости от вашей цели это могут быть ключи S3, учетные данные FTP или ничего, если вы резервируете локально...). Вы также можете встроить свои учетные данные в URL-адрес цели, но использование метода vault.yml более безопасно.

example.com:
  env:
    backup_target_user: user
    backup_target_pass: password

Подготовка сервера

Запустите trellis provision --tags backup environment или ansible-playbook server.yml -e env=environment --tags backup, когда нужно запустить эту роль.

Восстановление

Как только профили будут установлены, вы сможете легко создать резервную копию и восстановить сервер. website_name — это имя вашего сайта в wordpress_sites.yml с точками, замененными на нижние подчеркивания (example_com). Вы можете использовать ls /etc/duply, если не уверены в названиях ваших профилей duply.

sudo duply website_name_database restore
sudo duply website_name_uploads restore

Изменения в 2.0

  • зависимость paramiko была удалена
  • больше не нужно перечислять роль Stouts.backup в плейбуке server.yml, так как она импортируется в задачи
  • вам нужна последняя версия Trellis, так как роль использует плагин Mysql auth_socket для подключения к базе данных

Известные проблемы с поддержкой SCP

Чтобы использовать цель SCP, вам необходимо, чтобы paramiko был установлен на вашем сервере.

Автоматическая установка paramiko была удалена в 2.0. Если вам это нужно, вы должны сделать это вручную или добавив его в задачи Trellis. Тем не менее, существует известная проблема, когда paramiko сбой возникает в настройках SendEnv в файле ssh_config, созданном Trellis.

Поддержка S3

Существует известная проблема с загрузкой в корзины S3, которые принимают только подписи V4. Чтобы успешно загрузить, вам нужно добавить немного в ключ backup: вашего файла wordpress_sites.yml:

wordpress_sites:
  example.com:
    backup:
      ...
+     params:
+       - 'export S3_USE_SIGV4="True"'

Лицензия

MIT

Авторы

Эта роль была в первую очередь разработана Jill Royer, и в настоящее время поддерживается Arjan Steenbergen.

Эта роль требует роль ansible-backup от La France insoumise. Она должна устанавливаться ansible автоматически.

О проекте

Install automated backups on Trellis using duply

Установить
ansible-galaxy install Xilonz/trellis-backup-role
Лицензия
Unknown
Загрузки
2213
Владелец