87 lines
2.1 KiB
YAML
Executable File
87 lines
2.1 KiB
YAML
Executable File
---
|
|
- name: Regenerate apt-cache and update packages
|
|
apt:
|
|
update_cache: yes
|
|
cache_valid_time: 120
|
|
|
|
- name: Install required System Packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: installed
|
|
with_items: "{{ borg_apt_packages }}"
|
|
|
|
- name: Update setuptools if needed
|
|
pip:
|
|
name: setuptools
|
|
state: latest
|
|
executable: pip3
|
|
|
|
- name: Install required Python Packages
|
|
pip:
|
|
name: "{{ item }}"
|
|
executable: pip3
|
|
with_items: "{{ borg_python_packages }}"
|
|
|
|
- name: Ensure root has SSH key.
|
|
user:
|
|
name: "root"
|
|
generate_ssh_key: yes
|
|
ssh_key_file: .ssh/id_ed25519
|
|
ssh_key_type: ed25519
|
|
register: root_user
|
|
|
|
- debug:
|
|
var: root_user['ssh_public_key']
|
|
|
|
- name: Ensures /etc/borgmatic exists
|
|
file:
|
|
path: /etc/borgmatic
|
|
state: directory
|
|
mode: 0700
|
|
owner: root
|
|
|
|
- name: Add Borgmatic Configuration
|
|
template:
|
|
src: config.yaml.j2
|
|
dest: "/etc/borgmatic/{{ borgmatic_config_name }}"
|
|
mode: 0600
|
|
|
|
- name: Add cron-job for borgmatic (large repo, create and prune)
|
|
cron:
|
|
name: "borgmatic-create"
|
|
hour: "{{ 6 |random }}"
|
|
minute: "{{ 59 |random }}"
|
|
user: "root"
|
|
cron_file: borgmatic
|
|
job: "/usr/local/bin/borgmatic -c /etc/borgmatic/{{ borgmatic_config_name }} --create --prune"
|
|
when: borgmatic_large_repo
|
|
|
|
- name: Add cron-job for borgmatic (large repo, check)
|
|
cron:
|
|
name: "borgmatic-check"
|
|
weekday: 0
|
|
hour: "{{ range(7, 24) |random }}"
|
|
minute: "{{ 59 |random }}"
|
|
user: "root"
|
|
cron_file: borgmatic
|
|
job: "/usr/local/bin/borgmatic -c /etc/borgmatic/{{ borgmatic_config_name }} --check"
|
|
when: borgmatic_large_repo
|
|
|
|
- name: Add cron-job for borgmatic (normal-sized repo)
|
|
cron:
|
|
name: "borgmatic-create"
|
|
hour: "{{ 6 |random }}"
|
|
minute: "{{ 59 |random }}"
|
|
user: "root"
|
|
cron_file: borgmatic
|
|
job: "/usr/local/bin/borgmatic -c /etc/borgmatic/{{ borgmatic_config_name }}"
|
|
when: not borgmatic_large_repo
|
|
|
|
- name: Set PATH for borgmatic cron job.
|
|
cron:
|
|
user: "root"
|
|
cron_file: borgmatic
|
|
name: PATH
|
|
env: yes
|
|
value: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|