main.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. ---
  2. - name: Check if restic is installed
  3. stat:
  4. path: '{{ restic_path }}'
  5. register: restic_binary
  6. - include_tasks: install.yml
  7. when: not restic_binary.stat.exists or restic_install
  8. # TODO: check if exists?
  9. - name: Overwrite SSH config for backup server
  10. become: yes
  11. template:
  12. src: ssh_config.j2
  13. dest: '{{ restic_user_home }}/.ssh/config'
  14. owner: root
  15. group: root
  16. mode: '0600'
  17. when: restic_ssh_enabled
  18. - name: Add SSH private key
  19. become: yes
  20. template:
  21. src: ssh_private_key.j2
  22. dest: '{{ restic_ssh_private_key_path }}'
  23. mode: '0600'
  24. when: restic_ssh_private_key is defined and restic_ssh_enabled
  25. - name: Add restic_env in home folder
  26. become: yes
  27. template:
  28. src: restic_env.j2
  29. dest: '{{ restic_user_home }}/.restic_env'
  30. owner: root
  31. group: root
  32. mode: '0600'
  33. - name: Add systemd service for restic
  34. become: yes
  35. template:
  36. src: restic-backup.service.j2
  37. dest: /etc/systemd/system/restic-backup.service
  38. mode: '0644'
  39. vars:
  40. restic_folders_combined: '{{ restic_default_folders + restic_folders }}'
  41. notify: systemd reload
  42. - name: Add systemd timer for restic
  43. become: yes
  44. template:
  45. src: restic-backup.timer.j2
  46. dest: /etc/systemd/system/restic-backup.timer
  47. mode: '0644'
  48. notify: systemd reload
  49. - name: Enable and start restic timer
  50. become: yes
  51. systemd:
  52. name: restic-backup.timer
  53. enabled: true
  54. state: started
  55. - name: Initialize restic repo if needed
  56. become: yes
  57. command: "{{restic_path}} init"
  58. environment:
  59. RESTIC_REPOSITORY: "sftp:{{ restic_ssh_host }}:{{ restic_repository_name }}"
  60. RESTIC_PASSWORD: "{{restic_password}}"
  61. no_log: true
  62. register: restic_init
  63. changed_when: "'created restic repository' in restic_init.stdout"
  64. failed_when:
  65. - restic_init.rc != 0
  66. - not 'config file already exists' in restic_init.stderr
  67. - not 'config already initialized' in restic_init.stderr
  68. - not 'config already exists' in restic_init.stderr