xilonz.trellis_backup
rola-backup-trellis
Ta rola została stworzona do użytku z Trellis.
Pozwala na automatyczne tworzenie kopii zapasowych za pomocą duply.
Ona:
- zainstaluje duplicity i duply
- dla każdej skonfigurowanej
wordpress_site
, zainstaluje dwa profile duply- jeden dla bazy danych
- jeden dla przesyłek
Nie wykonuje kopii zapasowej kodu strony internetowej. Jeśli potrzebujesz przywrócić, musisz najpierw wdrożyć swoją stronę na nowym serwerze, a następnie przywrócić swoją bazę danych i przesyłki.
Jak zacząć
Dodaj rolę i jej zależności do pliku galaxy.yml
Trellis:
- name: backup
src: xilonz.trellis_backup
version: 2.1.7
Uruchom ansible-galaxy install -r galaxy.yml
, aby zainstalować nowe role.
Następnie dodaj role do server.yml
:
roles:
... inne role Trellis ...
- { role: backup, tags: [backup] }
Zmienne roli
Rola odczytuje z słownika wordpress_sites
w Trellis.
Przykład:
wordpress_sites:
example.com:
site_hosts:
- canonical: example.com
redirects:
- www.example.com
local_path: ../site # ścieżka prowadząca do lokalnego katalogu Bedrock (względna do głównego katalogu Ansible)
repo: [email protected]:example/example.com.git # zastąp pięcioma miejscami adres repozytorium git
repo_subtree_path: site # ścieżka względna do katalogu Bedrock/WP w repozytorium
branch: master
multisite:
enabled: false
ssl:
enabled: false
provider: letsencrypt
cache:
enabled: false
+ backup:
+ enabled: true
+ auto: true
+ target: scp://[email protected]/example.com_backups # dowolna lokalizacja obsługiwana przez duplicity
+ schedule: '0 4 * * *' # harmonogram tworzenia kopii zapasowych (zmień tę wartość)
+ purge: false # zmień na true, aby aktywować automatyczne usuwanie starych kopii zapasowych
+ max_age: 1M # Zakres czasowy dla starych kopii zapasowych, które mają być przechowywane. Używane w komendzie "purge".
+ full_max_age: 1M # wymusza pełną kopię zapasową, jeśli ostatnia pełna kopia osiągnie ten wiek.
+ max_full_backups: 1 # liczba pełnych kopii zapasowych do przechowywania
+ post_actions: # opcjonalne
+ - "curl -L http://your-custom-endpoint" # komendy do uruchomienia po zakończeniu tworzenia kopii zapasowej
Możesz ustawić enabled: true
i auto: false
, aby zainstalować profile duply, ale nie planować rzeczywiście tworzenia kopii zapasowych. W ten sposób możesz na przykład przywrócić swoją bazę danych produkcyjną w strefie testowej. Będziesz mieć te same profile duply w strefie testowej i produkcyjnej, ale tylko na serwerze produkcyjnym będą tworzone kopie zapasowe.
Przeczytaj wszystkie formaty URL duplicity (i potencjalne cele).
vault.yml
Dodaj poświadczenia do swojego celu kopii zapasowej do vault.yml
(w zależności od celu mogą to być klucze S3, dane do logowania FTP lub nic, jeśli tworzysz kopie zapasowe lokalnie...). Możesz również osadzić swoje poświadczenia w URL celu, ale użycie metody vault.yml
jest bezpieczniejsze.
example.com:
env:
backup_target_user: user
backup_target_pass: password
Provisioning serwera
Uruchom trellis provision --tags backup environment
lub ansible-playbook server.yml -e env=environment --tags backup
, aby uruchomić tę rolę.
Przywracanie
Gdy profile są już zainstalowane, możesz łatwo tworzyć kopie zapasowe i przywracać z serwera. website_name
to nazwa Twojej strony w wordpress_sites.yml
z kropkami zamienionymi na podkreślniki (example_com
). Możesz użyć ls /etc/duply
, jeśli nie jesteś pewien nazw swoich profili duply.
sudo duply website_name_database restore
sudo duply website_name_uploads restore
Zmiany w wersji 2.0
- zależność paramiko została usunięta
- nie musisz już wymieniać roli
Stouts.backup
w playbookuserver.yml
, ponieważ jest ona importowana w zadaniach - potrzebujesz aktualnej wersji Trellis, ponieważ rola korzysta z pluginu Mysql
auth_socket
, aby połączyć się z bazą danych
Problemy z obsługą SCP
Aby używać celu SCP, musisz mieć zainstalowane paramiko na swoim serwerze.
Automatyczna instalacja paramiko została usunięta w wersji 2.0. Jeśli go potrzebujesz, powinieneś zainstalować go ręcznie lub dodać do zadań trellis. Istnieje jednak znany problem, w którym paramiko zawiesza się na ustawieniu SendEnv
w ssh_config
tworzonym przez Trellis.
Obsługa S3
Istnieje znany problem z przesyłaniem do wiader S3, które akceptują tylko podpisy V4. Aby pomyślnie przesłać, musisz dodać trochę do klucza backup:
w wordpress_sites.yml
:
wordpress_sites:
example.com:
backup:
...
+ params:
+ - 'export S3_USE_SIGV4="True"'
Licencja
MIT
Autorzy
Ta rola została głównie opracowana przez Jill Royer, a obecnie jest utrzymywana przez Arjan Steenbergen.
Ta rola wymaga roli ansible-backup autorstwa La France insoumise. Powinna być automatycznie instalowana przez ansible.
Install automated backups on Trellis using duply
ansible-galaxy install xilonz.trellis_backup