-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup-mediabackup.yml
71 lines (67 loc) · 1.87 KB
/
setup-mediabackup.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
- import_playbook: setup-common.yml
vars:
limit_hosts: mediabackup
- name: Setup mediabackup server
hosts: mediabackup
become: true
roles:
- name: grog.package
tags: packages
- name: common/iptables
tags: iptables
- name: mediaserver/mergerfs
tags: mergerfs
- name: mediaserver/snapraid
tags: snapraid
- name: mediaserver/samba
tags: samba
- name: mediabackup/wireguard-client
tags: wireguard
- name: common/email-setup
tags: email
# TODO Refactor to it's own thing to reduce duplicate code in setup-mediaserver.yml
- name: Configure mediabackup CRON jobs
hosts: mediabackup
become: true
tasks:
- name: Add the /usr/bin and /usr/sbin folders to the cron PATH needed for smartctl
cron:
name: PATH
env: true
job: /usr/bin:/bin:/usr/bin:/usr/sbin
tags: cron
- name: Snapraid SMART emails
cron:
name: snapraid scrub
job: "sudo snapraid smart | mail --subject='Snapraid SMART' {{ email_user }}+{{ ansible_hostname }}@gmail.com"
user: root
weekday: "*"
minute: "00"
hour: "00"
dom: "*"
tags: cron
- name: Setup mgmt user
hosts: mediabackup
become: true
tags: create-mgmt-user
tasks:
- name: Create group {{ mgmt_group }}
group:
name: "{{ mgmt_group }}"
gid: "{{ mgmt_user_guid }}"
state: present
tags: create-user
- name: Create user {{ mgmt_user }}
user:
name: "{{ mgmt_user }}"
password: "{{ mgmt_user_pass_encoded }}"
group: "{{ mgmt_group }}"
uid: "{{ mgmt_user_puid }}"
shell: "/bin/bash"
state: present
tags: create-user
- name: Add "{{ mgmt_user }}" ssh key to authorized keys on host
authorized_key:
user: "{{ mgmt_user }}"
key: "{{ mgmt_user_ssh_identity_key }}"