You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* add full path
* Update Readme.me: reorder optional Arguments, update cron -> systemd timer
* remove ssh_key_file; change cron to timer
* Removed cronie from package installation because systemd timer is used
* docker.sh - Stops all or selected containers to save the persistent data intact. The containers are started in reverse order
* Created arguments_specs.yml
* Role restructured:
- if needed creation of a service user incl. creation of the ssh-key,
- add the ssh key to authorized_keys,
- auto init of the repos,
- creation and start of systemd timer and services and
- installation of the Docker helperscript.
* restructure role add import logic
* cleanup: user backup_user
* - "borg_source_directories" is not longer a required Argument
- add "borg_keys_directory" to load key from Service user during starting borgmatic by sudo
* Add borgmatic_initialization_repo (bool) as option to disable init of repo
* cleanup
* fix ansible-lint errors and warnings
* fix letter turner
* add option: borgmatic_timer
* add:
- borgmatic_timer_systemd: true
readd:
- borgmatic_cron_name: "borgmatic"
* - renamed borgmatic_cron_name to borgmatic_timer_cron_name to be more convergent.
- Change recommendations implemented by m3nu so that creation of a timer (systemd or cron) is optional and can be selected via borgmatic_timer.
* Add description to borgmatic_timer_cron_name and borgmatic_timer
* Add variable borg_cron_package to install the cron-packages in case of using timer: cron
* reworked timer install logic
* reworked timer install logic
* Add comments for running backup with service account
* add new parameters for tests
* Switch created to perform the backup as root or service account. If a service account is to be used, it will be created.
* Refactored: Check for ssh-key if not present, genereate them.
* Refactored
* Refactored
* renamed tasks/03_configure.yml to tasks/04_create_links_to_borg_and_borgmatic.yml
* Refactored
* Refactored
* add example for service account
* Update Python version for testing
* No auto init
* Add description to install_backup
* Add description to install_backup
* set coverage back to: m3nu.ansible_role_borgbackup
* The initialization of the repository must be activated and does not take place automatically.
* The initialization of the repository must be activated and does not take place automatically.
* Removed install_backup as var (bool) to prevent that this role run
* Rename backup_ssh_command to borg_ssh_command, tis was a double definition
* Renamed backup_repository to borg_repository and add better explanations
* remove copy ssh-keys and cert parts
* Add comments to borg_ssh_key_file and borg_ssh_key_type
* Set allways the borg_ssh_key_file and borg_ssh_command to load the right ssh-key. Add borg_ssh_key_type to select the key type by user
* Add borg_ssh_key_type
* renamed id_rsa to backup
* generate ssh-keys (backup and backup.pub) and add better explanation
* Print out key if borgmatic_initialization_repo is false
* Remove 'su - {{ borgbackup_user }} -c' to execute the borgmatic by the right user
* Add Check frequency, therefore, we no longer need to distinguish between normal and large repos
* Add link to Article
* renamed backup_ssh_command and backup_ssh_key_file to borg_ssh_command and borg_ssh_key_file
* Removed: borgmatic_initialization_repo
* Removed: borgmatic_initialization_repo
* Removed: borgmatic_initialization_repo
* revert changes
* Add Full Automation
* polishing
* rename backup.timer and bakup.service to borgmatic.timer and borgmatic.service
* remove debug
* Try to find services in ansible_facts
* Forgot to install Cron
* change borg_ssh_key_type to ed25519
* remove conditional checks
* - add hint to using a service user
- renamed: borg_ssh_key_file to borg_ssh_key_file_path
- removed advanced example
* add borg_ssh_key_name, renamed borg_ssh_key_file to borg_ssh_key_file_path
* removed static pointing to ~/.ssh/backup SSH private key
* Add README-Advanced-Examples.md for storing more examples
* Fix test idempotence
* Dont symlink when using distro packages
* Remove old test targets, consistent wording, remove tag
* Remove helper scripts, fix absolute path
* Fix cron job, add assert to prevent duplicate timers
* nit-pick
* Create bin links as root, no borg_ssh_command by default.
* Add breaking changes note to README
---------
Co-authored-by: Manu <[email protected]>
Copy file name to clipboardexpand all lines: README.md
+61-34
Original file line number
Diff line number
Diff line change
@@ -6,39 +6,58 @@ Set up encrypted, compressed and deduplicated backups using [BorgBackup](https:/
6
6
7
7
Works great with [BorgBase.com](https://www.borgbase.com) - Simple and Secure Hosting for your Borg Repositories. To manage BorgBase repos via Ansible, also see Andy Hawkins' [BorgBase Collection](https://galaxy.ansible.com/adhawkins/borgbase).
8
8
9
-
Main features:
10
-
-Set up Borg and Borgmatic
11
-
-Add cron job at random time
12
-
-Provision new remote [BorgBase.com](https://www.borgbase.com) repo for storing backups (optional)
9
+
**Main features**
10
+
-Install Borg and Borgmatic from PyPi or distro packages
11
+
-Set up Borgmatic config
12
+
-Schedule regular backups using Cron or Systemd timer
13
13
14
+
## Breaking changes
15
+
- Older versions of this role set up a separate Cron job for creating and checking
16
+
backups. With recent Borgmatic version, this feature is now managed in Borgmatic.
17
+
As a result the extra Cron job will be removed by this role.
18
+
- Older versions of this role only supported Cron for scheduling. If you use
19
+
Systemd timers, be sure to remove the Cron job in `/etc/cron.d/borgmatic` first.
20
+
The role will also alert you when trying to use both timers.
14
21
15
-
## Example Playbook
22
+
## Example playbook with root as backup user and Cron timer
-`borg_repository`: Full path to repository. Your own server or [BorgBase.com](https://www.borgbase.com) repo. Not required when using auto creation of repositories. Can be a list if you want to backup to multiple repositories.
61
-
-`borg_source_directories`: List of local folders to back up.
78
+
### Required Variables
79
+
-`borg_repository`: Full path to repository. Your own server or [BorgBase.com](https://www.borgbase.com) repo.
80
+
Can be a list if you want to backup to multiple repositories.
62
81
63
-
### Optional Arguments
82
+
### Optional Variables
83
+
-`borg_dep_packages`: Dependency Packages to install `borg(backup)` and `borgmatic`.
84
+
-`borg_distro_packages`: contains the names of distributions packages for `borg(backup)` and `borgmatic`, only used if `borg_install_method` is set to `package`.
64
85
-`borg_encryption_passcommand`: The standard output of this command is used to unlock the encryption key.
65
86
-`borg_encryption_passphrase`: Password to use for repokey or keyfile. Empty if repo is unencrypted.
66
87
-`borg_exclude_from`: Read exclude patterns from one or more separate named files, one pattern per line.
67
88
-`borg_exclude_patterns`: Paths or patterns to exclude from backup. See [official documentation](https://borgbackup.readthedocs.io/en/stable/usage/help.html#borg-help-patterns) for more.
89
+
-`borg_install_method`: By default `pip` is used to install borgmatic. To install via your distributions package manager set this to `package` and (if needed) overwrite the `borg_distro_packages` variable to contain your distributions package names required to install borgmatic. Note that many distributions ship outdated versions of borgbackup and borgmatic; use at your own risk.
68
90
-`borg_lock_wait_time`: Config maximum seconds to wait for acquiring a repository/cache lock. Defaults to 5 seconds.
69
91
-`borg_one_file_system`: Don't cross file-system boundaries. Defaults to `true`
92
+
-`borg_pip_packages`: Dependancy Packages (pip) to install `borg(backup)` and `borgmatic`.
70
93
-`borg_remote_path`: Path to the borg executable on the remote. It will default to `borg`.
71
94
-`borg_remote_rate_limit`: Remote network upload rate limit in kiBytes/second.
72
95
-`borg_retention_policy`: Retention policy for how many backups to keep in each category (daily, weekly, monthly, etc).
73
-
-`borg_ssh_command`: Command to use instead of just "ssh". This can be used to specify ssh options.
96
+
-`borg_source_directories`: List of local folders to back up. Default is `/etc/hostname` to prevent an empty backup.
97
+
-`borg_ssh_key_name`: Name of the SSH public and pivate key. Default `id_ed25519`
98
+
-`borg_ssh_key_file_path`: SSH-key to be used. Default `~/.ssh/{{ borg_ssh_key_name }}`
99
+
-`borg_ssh_key_type`: The algorithm used to generate the SSH private key. Choose: `rsa`, `dsa`, `rsa1`, `ecdsa`, `ed25519`. Default: `ed25519`
100
+
-`borg_ssh_command`: Command to use instead of just "ssh". This can be used to specify SSH options.
101
+
-`borg_version`: Force a specific borg version to be installed
102
+
-`borg_venv_path`: Path to store the venv for `borg(backup)` and `borgmatic`
103
+
74
104
-`borgmatic_check_last`: Number of archives to check. Defaults to `3`
75
-
-`borgmatic_checks`: List of consistency checks. Defaults to `['repository']`
76
-
-`borgmatic_config_name`: Name to use for the borgmatic config file. Defaults to `config.yaml`
77
-
-`borgmatic_cron_checks_day`: Day when cron job for infrequent checks will run. Defaults to `{{ 28 | random }}`
78
-
-`borgmatic_cron_checks_hour`: Hour when cron job for infrequent checks will run. Defaults to `{{ range(7, 24) | random }}`
79
-
-`borgmatic_cron_checks_minute`: Minute when cron job for infrequent checks will run. Defaults to `{{ 59 | random }}`
80
-
-`borgmatic_cron_hour`: Hour when regular create and prune cron job will run. Defaults to `{{ 6 | random }}`
81
-
-`borgmatic_cron_minute`: Minute when regular create and prune cron job will run. Defaults to `{{ 59 | random }}`
105
+
-`borgmatic_checks`: List of consistency checks. Defaults to monthly checks. See [docs](https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-frequency) for all options.
106
+
-`borgmatic_config_name`: Name to use for the Borgmatic config file. Defaults to `config.yaml`
107
+
-`borgmatic_timer_hour`: Hour when regular create and prune cron/systemd-timer job will run. Defaults to `{{ 6 | random }}`
108
+
-`borgmatic_timer_minute`: Minute when regular create and prune cron/systemd-timer job will run. Defaults to `{{ 59 | random }}`
82
109
-`borgmatic_hooks`: Hooks to monitor your backups e.g. with [Healthchecks](https://healthchecks.io/). See [official documentation](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) for more.
83
-
-`borgmatic_large_repo`: Less frequent, monthly repo checking. Defaults to `true`
110
+
-`borgmatic_timer`: If the variable is set, a timer is installed. A choice must be made between `cron` and `systemd`.
84
111
-`borgmatic_relocated_repo_access_is_ok`: Bypass Borg error about a repository that has been moved. Defaults to `false`
85
112
-`borgmatic_store_atime`: Store atime into archive. Defaults to `true`
86
113
-`borgmatic_store_ctime`: Store ctime into archive. Defaults to `true`
87
-
-`ssh_key_file`: Path to a private ssh key file (default is `.ssh/id_ed25519`). It generates a ed25519 key if the file doesn't exist yet.
88
-
-`borg_version`: Force a specific borg version to be installed
89
114
-`borgmatic_version`: Force a specific borgmatic version to be installed
90
-
-`borg_install_method`: By default `pip` is used to install borgmatic. To install via your distributions package manager set this to `package` and (if needed) overwrite the `borg_distro_packages` variable to contain your distributions package names required to install borgmatic. Note that many distributions ship outdated versions of borgbackup and borgmatic; use at your own risk.
91
-
-`borg_distro_packages`: contains the names of distributions packages for `borg(backup)` and `borgmatic`, only used if `borg_install_method` is set to `package`.
115
+
116
+
-`borg_user`: Name of the User to create Backups (service account)
117
+
-`borg_group`: Name of the Group to create Backups (service account)
0 commit comments