gantsign.backup

Ansible Rola: Kopiowanie zapasowe

Tests Ansible Galaxy Licencja

Rola do tworzenia kopii zapasowych i przywracania plików oraz katalogów. Używa rsync, ale jest przeznaczona do użytku z lokalnie zamontowanym dyskiem do kopii zapasowej.

Podczas konfiguracji ta rola przywróci wszystkie wcześniej wykonane kopie zapasowe plików i katalogów. Po restarcie system operacyjny będzie przeprowadzał inkrementalne kopie zapasowe co 5 minut oraz podczas wyłączania.

Kopia zapasowa to prosta kopia źródłowego katalogu, a poprzednie wersje plików są usuwane. Głównym celem jest zachowanie plików między przebudowami lokalnej maszyny wirtualnej. Jeśli nie możesz pozwolić sobie na utratę lub zastąpienie swoich plików, lepiej jest użyć zdalnego rozwiązania do tworzenia kopii zapasowych z wersjonowaniem.

Ta rola jest głównie przeznaczona do tworzenia kopii zapasowych i przywracania zawartości katalogu domowego użytkownika.

Wymagania

  • Ansible >= 2.9

  • Dystrybucja Linux

    • Rodzina Debian

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • Uwaga: inne wersje prawdopodobnie będą działać, ale nie były testowane.

Zmienna roli

Następujące zmienne zmieniają działanie tej roli:

# Częstotliwość wykonywania kopii zapasowej
backup_frequency_minutes: 5

# Użytkownik, który posiada pliki do kopii zapasowej/przywracania
backup_user: # Wymagane

# Katalog źródłowy zawierający pliki do kopii zapasowej (musi kończyć się na /)
backup_src:  # Wymagane

# Katalog docelowy, do którego mają być kopiowane pliki (musi kończyć się na /)
backup_dest: # Wymagane

# Filtr rsync do plików/katalogów, które mają być dołączone/wykluczone
backup_filter: |
  !
  # Dołącz wszystko
  + /*
  
# Katalog dla skryptów kopii zapasowej
backup_script_dir: '~/.backup'

# Nazwa do użycia dla cron
backup_cron_name: backup

# Nazwa do użycia dla usługi systemd
backup_service_name: backup

Przykład playbooków

Oto prosty przykład playbooka:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: example_username
      backup_src: /home/example_username/
      backup_dest: /mnt/backup/example_username/
      backup_filter: |
        # Resetuj filtr
        !
        # Dołącz plik/katalog
        + /include_me
        # Dołącz podkatalog (tylko jeśli wykluczasz inne podkatalogi)
        + /include_me/me_as_well
        # Wyklucz wszystko oprócz me_as_well
        - /include_me/*
        # Wyklucz po nazwie pliku/katalogu
        - tmp
        # Wyklucz wszystko inne
        - /*

Oto przykład playbooka z życia wzięty:

- 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
        - /*

Więcej ról od GantSign

Więcej ról od GantSign można znaleźć na Ansible Galaxy.

Rozwój i testowanie

Ten projekt korzysta z Molecule w celu wspierania rozwoju i testowania; rola jest testowana jednostkowo za pomocą Testinfra oraz pytest.

Aby rozwijać lub testować, musisz zainstalować następujące:

Ponieważ instalacja powyższego może być skomplikowana, ten projekt zawiera Molecule Wrapper. Molecule Wrapper to skrypt powłoki, który instaluje Molecule i jego zależności (poza Linuxem) i wykonuje Molecule z podanym przez Ciebie poleceniem.

Aby przetestować tę rolę za pomocą Molecule Wrapper, uruchom następujące polecenie z katalogu głównego projektu:

./moleculew test

Uwaga: niektóre z zależności wymagają uprawnień sudo do zainstalowania.

Licencja

MIT

Informacje o autorze

John Freeman

GantSign Ltd. Numer firmy 06109112 (zarejestrowana w Anglii)

O projekcie

Role for backing up and restoring files and directories.

Zainstaluj
ansible-galaxy install gantsign.backup
Licencja
mit
Pobrania
2.7k
Właściciel