gantsign.backup

Rol de Ansible: Copia de Seguridad

Pruebas Ansible Galaxy Licencia

Rol para hacer copias de seguridad y restaurar archivos y directorios. Utiliza rsync pero está pensado para usar con un disco de respaldo montado localmente.

Durante la provisión, este rol restaurará cualquier archivo y directorio que se haya respaldado previamente. Una vez que el sistema se reinicie, realizará copias de seguridad incrementales cada 5 minutos y durante el apagado.

La copia de seguridad es un espejo simple del directorio de origen, las versiones anteriores de los archivos se descartan. El objetivo principal es mantener archivos entre reconstrucciones de tu máquina virtual de desarrollo local. Si no puedes permitirte perder o reemplazar tus archivos, utiliza una solución de copia de seguridad remota con versionado.

Este rol está principalmente destinado a respaldar y restaurar el contenido del directorio personal de un usuario.

Requisitos

  • Ansible >= 2.9

  • Distribución de Linux

    • Familia Debian

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • Nota: otras versiones probablemente funcionen, pero no se han probado.

Variables del Rol

Las siguientes variables cambiarán el comportamiento de este rol:

# La frecuencia para realizar la copia de seguridad
backup_frequency_minutes: 5

# Usuario que posee los archivos para respaldar/restaurar
backup_user: # Obligatorio

# El directorio de origen que contiene los archivos a respaldar (debe terminar con /)
backup_src:  # Obligatorio

# El directorio de destino para respaldar los archivos (debe terminar con /)
backup_dest: # Obligatorio

# El filtro rsync de archivos/directorios a incluir/excluir
backup_filter: |
  !
  # Incluir todo
  + /*
  
# Directorio para scripts de copia de seguridad
backup_script_dir: '~/.backup'

# El nombre para usar en cron
backup_cron_name: backup

# El nombre para usar en el servicio systemd
backup_service_name: backup

Ejemplos de Playbooks

Aquí tienes un ejemplo simple de un playbook:

- hosts: servers
  roles:
    - role: gantsign.backup
      backup_user: ejemplo_usuario
      backup_src: /home/ejemplo_usuario/
      backup_dest: /mnt/backup/ejemplo_usuario/
      backup_filter: |
        # Restablecer filtro
        !
        # Incluir archivo / directorio
        + /incluir_me
        # Incluir subdirectorio (solo necesario si vas a excluir otros subdirectorios)
        + /incluir_me/yo_también
        # Excluir todo menos yo_también
        - /incluir_me/*
        # Excluir por nombre de archivo/directorio
        - tmp
        # Excluir todo lo demás
        - /*

Aquí tienes un ejemplo real de un playbook:

- 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
        - /*

Más Roles de GantSign

Puedes encontrar más roles de GantSign en Ansible Galaxy.

Desarrollo y Pruebas

Este proyecto utiliza Molecule para ayudar en el desarrollo y pruebas; el rol se prueba unitaria usando Testinfra y pytest.

Para desarrollar o probar necesitarás tener instalado lo siguiente:

Como lo anterior puede ser complicado de instalar, este proyecto incluye Molecule Wrapper. Molecule Wrapper es un script en shell que instala Molecule y sus dependencias (excepto Linux) y luego ejecuta Molecule con el comando que le pases.

Para probar este rol usando Molecule Wrapper, ejecuta el siguiente comando desde la raíz del proyecto:

./moleculew test

Nota: algunas de las dependencias necesitan permisos sudo para instalar.

Licencia

MIT

Información del Autor

John Freeman

GantSign Ltd. Número de empresa: 06109112 (registrada en Inglaterra)

Acerca del proyecto

Role for backing up and restoring files and directories.

Instalar
ansible-galaxy install gantsign.backup
Licencia
mit
Descargas
2.7k
Propietario