You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

151 lines
4.9 KiB

---
### Task dedicated to install ovzdb ###
### ref http://projets.developpeur-neurasthenique.fr/projects/openvz-diff-backups ###
## Check openvz hypervisor
- name: check server is openvz hypervisor
fail: msg="You are trying to install on a non-openvz hypervisor, exiting..."
tags:
- backup
when: ansible_virtualization_type != 'openvz' and ansible_virtualization_role !='host'
#### Download and extract openvz-diff-backup ####
- name: install openvz-diff-backups - prerequisite
apt: pkg={{item}} state=present update_cache=yes
tags:
- backup
with_items:
- dnsutils
- libpcre3
- rsync
- bc
- uuid-runtime
- pbzip2
## TODO : possibility to reduce to one task with ansible 2.0
## Ref : src option from http://docs.ansible.com/ansible/unarchive_module.html
- name: install openvz-diff-backups - download
get_url:
url=http://download.openvz-diff-backups.fr/releases/openvz-diff-backups_v0.9.4-beta.tar.gz
dest=/tmp/openvz-diff-backup.tar.gz
force=yes
tags:
- backup
when: not beta | bool
- name: install openvz-diff-backups - untar
unarchive: src=/tmp/openvz-diff-backup.tar.gz dest=/root/ copy=no
tags:
- backup
when: not beta | bool
### Possibility to use beta version ###
- name: install openvz-diff-backup - beta file
copy:
src=openvz-diff-backups_v0.9.8-beta.tar.gz
dest=/tmp/openvz-diff-backup.tar.gz
force=yes
tags:
- backup
when: beta | bool
- name: install openvz-diff-backups - untar beta
unarchive: src=/tmp/openvz-diff-backup.tar.gz dest=/root/ copy=no
tags:
- backup
when: beta | bool
#### Configure openvz-diff-backups ####
- name: install openvz-diff-backups - link to simple directory
file:
src=/root/openvz-diff-backups_v0.9.4-beta
path=/root/openvz-diff-backups
state=link
tags:
- backup
when: not beta | bool
- name: install openvz-diff-backups - link to simple directory - beta
file:
src=/root/openvz-diff-backups_v0.9.8-beta
path=/root/openvz-diff-backups
state=link
tags:
- backup
when: beta | bool
- name: install openvz-diff-backups - upload conf file
template: src=openvz-diff-backups.conf.j2 dest=/etc/openvz-diff-backups.conf
tags:
- backup
- name: install openvz-diff-backups - create symlink to usr/local/bin
file:
src=/root/openvz-diff-backups/openvz-diff-backups
path=/usr/local/bin/openvz-diff-backups
state=link
tags:
- backup
- name: install openvz-diff-backups - update to latest release - CAN TAKE A WHILE
shell: /usr/local/bin/openvz-diff-backups update all install -c /etc/openvz-diff-backups.conf;/usr/local/bin/openvz-diff-backups update all check -c /etc/openvz-diff-backups.conf
register: result
until: result.stdout.find("your release is up to date") != -1
retries: 10
tags:
- backup
when: not beta | bool
- name: install openvz-diff-backups - cron for dump
cron: name="backup container with openvz-diff-backups" minute="{{ backup_minute }}" hour="{{ backup_hour }}" job='/usr/local/bin/openvz-diff-backups backup all auto -q -c /etc/openvz-diff-backups.conf> /dev/null'
tags:
- backup
- name: install openvz-diff-backups - cron for purge
cron: name="purge ct backups with openvz-diff-backups" minute="{{ purge_minute }}" hour="{{ purge_hour }}" job='/usr/local/bin/openvz-diff-backups delete all 7- -q -c /etc/openvz-diff-backups.conf > /dev/null'
tags:
- backup
- name: install openvz-diff-backups - cron for replicate
cron: name="upload ct backups with openvz-diff-backups" minute="{{ upload_minute }}" hour="{{ upload_hour }}" job='/usr/local/bin/openvz-diff-backups replicate all 0- -q -c /etc/openvz-diff-backups.conf > /dev/null'
tags:
- backup
- name: install openvz-diff-backups - check and generate rsa key on server
user: name=root generate_ssh_key=yes ssh_key_bits=4096
tags:
- backup
- name: install openvz-diff-backups - get rsa key on the server
shell: /bin/cat /root/.ssh/id_rsa.pub
register: server_key
ignore_errors: false
tags:
- backup
- name: install openvz-diff-backups - install ssh key to backup server
authorized_key: user=root key='{{ server_key.stdout }}'
tags:
- backup
delegate_to: "{{ backup_server }}"
- name: install openvz-diff-backups - install ssh key to upload server
authorized_key: user=root key='{{ server_key.stdout }}'
tags:
- backup
delegate_to: "{{ upload_server }}"
## Hook to create files to monitoring for openvz-diff-backups
- name: monitoring for openvz-diff-backups - upload hook script
copy: src=openvz-diff-backups-hook-OVZDB_WRITE_ERROR_REPORT dest=/root/openvz-diff-backups/etc/hooks/OVZDB_WRITE_ERROR_REPORT mode=0755
tags:
- backup
- name: monitoring for openvz-diff-backups - activate hook
file:
src=/root/openvz-diff-backups/etc/hooks/OVZDB_WRITE_ERROR_REPORT
path=/root/openvz-diff-backups/etc/hooks/hook-failure
state=link
tags:
- backup