paulfantom.restic
Rola Ansible: restic
WAŻNE - Projekt archiwalny
Projekt został zarchiwizowany z powodu braku zainteresowania jego utrzymywaniem (nie używam go już). Z przyjemnością go odarchiwizuję, jeśli ktoś będzie zainteresowany jego utrzymywaniem. Jeśli jesteś taką osobą, napisz do mnie na adres paulfantom@gmail.com.
Opis
Zainstaluj restic - szybki, bezpieczny i efektywny program do tworzenia kopii zapasowych.
Wymagania
- Ansible > 2.2
- zainstalowany bzip2 na maszynie wdrożeniowej (tej samej, na której jest zainstalowany ansible)
Zmienne roli
Wszystkie zmienne, które można nadpisać, są przechowywane w pliku defaults/main.yml oraz w tabeli poniżej.
Nazwa | Wartość domyślna | Opis |
---|---|---|
restic_version |
0.9.6 | wersja pakietu restic. Można także podać "latest". |
restic_user |
"root" | użytkownik systemowy do uruchamiania restic |
restic_group |
"root" | grupa systemowa do uruchamiania restic |
restic_shell |
"/bin/false" | powłoka dla użytkownika restic, zmień to, jeśli chcesz mieć możliwość przełączania się na niego |
restic_install_path |
"/usr/local/bin" | katalog, w którym zostanie zainstalowany plik wykonywalny restic |
restic_cron_mailto |
restic_user | do kogo ma być wysyłana poczta z wynikami pracy crona restic, ustaw na "" aby nie wysyłać |
restic_cron_stdout_file |
null | plik, do którego mają być logowane wyniki restic, null oznacza dołączenie do maila, użyj /dev/null, aby odrzucić |
restic_cron_stderr_file |
null | plik, do którego mają być logowane błędy restic, null oznacza dołączenie do maila, użyj /dev/null, aby odrzucić |
restic_sudo_command_whitelist |
[] | lista dozwolonych poleceń, które restic może uruchamiać z sudo |
restic_repos |
[] | konfiguracja repozytoriów i zadań cron restic. Więcej w defaults/main.yml |
Bezpieczeństwo
Aby zapewnić wysoki poziom bezpieczeństwa, ta rola pozwala na uruchamianie restic jako inny użytkownik niż root, przy jednoczesnym zapewnieniu dostępu do plików w trybie tylko do odczytu. Zostało to zaimplementowane zgodnie z PR#1483 z repozytorium restic.
Jeśli musisz uruchomić niektóre narzędzia jako inny użytkownik, upewnij się, że znajdują się one na liście restic_sudo_command_whitelist
, na przykład:
restic_sudo_command_whitelist:
- command: /usr/bin/some_backup_related_command_that_needs_sudo
runas: root
Następnie w swoim poleceniu kopii zapasowej dodaj to polecenie jako sudo -u root /usr/bin/some_backup_related_command_that_needs_sudo
.
Pomocnicy
Ta rola instaluje również skrypty pomocnicze w restic_install_path
. Te skrypty są nazwane zgodnie z nazwą Twojego repozytorium i zapewnią prawidłowe zmienne środowiskowe dla tego repozytorium.
Na przykład, jeśli masz repozytorium restic o nazwie testrepo
, możesz użyć polecenia restic-testrepo
, które wykona restic
z prawidłowymi zmiennymi środowiskowymi do manipulacji tym repozytorium.
Przykład
Playbook
Użyj go w pliku playbook w następujący sposób:
- hosts: all
roles:
- paulfantom.restic
Testowanie lokalne
Preferowany sposób lokalnego testowania roli to użycie Dockera i molecule (v2.x). Musisz zainstalować Dockera w swoim systemie. Zobacz jak zacząć, aby znaleźć odpowiedni pakiet Dockera dla swojego systemu. Wszystkie potrzebne pakiety można zainstalować w jednej linii:
pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath
Powinno to być podobne do tego, co znajduje się w sekcji install
w pliku .travis.yml
.
Po zainstalowaniu zestawu testowego możesz uruchomić test, wpisując
molecule test --all
Aby uzyskać więcej informacji na temat molekuł, odwiedź ich dokumentację.
Travis CI
Łączenie molekuł i Travis CI pozwala na testowanie, jak nowe PR-y będą działać w przypadku użycia z wieloma wersjami ansible i różnymi systemami operacyjnymi. Umożliwia to również tworzenie scenariuszy testowych dla różnych konfiguracji roli. W rezultacie macierz testowa jest dość duża i zajmuje więcej czasu niż testowanie lokalne, więc prosimy o cierpliwość.
Wnoszenie wkładu
Zobacz wytyczne dla współpracowników.
Licencja
Ten projekt jest licencjonowany na mocy licencji MIT. Zobacz LICENCJA dla dalszych szczegółów.
Fast, secure, efficient backup program
ansible-galaxy install paulfantom.restic