From dbc3381e1ff35a32f5d3f43fa95039676216616a 2016-01-06 01:01:47 From: Branko Majic Date: 2016-01-06 01:01:47 Subject: [PATCH] MAR-44: Implemented backup support for the XMPP server role. Updated test site to include XMPP server as one of the backup clients. --- diff --git a/docs/rolereference.rst b/docs/rolereference.rst index c3c17634ae99496ddb1a35bdb3935f4d8ee26e99..01615fe2ded162d3f80dff24e3a52e10a72cf3c2 100644 --- a/docs/rolereference.rst +++ b/docs/rolereference.rst @@ -647,6 +647,17 @@ Prosody expects a specific directory structure in LDAP when doing look-ups: allows group-based granting of XMPP service to users. +Backups +~~~~~~~ + +If the backup for this role has been enabled, the following paths are backed-up: + +**/var/lib/prosody/** + Roster information, as well as undelivered (offline) messages for all XMPP + users. Keep in mind that list of available users and their credentials are + stored in the LDAP directory (which is backed-up via LDAP server role). + + Parameters ~~~~~~~~~~ diff --git a/roles/xmpp_server/files/backup_patterns b/roles/xmpp_server/files/backup_patterns new file mode 100644 index 0000000000000000000000000000000000000000..f7619d8e32e428f6e610e66984018580606270ad --- /dev/null +++ b/roles/xmpp_server/files/backup_patterns @@ -0,0 +1 @@ +/var/lib/prosody \ No newline at end of file diff --git a/roles/xmpp_server/meta/main.yml b/roles/xmpp_server/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ea4af51d2ebe62230fdead8fb8046b2ac5aafad --- /dev/null +++ b/roles/xmpp_server/meta/main.yml @@ -0,0 +1,5 @@ +--- + +dependencies: + - role: backup_client + when: enable_backup \ No newline at end of file diff --git a/roles/xmpp_server/tasks/backup.yml b/roles/xmpp_server/tasks/backup.yml new file mode 100644 index 0000000000000000000000000000000000000000..a25e684a50f7c20dc6b25a0fb8870a6110174eb4 --- /dev/null +++ b/roles/xmpp_server/tasks/backup.yml @@ -0,0 +1,7 @@ +--- + +- name: Deploy include patterns to backup + copy: src="backup_patterns" dest="/etc/duply/main/patterns/xmpp_server" + owner="root" group="root" mode="700" + notify: + - Assemble Duply include patterns \ No newline at end of file diff --git a/roles/xmpp_server/tasks/main.yml b/roles/xmpp_server/tasks/main.yml index 4fe0e973f8d2faac606cba96e7fe2fe50e0a0176..3b077a8ee2efa11856e0dc1d714fd3cbe4ba435a 100644 --- a/roles/xmpp_server/tasks/main.yml +++ b/roles/xmpp_server/tasks/main.yml @@ -56,4 +56,8 @@ - name: Deploy firewall configuration for XMPP server copy: src="ferm_xmpp.conf" dest="/etc/ferm/conf.d/30-xmpp.conf" owner=root group=root mode=640 notify: - - Restart ferm \ No newline at end of file + - Restart ferm + +- name: Enable backup + include: backup.yml + when: enable_backup \ No newline at end of file diff --git a/testsite/group_vars/backup.yml b/testsite/group_vars/backup.yml index f134eb05467701f835d7e315756911a9c2879b3a..f86dd58dd8468855bc5bca0105d65f6a7411971e 100644 --- a/testsite/group_vars/backup.yml +++ b/testsite/group_vars/backup.yml @@ -17,6 +17,9 @@ backup_clients: - server: ldap.{{ testsite_domain }} public_key: "{{ lookup('file', inventory_dir + '/ssh/ldap.' + testsite_domain + '.pub') }}" ip: 10.32.64.12 + - server: xmpp.{{ testsite_domain }} + public_key: "{{ lookup('file', inventory_dir + '/ssh/xmpp.' + testsite_domain + '.pub') }}" + ip: 10.32.64.16 backup_host_ssh_private_keys: dsa: "{{ lookup('file', inventory_dir + '/ssh/backup_server_dsa_key') }}"