Documentation

    restic

    Manage Restic backups with support for multiple backends (local, S3, B2, REST, etc.). Restic is a modern, fast, secure backup program with encryption, deduplication, and cloud storage support.

    Attributes

    check_mode:
      support: partial
    

    Parameters

    Parameter Required Type Values Description
    environment   array   Environment variables for restic (e.g., AWS_ACCESS_KEY_ID).
    exclude   array   Exclude pattern(s).
    include   array   Include pattern(s).
    keep_daily   integer   Retain daily snapshots.
    keep_last   integer   Retain the n most recent snapshots.
    keep_monthly   integer   Retain monthly snapshots.
    keep_weekly   integer   Retain weekly snapshots.
    keep_yearly   integer   Retain yearly snapshots.
    password true string   Repository password for encryption/decryption.
    path   array   Path(s) to backup. Required for state=backup.
    repository true string   Restic repository path or URL. Supports local paths, S3 (s3:bucket/path), B2 (b2:bucket:path), REST (rest:http://…), SFTP (sftp:user@host:/path), etc.
    restic_opts   array   Additional restic options.
    restore_path   string   Restore destination directory. Required for state=restore.
    state   string init
    backup
    check
    restore
    prune
    forget
    Action to perform: init, backup, check, restore, prune, or forget.
    tag   array   Tag(s) for the backup. Used with backup, restore, and forget.

    Examples

    - name: Initialize a restic repository
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: init
    
    - name: Backup files to local repository
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: backup
        path:
          - /etc
          - /home
        tag:
          - daily
          - important
    
    - name: Backup to S3 with retention policy
      restic:
        repository: "s3:https://s3.amazonaws.com/my-bucket/backups"
        password: "{{ vault.restic_password }}"
        state: backup
        path:
          - /data
        tag:
          - s3-backup
        keep_daily: 7
        keep_weekly: 4
        keep_monthly: 6
    
    - name: Check repository integrity
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: check
    
    - name: Restore latest snapshot
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: restore
        restore_path: /tmp/restore
        tag: latest
    
    - name: Forget old snapshots with retention policy
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: forget
        keep_daily: 7
        keep_weekly: 4
        keep_monthly: 6
    
    - name: Prune unused data
      restic:
        repository: /mnt/backup
        password: "{{ vault.restic_password }}"
        state: prune