Files
@ e0dc1c1cfaa8
Branch filter:
Location: majic-ansible-roles/roles/backup_client/tasks/main.yml
e0dc1c1cfaa8
3.8 KiB
text/x-yaml
MAR-189: Added support for Debian 11 Bullseye to mail_server role:
- Shorten the backup client username so it would be under 32
characters.
- Switch all helper VMs to using the Debian 11 Bullseye as well.
- Drop the architecture suffix from hostnames.
- Update the hostname for client VMs.
- Fix the incorrect format for the message ID used in various mail
delivery tests.
- Shorten the backup client username so it would be under 32
characters.
- Switch all helper VMs to using the Debian 11 Bullseye as well.
- Drop the architecture suffix from hostnames.
- Update the hostname for client VMs.
- Fix the incorrect format for the message ID used in various mail
delivery tests.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | ---
# See duply_main_conf.j2 for details on why this is required (at least
# on Debian 10 Buster). With newer versions of Debian it might be
# possible to switch to Paramiko backend.
- name: Install pexpect for pexpect+sftp Duplicity backend
apt:
name: "{{ backup_client_pexpect_package[ansible_distribution_release] }}"
state: present
- name: Install backup software
apt:
name:
- duplicity
- duply
state: present
- name: Set-up Duply directories
file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: 0700
with_items:
- "/etc/duply"
- "/etc/duply/main"
- "/etc/duply/main/patterns"
- "/etc/duply/main/gnupg"
- "/etc/duply/main/ssh"
- "/var/cache/duply"
- "/var/cache/duply/main"
- name: Deploy GnuPG private keys
copy:
content: "{{ backup_encryption_key }}"
dest: "/etc/duply/main/private_keys.asc"
owner: root
group: root
mode: 0600
notify:
- Remove current keyring
- Create keyring directory
- Import private keys
- Import public keys
- name: Deploy GnuPG public keys
copy:
content: "{{ backup_additional_encryption_keys | join('\n') }}"
dest: "/etc/duply/main/public_keys.asc"
owner: root
group: root
mode: 0600
notify:
- Remove current keyring
- Create keyring directory
- Import private keys
- Import public keys
- name: Extract encryption key identifier (Duplicty requires key ID in hexadecimal format)
shell: "set -o pipefail && gpg --no-tty --list-packets /etc/duply/main/private_keys.asc | grep keyid: |
head -n1 | sed -e 's/.*: //'"
args:
executable: /bin/bash
register: backup_encryption_key_id
changed_when: false
failed_when: not backup_encryption_key_id.stdout
- name: Extract additional encryption keys identifiers (Duplicty requires key ID in hexadecimal format)
shell: "set -o pipefail && gpg --no-tty --list-packets /etc/duply/main/public_keys.asc | grep keyid: |
sed -e 's/.*: //' | sort -u | tr '\n' ',' | sed -e 's/,$//'"
args:
executable: /bin/bash
when: backup_additional_encryption_keys | length > 0
register: backup_additional_encryption_keys_ids
changed_when: false
failed_when: not backup_additional_encryption_keys_ids.stdout
- name: Deploy private SSH key for logging-in into backup server
copy:
content: "{{ backup_ssh_key }}"
dest: "/etc/duply/main/ssh/identity"
owner: root
group: root
mode: 0600
no_log: true
- name: Deploy custom known_hosts for backup purposes
template:
src: "known_hosts.j2"
dest: "/etc/duply/main/ssh/known_hosts"
owner: root
group: root
mode: 0600
- name: Deploy Duply configuration file
template:
src: "duply_main_conf.j2"
dest: "/etc/duply/main/conf"
owner: root
group: root
mode: 0600
- name: Deploy base exclude pattern (exclude all by default)
copy:
content: "- **"
dest: "/etc/duply/main/exclude"
owner: root
group: root
mode: 0600
- name: Set-up directory for storing pre-backup scripts
file:
path: "/etc/duply/main/pre.d/"
state: directory
owner: root
group: root
mode: 0700
- name: Set-up script for running all pre-backup scripts
copy:
src: "duply_pre"
dest: "/etc/duply/main/pre"
owner: root
group: root
mode: 0700
- name: Deploy crontab entry for running backups
cron:
name: backup
cron_file: backup
hour: "2"
minute: "0"
job: "/usr/bin/duply main backup"
state: present
user: root
- name: Ensure the file with include patterns exists (but do not overwrite)
copy:
content: ""
dest: /etc/duply/main/include
force: false
group: root
owner: root
mode: 0600
- name: Explicitly run all handlers
include: ../handlers/main.yml
when: "run_handlers | default(False) | bool()"
tags:
- handlers
|