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.

164 lines
5.2 KiB

  1. ---
  2. ### Task dedicated to install ovzdb ###
  3. ### ref http://projets.developpeur-neurasthenique.fr/projects/openvz-diff-backups ###
  4. ## Check openvz hypervisor
  5. - name: check server is openvz hypervisor
  6. fail: msg="You are trying to install on a non-openvz hypervisor, exiting..."
  7. tags:
  8. - backup
  9. when: ansible_virtualization_type != 'openvz' and ansible_virtualization_role !='host'
  10. #### Download and extract openvz-diff-backup ####
  11. - name: install openvz-diff-backups - prerequisite Debian
  12. apt: pkg={{item}} state=present update_cache=yes
  13. tags:
  14. - backup
  15. with_items:
  16. - dnsutils
  17. - libpcre3
  18. - rsync
  19. - bc
  20. - uuid-runtime
  21. - pbzip2
  22. when: ansible_distribution == 'Debian'
  23. - name: install openvz-diff-backups - prerequisite Centos
  24. yum: name={{ item }} state=present update_cache=yes
  25. tags:
  26. - backup
  27. with_items:
  28. - bind-utils
  29. - pcre
  30. - rsync
  31. - bc
  32. - util-linux
  33. - pbzip2
  34. when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo'
  35. ## TODO : possibility to reduce to one task with ansible 2.0
  36. ## Ref : src option from http://docs.ansible.com/ansible/unarchive_module.html
  37. - name: install openvz-diff-backups - download
  38. get_url:
  39. url=http://download.openvz-diff-backups.fr/releases/openvz-diff-backups_v0.9.9.11-beta.tar.gz
  40. dest=/tmp/openvz-diff-backup.tar.gz
  41. force=yes
  42. tags:
  43. - backup
  44. when: not beta | bool
  45. - name: install openvz-diff-backups - untar
  46. unarchive: src=/tmp/openvz-diff-backup.tar.gz dest=/root/ copy=no
  47. tags:
  48. - backup
  49. when: not beta | bool
  50. ### Possibility to use beta version ###
  51. - name: install openvz-diff-backup - beta file
  52. copy:
  53. src=openvz-diff-backups_v0.9.9.2-beta.tar.gz
  54. dest=/tmp/openvz-diff-backup.tar.gz
  55. force=yes
  56. tags:
  57. - backup
  58. when: beta | bool
  59. - name: install openvz-diff-backups - untar beta
  60. unarchive: src=/tmp/openvz-diff-backup.tar.gz dest=/root/ copy=no
  61. tags:
  62. - backup
  63. when: beta | bool
  64. #### Configure openvz-diff-backups ####
  65. - name: install openvz-diff-backups - link to simple directory
  66. file:
  67. src=/root/openvz-diff-backups_v0.9.9.2-beta
  68. path=/root/openvz-diff-backups
  69. state=link
  70. tags:
  71. - backup
  72. when: not beta | bool
  73. - name: install openvz-diff-backups - link to simple directory - beta
  74. file:
  75. src=/root/openvz-diff-backups_v0.9.9.2-beta
  76. path=/root/openvz-diff-backups
  77. state=link
  78. tags:
  79. - backup
  80. when: beta | bool
  81. - name: install openvz-diff-backups - upload conf file
  82. template: src=openvz-diff-backups.conf.j2 dest=/etc/openvz-diff-backups.conf
  83. tags:
  84. - backup
  85. - name: install openvz-diff-backups - create symlink to usr/local/bin
  86. file:
  87. src=/root/openvz-diff-backups/openvz-diff-backups
  88. path=/usr/local/bin/openvz-diff-backups
  89. state=link
  90. tags:
  91. - backup
  92. - name: install openvz-diff-backups - update to latest release - CAN TAKE A WHILE
  93. 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
  94. register: result
  95. until: result.stdout.find("your release is up to date") != -1
  96. retries: 10
  97. tags:
  98. - backup
  99. when: not beta | bool
  100. - name: install openvz-diff-backups - cron for dump
  101. 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'
  102. tags:
  103. - backup
  104. - name: install openvz-diff-backups - cron for purge
  105. 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'
  106. tags:
  107. - backup
  108. - name: install openvz-diff-backups - cron for upload
  109. cron: name="upload ct backups with openvz-diff-backups" minute="{{ upload_minute }}" hour="{{ upload_hour }}" job='/usr/local/bin/openvz-diff-backups upload all 0- -q -c /etc/openvz-diff-backups.conf > /dev/null'
  110. tags:
  111. - backup
  112. - name: install openvz-diff-backups - check and generate rsa key on server
  113. user: name=root generate_ssh_key=yes ssh_key_bits=4096
  114. tags:
  115. - backup
  116. - name: install openvz-diff-backups - get rsa key on the server
  117. shell: /bin/cat /root/.ssh/id_rsa.pub
  118. register: server_key
  119. ignore_errors: false
  120. tags:
  121. - backup
  122. - name: install openvz-diff-backups - install ssh key to backup server
  123. authorized_key: user=root key='{{ server_key.stdout }}'
  124. tags:
  125. - backup
  126. delegate_to: "{{ backup_server }}"
  127. - name: install openvz-diff-backups - install ssh key to upload server
  128. authorized_key: user=root key='{{ server_key.stdout }}'
  129. tags:
  130. - backup
  131. delegate_to: "{{ upload_server }}"
  132. ## Hook to create files to monitoring for openvz-diff-backups
  133. - name: monitoring for openvz-diff-backups - upload hook script
  134. copy: src=openvz-diff-backups-hook-OVZDB_WRITE_ERROR_REPORT dest=/root/openvz-diff-backups/etc/hooks/OVZDB_WRITE_ERROR_REPORT mode=0755
  135. tags:
  136. - backup
  137. - name: monitoring for openvz-diff-backups - activate hook
  138. file:
  139. src=/root/openvz-diff-backups/etc/hooks/OVZDB_WRITE_ERROR_REPORT
  140. path=/root/openvz-diff-backups/etc/hooks/hook-failure
  141. state=link
  142. tags:
  143. - backup