gantsign.backup
Ansible Rola: Kopiowanie zapasowe
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)
ansible-galaxy install gantsign.backup