diff --git a/roles/usb-lib/tasks/main.yml b/roles/usb-lib/tasks/main.yml index 5280440bd..2781cd7ce 100644 --- a/roles/usb-lib/tasks/main.yml +++ b/roles/usb-lib/tasks/main.yml @@ -15,6 +15,20 @@ mode: 0751 when: usb_lib_enabled +- name: Install udev to systemd link -> usbmount + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + with_items: + - { src: 'usbmount@.service.j2' , dest: '/etc/systemd/system/usbmount@.service' } + - { src: 'usbmount.rules.j2' , dest: '/etc/udev/rules.d/usbmount.rules' } + +- name: Enable exfat and ntfs + lineinfile: + regexp: '^FILESYSTEMS.*' + line: 'FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus exfat fuseblk ntfs"' + dest: /etc/usbmount/usbmount.conf + - name: Copy umount file to usbmount when enabled template: src: umount.d/70-usb-library diff --git a/roles/usb-lib/templates/usbmount.rules.j2 b/roles/usb-lib/templates/usbmount.rules.j2 new file mode 100644 index 000000000..0b1afd3e5 --- /dev/null +++ b/roles/usb-lib/templates/usbmount.rules.j2 @@ -0,0 +1,5 @@ +KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c" +KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c" +KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p --template=usbmount@.service $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c" +KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" + diff --git a/roles/usb-lib/templates/usbmount@.service.j2 b/roles/usb-lib/templates/usbmount@.service.j2 new file mode 100644 index 000000000..8ee5cb632 --- /dev/null +++ b/roles/usb-lib/templates/usbmount@.service.j2 @@ -0,0 +1,11 @@ +[Unit] +BindTo=%i.device +After=%i.device + +[Service] +Type=oneshot +TimeoutStartSec=0 +Environment=DEVNAME=%I +ExecStart=/usr/share/usbmount/usbmount add +RemainAfterExit=yes +