xilonz.trellis_backup

trellis-backup-role

这个角色是为Trellis设计的。

它允许使用duply设置自动备份。

它将:

  • 安装duplicity和duply
  • 为每个配置的wordpress_site安装两个duply配置
    • 一个用于数据库
    • 一个用于上传

它不备份网站代码。如果需要恢复,必须先在新服务器上部署网站,然后再恢复数据库和上传内容。

入门

将角色及其依赖项添加到Trellis的galaxy.yml文件中:

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

运行ansible-galaxy install -r galaxy.yml来安装新角色。

然后,将角色添加到server.yml中:

roles:
  ... 其他Trellis角色 ...
  - { role: backup, tags: [backup] }

角色变量

该角色将从Trellis中的wordpress_sites字典读取。

示例:

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 # 替换为你的Git仓库URL
    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://your-custom-endpoint" # 在备份完成后运行的命令

你可以设置enabled: trueauto: false来安装duply配置,但不实际安排备份。这样,你可以在暂存环境中恢复生产数据库。你将在暂存和生产环境中拥有相同的duply配置,但只有生产服务器实际创建备份。

请阅读所有duplicity URL格式(和潜在目标)

vault.yml

将你的备份目标凭据添加到vault.yml中(根据你的目标,可能是S3密钥、FTP凭据,或者如果你选择本地备份则不需要)。你也可以将凭据嵌入目标URL中,但使用vault.yml方法更安全。

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

服务器配置

运行trellis provision --tags backup environmentansible-playbook server.yml -e env=environment --tags backup来运行这个角色。

恢复

一旦配置已安装,你可以轻松地从服务器备份和恢复。website_name是你在wordpress_sites.yml中用下划线替代点的站点名称(example_com)。如果不确定你的duply配置名称,可以使用ls /etc/duply

sudo duply website_name_database restore
sudo duply website_name_uploads restore

2.0版本的变更

  • 移除了paramiko依赖
  • 不再需要在server.yml脚本中列出Stouts.backup角色,因为它已在任务中导入
  • 你需要使用较新版本的Trellis,因为该角色使用Mysql auth_socket插件连接到数据库

SCP支持已知问题

要使用SCP目标,你需要在服务器上安装paramiko。

2.0版本移除了paramiko的自动安装。如果你需要,可以手动安装或通过将其添加到Trellis任务中。然而,存在一个已知问题,即paramiko在Trellis创建的ssh_config中的SendEnv设置下崩溃。

S3支持

当上传到仅接受V4签名的S3存储桶时,存在已知问题。为了成功上传,你需要在wordpress_sites.ymlbackup:键下添加一点内容:

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

许可证

MIT

作者

此角色主要由Jill Royer开发,目前由Arjan Steenbergen维护。

此角色需要由La France insoumise提供的ansible-backup角色。ansible应会自动安装此角色。

关于项目

Install automated backups on Trellis using duply

安装
ansible-galaxy install xilonz.trellis_backup
许可证
Unknown
下载
2.2k