Wykonać kopię zapasową serwera za pomocą Ansible?

10

Ansible wydaje się być dość wydajnym narzędziem do automatyzacji do wdrażania i aktualizacji aplikacji na serwerach.

  • Czy można go również użyć do wykonania kopii zapasowej serwera (Linux)? Czy to dobra praktyka?

  • Jeśli tak, czy jest jakiś moduł / przykład, jak to zrobić? Załóżmy na przykład, że chcę utworzyć eksport bazy danych i skopiować ją na inną maszynę. Jak zautomatyzować to zadanie za pomocą Ansible?

Nicolas C.
źródło

Odpowiedzi:

9

Możliwe jest utworzenie kopii zapasowej serwera za pomocą Ansible. Jestem nowym użytkownikiem Ansible, więc nie jestem pewien, czy to dobra praktyka, czy nie.

Jeśli chcesz wykonać kopię zapasową baz danych, możesz użyć modułu mysql_db .

tasks:
  - name: backup db server
    mysql_db: name={{item}} state=dump target=/{{item}}-{{ansible_date_time.iso8601}}.sql
    with_items: db_name

następnie możesz użyć modułu pobierania lub synchronizacji do przesyłania tych plików na komputer lokalny. W fetchmodule nie można pobierać wielu plików, ponieważ nie obsługuje ono symboli wieloznacznych i pobierania folderów. Utworzenie jednego pliku tar jest rozwiązaniem tego problemu.

Możesz także użyć scpdo pobrania plików kopii zapasowej ze zdalnej instancji.

- name: Downloading backup files from remote machine
  command: scp -i {{ansible_ssh_private_key_file}} {{remote_user}}@{{host}}:/backup/* {{backup_folder}}
  delegate_to: 127.0.0.1
Aniket
źródło