stuff
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
- name: Hetzner
|
||||
hosts: beepi
|
||||
become: true
|
||||
vars:
|
||||
user: hetzner
|
||||
user_home: /home/hetzner
|
||||
|
||||
hetzner_raid_mount: /home/beeshare/raid
|
||||
hetzner_port: 23
|
||||
|
||||
hetzner_paths:
|
||||
- src: /home/beeshare/raid/serverBackup
|
||||
dest: ./beepi
|
||||
- src: /home/beeshare/raid/foundry/backup
|
||||
dest: ./foundry
|
||||
|
||||
# Fill in after creating the storage box sub-account, then re-run
|
||||
hetzner_host: "u651287.your-storagebox.de"
|
||||
hetzner_user: "u651287"
|
||||
|
||||
tasks:
|
||||
- name: Install rsync
|
||||
ansible.builtin.apt:
|
||||
name: rsync
|
||||
state: present
|
||||
|
||||
- name: Create user
|
||||
ansible.builtin.user:
|
||||
name: "{{ user }}"
|
||||
home: "{{ user_home }}"
|
||||
shell: /usr/sbin/nologin
|
||||
create_home: true
|
||||
|
||||
- name: Create ssh directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ user_home }}/.ssh"
|
||||
state: directory
|
||||
owner: "{{ user }}"
|
||||
group: "{{ user }}"
|
||||
mode: '0700'
|
||||
|
||||
- name: Generate ssh key
|
||||
ansible.builtin.command:
|
||||
cmd: "ssh-keygen -t ed25519 -N '' -C beepi-hetzner -f {{ user_home }}/.ssh/id_ed25519"
|
||||
creates: "{{ user_home }}/.ssh/id_ed25519"
|
||||
|
||||
- name: Set key ownership
|
||||
ansible.builtin.file:
|
||||
path: "{{ user_home }}/.ssh/{{ item.name }}"
|
||||
owner: "{{ user }}"
|
||||
group: "{{ user }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop:
|
||||
- name: id_ed25519
|
||||
mode: '0600'
|
||||
- name: id_ed25519.pub
|
||||
mode: '0644'
|
||||
|
||||
- name: Scan storage box host key
|
||||
ansible.builtin.command:
|
||||
cmd: "ssh-keyscan -p {{ hetzner_port }} {{ hetzner_host }}"
|
||||
register: hetzner_hostkey
|
||||
changed_when: false
|
||||
when: hetzner_host | length > 0
|
||||
|
||||
- name: Pin known hosts
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ user_home }}/.ssh/known_hosts"
|
||||
content: "{{ hetzner_hostkey.stdout }}\n"
|
||||
owner: "{{ user }}"
|
||||
group: "{{ user }}"
|
||||
mode: '0600'
|
||||
when: hetzner_host | length > 0
|
||||
|
||||
- name: Copy sync script
|
||||
ansible.builtin.template:
|
||||
src: hetznerSync.sh.j2
|
||||
dest: /opt/backup/hetznerSync.sh
|
||||
mode: '0700'
|
||||
when: hetzner_host | length > 0
|
||||
|
||||
- name: Schedule daily sync
|
||||
ansible.builtin.cron:
|
||||
name: beepi hetzner sync
|
||||
user: root
|
||||
minute: '0'
|
||||
hour: '7'
|
||||
job: /opt/backup/hetznerSync.sh >> /var/log/beepi-backup.log 2>&1
|
||||
when: hetzner_host | length > 0
|
||||
|
||||
- name: Debug
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
- "Test manually: sudo /opt/backup/hetznerSync.sh"
|
||||
- "Read logs: sudo tail -50 /var/log/beepi-backup.log"
|
||||
tags:
|
||||
- always
|
||||
Reference in New Issue
Block a user