Replace clonedrive with two systemd items

This commit is contained in:
Scott Wallace 2019-10-17 18:40:53 +01:00
parent 0e8bacb90c
commit 6231c7937a
7 changed files with 96 additions and 87 deletions

View file

@ -1,15 +0,0 @@
[Unit]
Description=Clonedrive service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=60
User=media
Group=media
ExecStart=/srv/app/clonedrive/clonedrive.py
[Install]
WantedBy=multi-user.target

View file

@ -1,6 +1,7 @@
[Unit] [Unit]
Description=cloudplow Description=cloudplow
After=network-online.target After=mnt-media.mount
Requires=mnt-media.mount
[Service] [Service]
User=media User=media

View file

@ -2,7 +2,7 @@
"core": { "core": {
"dry_run": false, "dry_run": false,
"rclone_binary_path": "/usr/bin/rclone", "rclone_binary_path": "/usr/bin/rclone",
"rclone_config_path": "/srv/etc/rclone.conf" "rclone_config_path": "/srv/etc/rclone/rclone.conf"
}, },
"hidden": { "hidden": {
"/mnt/.media.cache/.unionfs": { "/mnt/.media.cache/.unionfs": {

View file

@ -5,7 +5,6 @@
- name: "Media Server: Group" - name: "Media Server: Group"
tags: tags:
- install - install
- clonedrive
- cloudplow - cloudplow
group: group:
name: "media" name: "media"
@ -14,7 +13,6 @@
- name: "Media Server: User" - name: "Media Server: User"
tags: tags:
- install - install
- clonedrive
- cloudplow - cloudplow
user: user:
name: "media" name: "media"
@ -23,22 +21,6 @@
expires: -1 expires: -1
become: yes become: yes
- name: "Media Server: Mountpoints"
tags:
- install
- clonedrive
file:
path: "{{ item }}"
state: directory
owner: "media"
group: "media"
loop:
- "/mnt/media"
- "/mnt/GoogleDriveCrypt"
- "/mnt/.media.cache"
- "/mnt/.overlay.work"
become: yes
- name: "Media Server: Cloudplow: git repo" - name: "Media Server: Cloudplow: git repo"
tags: tags:
- install - install
@ -61,27 +43,6 @@
recurse: yes recurse: yes
become: yes become: yes
- name: "Media Server: Clonedrive: git repo"
tags:
- install
- clonedrive
git:
repo: "https://github.com/scottwallacesh/clonedrive.git"
dest: "/srv/app/clonedrive"
become: yes
- name: "Media Server: Clonedrive: directory"
tags:
- install
- clonedrive
file:
path: "/srv/app/clonedrive"
state: directory
mode: "0755"
owner: "media"
group: "media"
become: yes
- name: "Media Server: Cloudplow: config" - name: "Media Server: Cloudplow: config"
tags: tags:
- config - config
@ -94,37 +55,6 @@
group: "media" group: "media"
become: yes become: yes
- name: "Media Server: Configuration: sudoers"
tags:
- config
- clonedrive
copy:
dest: "/etc/sudoers.d/media_clonedrive"
content: "media ALL = NOPASSWD: /usr/bin/mount,/usr/bin/umount\n"
mode: "0440"
become: yes
- name: "Media Server: Clonedrive: service config"
tags:
- install
- clonedrive
copy:
dest: "/etc/systemd/system/clonedrive.service"
src: "files/clonedrive.service"
mode: "0644"
become: yes
- name: "Media Server: Clonedrive: service"
tags:
- config
- clonedrive
systemd:
name: "clonedrive"
state: started
enabled: yes
daemon_reload: yes
become: yes
- name: "Media Server: Cloudplow: Python dependencies" - name: "Media Server: Cloudplow: Python dependencies"
tags: tags:
- install - install

View file

@ -0,0 +1,10 @@
[Unit]
Before=local-fs.target
After=rclone.service
Requires=rclone.service
[Mount]
Where=/mnt/media
What=overlay
Type=overlay
Options=rw,relatime,lowerdir=/mnt/GoogleDriveCrypt,upperdir=/mnt/.media.cache,workdir=/mnt/.overlay.work

View file

@ -0,0 +1,29 @@
[Unit]
Description=Google Drive (rclone)
AssertPathIsDirectory=/mnt/GoogleDriveCrypt
Requires=systemd-networkd.service
Wants=network-online.target
After=network-online.target
Before=mnt-media.mount
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount \
--config=/srv/etc/rclone/rclone.conf \
--allow-other \
--no-modtime \
--read-only \
--dir-cache-time=240m \
--tpslimit=10 \
--tpslimit-burst=1 \
--buffer-size=1G \
GoogleDriveCrypt:/ /mnt/GoogleDriveCrypt
ExecStartPost=/bin/bash -c 'while [ ! -d /mnt/GoogleDriveCrypt/_Other ]; do /usr/bin/sleep 5; done'
ExecStop=/bin/fusermount -u /mnt/GoogleDriveCrypt
Restart=always
RestartSec=10
User=media
Group=media
[Install]
WantedBy=multi-user.target

View file

@ -3,6 +3,21 @@
tags: tags:
- rclone - rclone
block: block:
- name: "Rclone: Mountpoints"
tags:
- install
file:
path: "{{ item }}"
state: directory
owner: "media"
group: "media"
loop:
- "/mnt/media"
- "/mnt/GoogleDriveCrypt"
- "/mnt/.media.cache"
- "/mnt/.overlay.work"
become: yes
- name: "Rclone: Packages" - name: "Rclone: Packages"
tags: tags:
- install - install
@ -31,3 +46,42 @@
regexp: "^#?user_allow_other" regexp: "^#?user_allow_other"
line: "user_allow_other" line: "user_allow_other"
become: yes become: yes
- name: "Rclone: Install: rclone service"
tags:
- install
copy:
dest: "/etc/systemd/system/rclone.service"
src: "files/rclone.service"
owner: "root"
group: "root"
mode: "0444"
become: yes
- name: "Rclone: Configure: rclone service"
tags:
- config
systemd:
name: rclone
enabled: yes
state: started
become: yes
- name: "Rclone: Install:/mnt/media mount"
tags:
- install
copy:
dest: "/etc/systemd/system/mnt-media.mount"
src: "files/mnt-media.mount"
owner: "root"
group: "root"
mode: "0444"
become: yes
- name: "Rclone: Configure: /mnt/media mount"
tags:
- config
systemd:
name: mnt-media.mount
state: started
become: yes