mirror of
https://gitlab.archlinux.org/archlinux/infrastructure.git
synced 2025-01-18 08:06:16 +01:00
60 lines
2.3 KiB
YAML
60 lines
2.3 KiB
YAML
- name: Install borg and tools
|
|
pacman: name=borg state=present
|
|
|
|
- name: Check if borg repository already exists
|
|
command: "{{ item['borg_cmd'] }} list {{ item['host'] }}/{{ item['dir'] }}"
|
|
environment:
|
|
BORG_RELOCATED_REPO_ACCESS_IS_OK: "yes"
|
|
register: borg_list
|
|
ignore_errors: true
|
|
loop: "{{ backup_hosts }}"
|
|
changed_when: borg_list.stdout | length > 0
|
|
|
|
- name: Init borg repository # noqa ignore-errors no-changed-when
|
|
command: "{{ item['borg_cmd'] }} init -e keyfile {{ item['host'] }}/{{ item['dir'] }}"
|
|
when: borg_list is failed
|
|
environment:
|
|
BORG_PASSPHRASE: ""
|
|
ignore_errors: true # This can sometimes fail if a backup is in progress :/
|
|
loop: "{{ backup_hosts }}"
|
|
|
|
|
|
- name: Install convenience scripts
|
|
template: src=borg.j2 dest=/usr/local/bin/borg{{ item['suffix'] }} owner=root group=root mode=0755
|
|
loop: "{{ backup_hosts }}"
|
|
|
|
- name: Install borg backup scripts
|
|
template: src=borg-backup.sh.j2 dest=/usr/local/bin/borg-backup{{ item['suffix'] }}.sh owner=root group=root mode=0755
|
|
loop: "{{ backup_hosts }}"
|
|
|
|
- name: Set up backup helpers for PostgreSQL databases
|
|
when: "'postgresql_servers' in group_names"
|
|
block:
|
|
- name: Install postgres backup script
|
|
template: src=backup-postgres.sh.j2 dest=/usr/local/bin/backup-postgres.sh owner=root group=root mode=0755
|
|
|
|
- name: Make postgres backup directory
|
|
file: path={{ backup_postgres_dir }} owner=root group=root mode=0755 state=directory
|
|
|
|
- name: Set up backup helpers for MariaDB databases
|
|
when: "'mysql_servers' in group_names"
|
|
block:
|
|
- name: Install mysql backup script
|
|
template: src=backup-mysql.sh.j2 dest=/usr/local/bin/backup-mysql.sh owner=root group=root mode=0755
|
|
|
|
- name: Install mysql backup config
|
|
template: src=backup-my.cnf.j2 dest={{ backup_mysql_defaults }} owner=root group=root mode=0644
|
|
|
|
- name: Create mysql backup directory
|
|
file: path={{ backup_mysql_dir }} state=directory owner=root group=root mode=0755
|
|
|
|
- name: Install systemd timer and services for backup
|
|
copy: src={{ item }} dest=/etc/systemd/system/{{ item }} owner=root group=root mode=0644
|
|
loop:
|
|
- borg-backup.timer
|
|
- borg-backup.service
|
|
- borg-backup-offsite.service
|
|
|
|
- name: Activate systemd timer for backup
|
|
systemd_service: name=borg-backup.timer enabled=yes state=started daemon-reload=yes
|