diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2026-06-26 19:22:32 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2026-06-26 19:22:32 +0300 |
| commit | bda5ed591ef11c24b4412497c43e5bb0b0f9061d (patch) | |
| tree | c2e2d5a3b8e0a21ac744a58515d208efa5bd6896 /roles | |
| parent | 2324c244f4912bf03133b4d9a36d52c23f998827 (diff) | |
Set up samba jail
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/jails/10_samba/defaults/main.yml | 6 | ||||
| -rw-r--r-- | roles/jails/10_samba/handlers/main.yml | 4 | ||||
| -rw-r--r-- | roles/jails/10_samba/tasks/main.yml | 39 | ||||
| -rw-r--r-- | roles/jails/10_samba/templates/smb4.conf.j2 | 23 |
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 }} |
