duplicity-backup/tasks/main.yml

73 lines
1.9 KiB
YAML
Raw Permalink Normal View History

---
- name: Install required apt packages
apt:
name:
- duplicity
- gnupg
- lftp
- python-pip
update_cache: yes
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version != '20.04'
- name: Install required apt packages
apt:
name:
- duplicity
- gnupg
- lftp
- python3-pip
update_cache: yes
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == '20.04'
- name: Install required pip package
pip:
name: boto
state: latest
- name: Get current duplicity-backup version
shell: "/usr/local/bin/duplicity-backup --version || true"
check_mode: no
changed_when: no
register: duplicity_backup_version_cmd
- name: Install duplicity-backup wrapper
unarchive:
remote_src: true
src: "https://github.com/Luzifer/duplicity-backup/releases/download/{{ duplicity_backup_version }}/duplicity-backup_linux_amd64.tar.gz"
dest: /usr/local/bin
when: duplicity_backup_version not in duplicity_backup_version_cmd.stdout
register: duplicity_backup_unarchive
- name: Move new duplicity-backup version in place
command: mv /usr/local/bin/duplicity-backup_linux_amd64 /usr/local/bin/duplicity-backup
when: duplicity_backup_unarchive.changed
- name: Deploy duplicity-s3 configuration
template:
src: duplicity-backup.yaml.j2
dest: /etc/duplicity-backup.yaml
- name: Add cronjob to clean logs
cron:
name: Cleanup logs
special_time: daily
job: /usr/bin/find /var/log/duplicity -type f -mtime +14 -delete
cron_file: duplicity
user: root
- name: Set up cron for backups
cron:
name: Duplicity Backup
special_time: hourly
job: /usr/bin/ionice -c3 /usr/bin/nice -n19 /usr/local/bin/duplicity-backup -f /etc/duplicity-backup.yaml backup
user: root
cron_file: duplicity
- name: Ensure .config directory used by duplicity
file:
dest: /root/.config
state: directory
...