Adding samba and general user management
This commit is contained in:
@@ -29,3 +29,8 @@
|
||||
ansible.builtin.import_tasks: wireguard.yml
|
||||
tags: wireguard
|
||||
when: wireguard is defined
|
||||
|
||||
- name: Import Samba tasks
|
||||
ansible.builtin.import_tasks: samba.yml
|
||||
tags: samba
|
||||
when: samba is defined
|
||||
|
52
roles/base/tasks/samba.yml
Normal file
52
roles/base/tasks/samba.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
- name: Install Samba
|
||||
ansible.builtin.apt:
|
||||
name: samba
|
||||
state: present
|
||||
|
||||
- name: Create nologin shell accounts for Samba
|
||||
ansible.builtin.user:
|
||||
name: "{{ item.name }}"
|
||||
state: present
|
||||
shell: /usr/sbin/nologin
|
||||
createhome: false
|
||||
system: yes
|
||||
loop: "{{ samba.users }}"
|
||||
when: item.manage_user is defined and item.manage_user is true
|
||||
|
||||
- name: Create Samba users
|
||||
ansible.builtin.shell: "smbpasswd -a {{ item.name }}"
|
||||
args:
|
||||
stdin: "{{ item.password }}\n{{ item.password }}"
|
||||
loop: "{{ samba.users }}"
|
||||
register: samba_users
|
||||
changed_when: "'User added' in samba_users.stdout"
|
||||
|
||||
- name: Ensure share directories exist
|
||||
ansible.builtin.file:
|
||||
path: "{{ item.path }}"
|
||||
owner: "{{ item.owner }}"
|
||||
group: "{{ item.group }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
loop: "{{ samba.shares }}"
|
||||
|
||||
- name: Configure Samba shares
|
||||
ansible.builtin.template:
|
||||
src: smb.conf.j2
|
||||
dest: /etc/samba/smb.conf
|
||||
notify: restart_samba
|
||||
|
||||
- name: Start smbd and enable on boot
|
||||
ansible.builtin.service:
|
||||
name: smbd
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: Allow SMB connections
|
||||
community.general.ufw:
|
||||
rule: allow
|
||||
port: 445
|
||||
proto: tcp
|
||||
from: "{{ item }}"
|
||||
state: enabled
|
||||
loop: "{{ samba.firewall }}"
|
@@ -11,6 +11,23 @@
|
||||
mode: 0400
|
||||
when: authorized_keys is defined
|
||||
|
||||
- name: Create system users
|
||||
ansible.builtin.user:
|
||||
name: "{{ item.name }}"
|
||||
state: present
|
||||
shell: "{{ item.shell | default('/bin/bash') }}"
|
||||
create_home: "{{ item.home | default(false) }}"
|
||||
loop: "{{ users }}"
|
||||
when: users is defined
|
||||
|
||||
- name: Set authorized_keys for system users
|
||||
ansible.posix.authorized_key:
|
||||
user: "{{ item.key }}"
|
||||
key: "{{ item.value.key }}"
|
||||
state: present
|
||||
loop: "{{ users }}"
|
||||
when: users is defined and item.value.key is defined
|
||||
|
||||
- name: Manage filesystem mounts
|
||||
ansible.posix.mount:
|
||||
path: "{{ item.path }}"
|
||||
|
Reference in New Issue
Block a user