Skip to content

Commit

Permalink
Merge pull request #65 from roles-ansible/docs
Browse files Browse the repository at this point in the history
improve README
  • Loading branch information
DO1JLR authored Apr 1, 2022
2 parents 30b45c6 + acef0d2 commit 1e0d0b9
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 14 deletions.
28 changes: 24 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,14 @@ CRON=true /path/to/backup/script/backup-example.sh
```
## Installation

There are multiple ways to install the role. Either clone or download it directly from the [github repository](https://github.com/roles-ansible/ansible_role_restic.git). Or Install it via [ansible galaxy](https://galaxy.ansible.com/do1jlr/restic):
```bash
ansible-galaxy install arillso.restic
ansible-galaxy install do1jlr.restic
```
## Requirements
* bzip2
* jmespath

## Role Variables

| Name | Default | Description |
Expand All @@ -81,6 +84,7 @@ ansible-galaxy install arillso.restic
| `restic_do_not_cleanup_cron ` | `false` | we changed the cron location and clean up the old one. You can skip the cleanup here |
| `restic__cache_config` | `false` | configure custom cache directory |
| `restic__cache_dir` | `'~/.cache/restic'` | define custom cache directory |
|`submodules_versioncheck`| `false` | if you set this variable to true, the role will run a [simple versionscheck](tasks/versioncheck.yml) to prevent running older versions of this role. |

### Repos
Restic stores data in repositories. You have to specify at least one repository
Expand Down Expand Up @@ -192,13 +196,29 @@ Please refer to the use of the specific keys to the
[documentation](https://restic.readthedocs.io/en/latest/040_backup.html#excluding-files).

## Dependencies
none
This role does not have any other ansible role as dependencie.

## Example Playbook

```yml
- hosts: all
- name: backup your homefolders to /mnt/backup everyday night
hosts: localhost
roles:
- restic
- {role: do1jlr.restic, tags: restic}
vars:
restic_create_schedule: true
restic_repos:
local:
location: '/mnt/backup'
password: 'ChangM3'
init: true
restic_backups:
home:
name: home
repo: local
src: /home/
scheduled: true
schedule_oncalendar: '*-*-* 01:00:00'
```

## License
Expand Down
3 changes: 1 addition & 2 deletions defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
---
# defaults file for skeleton
restic_url: '{{ restic_url_default }}'
restic_version: '0.12.1'
restic_download_path: '/opt/restic'
Expand All @@ -18,7 +17,7 @@ restic_dir_group: '{{ ansible_user | default(ansible_user_id) }}'

# timer defaults
restic_systemd_timer_randomizeddelaysec: '4h'
restic_systemd_timer_default_OnCalendar: '*-*-* 02:00:00'
restic_systemd_timer_default_oncalendar: '*-*-* 02:00:00'

# perform simple version check for this role? (true is recomended)
submodules_versioncheck: false
Expand Down
6 changes: 3 additions & 3 deletions tasks/backup.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
- name: (BACKUP) reformat dict if necessary
set_fact:
ansible.builtin.set_fact:
restic_backups: "{{ restic_backups|dict2items|json_query('[*].value') }}"
when:
- restic_backups | type_debug == "dict"

- name: (BACKUP) Create backup credentials
template:
ansible.builtin.template:
src: restic_access_Linux.j2
dest: "{{ restic_script_dir }}/access-{{ item.name | replace(' ', '') }}.sh"
mode: '0700'
Expand All @@ -21,7 +21,7 @@
- item.repo in restic_repos

- name: (BACKUP) Create backup script
template:
ansible.builtin.template:
src: restic_script_Linux.j2
dest: "{{ restic_script_dir }}/backup-{{ item.name | replace(' ', '') }}.sh"
mode: '0700'
Expand Down
2 changes: 1 addition & 1 deletion tasks/configure.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
- name: (CONF)Initialize repository
command: '{{ restic_install_path }}/restic init'
ansible.builtin.command: '{{ restic_install_path }}/restic init'
environment:
RESTIC_REPOSITORY: '{{ item.value.location }}'
RESTIC_PASSWORD: '{{ item.value.password }}'
Expand Down
2 changes: 1 addition & 1 deletion tasks/distribution/defaults.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
# tasks file for skeleton

- name: Message
debug:
ansible.builtin.debug:
msg: 'Your {{ ansible_system }} is not supported'
3 changes: 3 additions & 0 deletions tasks/install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
url: '{{ restic_url }}'
dest: '{{ restic_download_path }}/restic.bz2'
force: true
mode: 0644
register: get_url_restic

# TODO: This needs to become independent of the shell module to actually work
Expand All @@ -26,6 +27,7 @@
ansible.builtin.command: "{{ restic_bin_bath }} version"
ignore_errors: true
register: restic_test_result
changed_when: false

- name: (INSTALL) Remove faulty binary
ansible.builtin.file:
Expand All @@ -50,3 +52,4 @@
- name: (INSTALL) try restic self-update
become: true
ansible.builtin.command: "{{ restic_install_path }}/restic self-update"
changed_when: true
2 changes: 1 addition & 1 deletion tasks/restic_create_systemd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,5 @@
- restic_create_schedule | bool
rescue:
- name: set cronjob intead of systemd
set_fact:
ansible.builtin.set_fact:
restic_force_cron: true
2 changes: 1 addition & 1 deletion templates/restic.timer.j2
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Description=Run restic backup {{ item.name }} every night

[Timer]
OnCalendar={{ item.schedule_oncalendar | default(restic_systemd_timer_default_OnCalendar) }}
OnCalendar={{ item.schedule_oncalendar | default(restic_systemd_timer_default_oncalendar) }}
RandomizedDelaySec={{ restic_systemd_timer_randomizeddelaysec }}
Persistent=true

Expand Down
2 changes: 1 addition & 1 deletion vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ restic_os_variables:
paths:
- 'vars'

playbook_version_number: 24 # should be int
playbook_version_number: 25 # should be int
playbook_version_path: 'do1jlr.restic.version'

0 comments on commit 1e0d0b9

Please sign in to comment.