Skip to content
Snippets Groups Projects
app.yml 2.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • ---
    # file: roles/borgbackup/tasks/app.yml
    
    - block:
    
        - name: Ensure directories
          file:
            path: '{{ application_root }}/{{ item }}'
            state: directory
            mode: 0775
          with_items:
            - borgconfig
            - borgdata/ssh
    
        - name: Environment file
          copy:
            content: BORG_PASSPHRASE={{ borg_passphrase }}
            dest: '{{ application_root }}/borgconfig/.env'
            owner: root
            group: root
            mode: 0644
    
        - name: SSH Key
          copy:
            content: '{{ borg_ssh_key }}'
            dest: '{{ application_root }}/borgdata/ssh/id_rsa'
            owner: root
            group: root
            mode: 0600
          notify:
            - Init Borg App
    
    
        - name: SSH Config
          copy:
            content: StrictHostKeyChecking no
            dest: '{{ application_root }}/borgdata/ssh/config'
            owner: root
            group: root
            mode: 0600
    
    
        - name: Configuration file
          template:
            src: app.yaml
            dest: '{{ application_root }}/borgconfig/config.yaml'
            mode: 0600
    
        - name: Crontabs
          copy:
            content: |
    
              55 */6 * * * PATH=$PATH:/usr/bin /usr/bin/borgmatic --stats -v 0 2>&1  && {{ lookup('healthchecks', '', user='root', jobname=['Backup', application, application_id]|join(' '), schedule='55 */6 * * *', disabled=crons_disabled|default(false)) }}
              30 23 1 * * PATH=$PATH:/usr/bin /usr/local/bin/borgmatic --check -v 0 2>&1  && {{ lookup('healthchecks', '', user='root', jobname=['Check Backup', application, application_id]|join(' '), schedule='30 23 1 * *', disabled=crons_disabled|default(false)) }}
    
            dest: '{{ application_root }}/borgconfig/crontab.txt'
            owner: root
            group: root
            mode: 0644
    
        - name: Docker compose service
          set_fact:
            docker_compose_borgmatic_service:
              image: 'b3vis/borgmatic:base-1.2.0-1.6.0'
              restart: unless-stopped
              volumes:
                - /etc/timezone:/etc/timezone:ro
                - /etc/localtime:/etc/localtime:ro
                - /usr/local/bin/alertalerta.py:/usr/local/bin/alertalerta.py
                - '{{ application_backup_source }}:/mnt/source:ro'
                - '{{ application_root }}/borgconfig:/etc/borgmatic.d/'
                - '{{ application_root }}/borgdata/files:/mnt/borg-repository'
                - '{{ application_root }}/borgdata/config:/root/.config/borg'
                - '{{ application_root }}/borgdata/ssh:/root/.ssh'
                - '{{ application_root }}/borgdata/cache:/root/.cache/borg'