gantsign.backup

Ansible 角色:备份

测试 Ansible Galaxy 许可证

这个角色用于备份和恢复文件和目录。使用 rsync,但旨在与本地挂载的备份驱动器一起使用。

在配置期间,此角色将恢复任何先前备份的文件和目录。重启后,操作系统每5分钟和在关机时会进行增量备份。

备份是源目录的简单镜像,先前的文件版本将被丢弃。其主要目的是在重建本地开发虚拟机时保持文件的持久性。如果您不能承受丢失/替换文件,建议使用远程备份解决方案,并确保有版本控制。

此角色主要用于备份和恢复用户主目录的内容。

要求

  • Ansible >= 2.9

  • Linux 发行版

    • Debian 家族

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • 注意:其他版本可能有效,但未经过测试。

角色变量

以下变量将改变此角色的行为:

# 进行备份的频率(分钟)
backup_frequency_minutes: 5

# 拥有要备份/恢复文件的用户
backup_user: # 必填

# 包含要备份的文件的源目录(必须以 / 结尾)
backup_src:  # 必填

# 将文件备份到的目标目录(必须以 / 结尾)
backup_dest: # 必填

# rsync 文件/目录的包含/排除过滤器
backup_filter: |
  !
  # 包括所有内容
  + /*
  
# 备份脚本的目录
backup_script_dir: '~/.backup'

# 用于 cron 的名称
backup_cron_name: backup

# 用于 systemd 服务的名称
backup_service_name: backup

示例剧本

下面是一个简单的示例剧本:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: example_username
      backup_src: /home/example_username/
      backup_dest: /mnt/backup/example_username/
      backup_filter: |
        # 重置过滤器
        !
        # 包括文件/目录
        + /include_me
        # 包括子目录(仅在要排除其他子目录时需要)
        + /include_me/me_as_well
        # 排除除了 me_as_well 以外的所有内容
        - /include_me/*
        # 通过文件/目录名排除
        - tmp
        # 排除其他所有内容
        - /*

以下是一个实际的示例剧本:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: vagrant
      backup_src: /home/vagrant/
      backup_dest: /var/persistent/home/vagrant/
      backup_filter: |
        !
        + /.atom
        + /.atom
        + /.atom/config.cson
        - /.atom/*
        + /.bash_history
        + /.config
        + /.config/Code
        + /.config/Code/User
        + /.config/Code/User/settings.json
        - /.config/Code/User/*
        - /.config/Code/*
        - /.config/*
        + /.gitconfig
        + /.gnupg
        + /.m2
        - /.m2/repository
        - /.m2/wrapper
        + /.ssh
        - /.ssh/authorized_keys
        + /workspace
        + /.zsh_history
        - target/*
        - build/*
        - node_modules
        - /*

来自 GantSign 的更多角色

您可以在 Ansible Galaxy 上找到 GantSign 的更多角色。

开发与测试

本项目使用 Molecule 来帮助开发和测试;该角色使用 Testinfrapytest 进行单元测试。

要开发或测试,您需要安装以下软件:

由于上述软件安装可能会比较棘手,本项目包含 Molecule Wrapper。Molecule Wrapper 是一个安装 Molecule 及其依赖项(除了 Linux)并执行您传递的命令的 Shell 脚本。

要使用 Molecule Wrapper 测试此角色,请从项目根目录运行以下命令:

./moleculew test

注意:某些依赖项需要 sudo 权限才能安装。

许可证

MIT

作者信息

John Freeman

GantSign Ltd. 公司编号:06109112(在英格兰注册)

关于项目

Role for backing up and restoring files and directories.

安装
ansible-galaxy install gantsign.backup
许可证
mit
下载
2.7k
拥有者