aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/jails/10_samba/defaults/main.yml6
-rw-r--r--roles/jails/10_samba/handlers/main.yml4
-rw-r--r--roles/jails/10_samba/tasks/main.yml39
-rw-r--r--roles/jails/10_samba/templates/smb4.conf.j223
4 files changed, 72 insertions, 0 deletions
diff --git a/roles/jails/10_samba/defaults/main.yml b/roles/jails/10_samba/defaults/main.yml
index 99c53e1..5cecd95 100644
--- a/roles/jails/10_samba/defaults/main.yml
+++ b/roles/jails/10_samba/defaults/main.yml
@@ -1,5 +1,11 @@
userland: "15.0-RELEASE"
+pkg:
+ - samba419
+
nullfs:
- src: /usr/local/jails/volumes/storage
dst: /mnt/storage
+
+services:
+ - samba_server
diff --git a/roles/jails/10_samba/handlers/main.yml b/roles/jails/10_samba/handlers/main.yml
new file mode 100644
index 0000000..2349ee8
--- /dev/null
+++ b/roles/jails/10_samba/handlers/main.yml
@@ -0,0 +1,4 @@
+- name: Restart samba
+ service:
+ name: samba_server
+ state: restarted
diff --git a/roles/jails/10_samba/tasks/main.yml b/roles/jails/10_samba/tasks/main.yml
index 2abdaff..0f74fd5 100644
--- a/roles/jails/10_samba/tasks/main.yml
+++ b/roles/jails/10_samba/tasks/main.yml
@@ -1,2 +1,41 @@
- import_role:
name: jail
+ tasks_from: jail_setup
+
+- name: Deploy smb4.conf
+ template:
+ src: "{{ jail_role_dir }}/templates/smb4.conf.j2"
+ dest: /usr/local/etc/smb4.conf
+ owner: root
+ group: wheel
+ mode: "0644"
+ notify: Restart samba
+
+- name: Create samba group
+ shell: "pw groupshow {{ samba.username }} || pw groupadd {{ samba.username }} -g 1001"
+ register: _smbgroup
+ changed_when: _smbgroup.rc != 0
+
+- name: Create samba user
+ shell: "id {{ samba.username }} || pw useradd {{ samba.username }} -u 1001 -g 1001 -m -s /bin/sh"
+ register: _smbuser
+ changed_when: _smbuser.rc != 0
+
+- name: Set unix password
+ shell: "echo '{{ samba.password }}' | pw usermod {{ samba.username }} -h 0"
+ no_log: true
+ changed_when: false
+
+- name: Set samba password
+ shell: "printf '{{ samba.password }}\n{{ samba.password }}\n' | smbpasswd -a -s {{ samba.username }}"
+ args:
+ creates: /usr/local/etc/samba4/private/passdb.tdb
+ no_log: true
+
+- name: Enable samba user
+ shell: "smbpasswd -e {{ samba.username }}"
+ changed_when: false
+
+- import_role:
+ name: jail
+ tasks_from: jail_launch
diff --git a/roles/jails/10_samba/templates/smb4.conf.j2 b/roles/jails/10_samba/templates/smb4.conf.j2
new file mode 100644
index 0000000..23e87b1
--- /dev/null
+++ b/roles/jails/10_samba/templates/smb4.conf.j2
@@ -0,0 +1,23 @@
+[global]
+ workgroup = WORKGROUP
+ server string = pursotin samba
+ security = user
+ map to guest = never
+
+ vfs objects = acl_xattr catia fruit streams_xattr
+ map acl inherit = yes
+ store dos attributes = yes
+
+ log file = /var/log/samba4/log.%m
+ max log size = 1000
+
+ server min protocol = SMB3
+ server max protocol = SMB3
+
+ ntlm auth = no
+
+[smb]
+ path = /mnt/storage
+ browseable = yes
+ read only = no
+ valid users = {{ samba.username }}