diff --git a/roles/native-pull-remote-backups/handlers/main.yml b/roles/native-pull-remote-backups/handlers/main.yml new file mode 100644 index 00000000..2ff7513a --- /dev/null +++ b/roles/native-pull-remote-backups/handlers/main.yml @@ -0,0 +1,4 @@ +- name: restart pull-remote-backups service + service: name=pull-remote-backups.service state=restarted enabled=yes +- name: restart pull-remote-backups timer + service: name=pull-remote-backups.timer state=restarted enabled=yes diff --git a/roles/native-pull-remote-backups/meta/main.yml b/roles/native-pull-remote-backups/meta/main.yml new file mode 100644 index 00000000..c2902963 --- /dev/null +++ b/roles/native-pull-remote-backups/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - native-git diff --git a/roles/native-pull-remote-backups/tasks/main.yml b/roles/native-pull-remote-backups/tasks/main.yml new file mode 100644 index 00000000..bccc5b10 --- /dev/null +++ b/roles/native-pull-remote-backups/tasks/main.yml @@ -0,0 +1,13 @@ +- name: pull-remote-backups git + git: + repo: "https://github.com/kevinveenbirkenbach/pull-remote-backup.git" + dest: "/usr/local/bin/pull-remote-backup" + update: yes + +- name: configure pull-remote-backups.service.tpl + template: src=pull-remote-backups.service dest=/etc/systemd/system/pull-remote-backups.service + notify: restart pull-remote-backups service + +- name: configure pull-remote-backups.timer.tpl + template: src=pull-remote-backups.timer dest=/etc/systemd/system/pull-remote-backups.timer + notify: restart pull-remote-backups timer diff --git a/roles/native-pull-remote-backups/templates/pull-remote-backups.service b/roles/native-pull-remote-backups/templates/pull-remote-backups.service new file mode 100644 index 00000000..da85bc32 --- /dev/null +++ b/roles/native-pull-remote-backups/templates/pull-remote-backups.service @@ -0,0 +1,6 @@ +[Unit] +Description=docker volume update + +[Service] +Type=oneshot +ExecStart=hosts="{{pull_remote_backups_hosts}}";for host in $hosts; do /usr/bin/bash /usr/local/bin/pull-remote-backup/pull-remote-backup.sh $host; done; diff --git a/roles/native-pull-remote-backups/templates/pull-remote-backups.timer b/roles/native-pull-remote-backups/templates/pull-remote-backups.timer new file mode 100644 index 00000000..26df1182 --- /dev/null +++ b/roles/native-pull-remote-backups/templates/pull-remote-backups.timer @@ -0,0 +1,9 @@ +[Unit] +Description=pulls a remote backup + +[Timer] +OnCalendar=22:00 +RandomizedDelaySec=1h + +[Install] +WantedBy=timers.target diff --git a/roles/native-user-administrator/Readme.md b/roles/native-user-administrator/Readme.md index 7361e5f1..17fbdcbb 100644 --- a/roles/native-user-administrator/Readme.md +++ b/roles/native-user-administrator/Readme.md @@ -1,3 +1,4 @@ # Role Administrator This role creates an standard administrator user. -For security reasons it's recommended to use this user instead of the standard root user. +For security reasons it's recommended to use this user instead of the standard root user. +Please consider the concerns in this article https://unix.stackexchange.com/questions/92123/rsync-all-files-of-remote-machine-over-ssh-without-root-user. diff --git a/site.yml b/site.yml index 84f72b9f..f28cc2f0 100644 --- a/site.yml +++ b/site.yml @@ -6,7 +6,10 @@ - native-pacman - native-wireguard - native-user-alarm - - native-user-administrator +- name: setup stores of backups + hosts: backup_stores + roles: + - native-pull-remote-backups - name: setup webservers hosts: webservers roles: