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 playbooku server.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.

O projekcie

Install automated backups on Trellis using duply

Zainstaluj
ansible-galaxy install xilonz.trellis_backup
Licencja
Unknown
Pobrania
2.2k
Właściciel