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: имя_пользователя
      backup_src: /home/имя_пользователя/
      backup_dest: /mnt/backup/имя_пользователя/
      backup_filter: |
        # Сбросить фильтр
        !
        # Включить файл/директорию
        + /включи_меня
        # Включить подкаталог (только если нужно исключить другие подкаталоги)
        + /включи_меня/тоже_меня
        # Исключить всё, кроме меня_как_то
        - /включи_меня/*
        # Исключить по имени файла/директории
        - 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

Вы можете найти больше ролей от GantSign на Ansible Galaxy.

Разработка и тестирование

Этот проект использует Molecule для поддержки разработки и тестирования; роль проходит модульное тестирование с помощью Testinfra и pytest.

Для разработки или тестирования вам нужно установить следующее:

Так как установка вышеуказанного может быть сложной, этот проект включает Обертку для Molecule. Обертка для Molecule — это shell-скрипт, который устанавливает Molecule и его зависимости (кроме Linux), а затем выполняет Molecule с командой, которую вы ему передаете.

Чтобы протестировать эту роль с помощью Обертки для Molecule, выполните следующую команду из корневой директории проекта:

./moleculew test

Примечание: для установки некоторых зависимостей нужны права sudo.

Лицензия

MIT

Информация об авторе

Джон Фримен

GantSign Ltd. Компания № 06109112 (зарегистрирована в Англии)

О проекте

Role for backing up and restoring files and directories.

Установить
ansible-galaxy install gantsign/ansible_role_backup
Лицензия
mit
Загрузки
2717
Владелец