From 020e81176d197fdc8759c87188d80b2ca7307c04 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Thu, 2 Jun 2022 17:54:32 +0200 Subject: [PATCH] Feat: add samba shares --- home.yml | 4 +-- roles/nfs_server/defaults/main.yml | 5 --- roles/samba_server/defaults/main.yml | 2 ++ roles/samba_server/handlers/main.yml | 6 ++++ roles/samba_server/tasks/debian.yml | 7 ++++ roles/samba_server/tasks/main.yml | 32 +++++++++++++++++++ .../samba_server/templates/smb_share.conf.j2 | 9 ++++++ roles/samba_server/vars/main.yml | 2 ++ vars/home.yml | 22 +++++++++++-- 9 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 roles/samba_server/defaults/main.yml create mode 100644 roles/samba_server/handlers/main.yml create mode 100644 roles/samba_server/tasks/debian.yml create mode 100644 roles/samba_server/tasks/main.yml create mode 100644 roles/samba_server/templates/smb_share.conf.j2 create mode 100644 roles/samba_server/vars/main.yml diff --git a/home.yml b/home.yml index 94a9583..9d9de89 100644 --- a/home.yml +++ b/home.yml @@ -39,8 +39,8 @@ name: nfs_server - name: Set up samba network shares - debug: - msg: Todo + include_role: + name: samba_server - name: Install docker debug: diff --git a/roles/nfs_server/defaults/main.yml b/roles/nfs_server/defaults/main.yml index 9401fdc..f9078ff 100644 --- a/roles/nfs_server/defaults/main.yml +++ b/roles/nfs_server/defaults/main.yml @@ -1,7 +1,2 @@ --- # defaults file for nfs_server -shares: - - mount_point: /media/nfs/default - server: test.lan - export: /test - options: defaults diff --git a/roles/samba_server/defaults/main.yml b/roles/samba_server/defaults/main.yml new file mode 100644 index 0000000..18d2828 --- /dev/null +++ b/roles/samba_server/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for samba_server diff --git a/roles/samba_server/handlers/main.yml b/roles/samba_server/handlers/main.yml new file mode 100644 index 0000000..10e4c2f --- /dev/null +++ b/roles/samba_server/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers file for samba_server +- name: restart smbd + service: + name: smbd + state: restarted diff --git a/roles/samba_server/tasks/debian.yml b/roles/samba_server/tasks/debian.yml new file mode 100644 index 0000000..1797f67 --- /dev/null +++ b/roles/samba_server/tasks/debian.yml @@ -0,0 +1,7 @@ +--- +- name: Debian - Install samba + apt: + name: + - samba + #- samba-common + state: present diff --git a/roles/samba_server/tasks/main.yml b/roles/samba_server/tasks/main.yml new file mode 100644 index 0000000..5930966 --- /dev/null +++ b/roles/samba_server/tasks/main.yml @@ -0,0 +1,32 @@ +--- +# tasks file for nfs_server +- name: Install os-specific packages + include_tasks: "{{ ansible_os_family | lower }}.yml" + +- name: Ensure directories to export exist + file: + path: "{{ item.path }}" + state: directory + with_items: "{{ samba_exports }}" + +- name: Include smb_share.conf + lineinfile: + dest: /etc/samba/smb.conf + backup: yes + line: "include = /etc/samba/smb_share.conf" + +- name: Copy exports file. + template: + src: smb_share.conf.j2 + dest: /etc/samba/smb_share.conf + owner: root + group: root + mode: 0644 + notify: restart smbd + +- name: Ensure samba is running. + service: + name: smbd + state: started + enabled: yes + when: samba_exports|length diff --git a/roles/samba_server/templates/smb_share.conf.j2 b/roles/samba_server/templates/smb_share.conf.j2 new file mode 100644 index 0000000..2f37e6c --- /dev/null +++ b/roles/samba_server/templates/smb_share.conf.j2 @@ -0,0 +1,9 @@ +{% for export in samba_exports %} +[{{ export.name }}] + comment = {{ export.comment }} + browseable = {{ export.browseable | default("yes")}} + public = {{ export.public | default("yes") }} + path = {{ export.path}} + writable = {{ export.writable | default("yes") }} +{% endfor %} + diff --git a/roles/samba_server/vars/main.yml b/roles/samba_server/vars/main.yml new file mode 100644 index 0000000..0772e8d --- /dev/null +++ b/roles/samba_server/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for samba_server diff --git a/vars/home.yml b/vars/home.yml index 31d983c..8fe0b21 100644 --- a/vars/home.yml +++ b/vars/home.yml @@ -6,13 +6,29 @@ ssh_publickey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB7aeBuq7TC8bRATkXa3QY4icPSz #ansible_become_pass: "{{ lookup('passwordstore', 'home/nas/admin')}}" + nfs_exports: - src: '/mnt/DocNas/Benjamin' allowedIP: '192.168.2.0/24' - options: 'rw,sync,no_root_squash' + options: 'rw,sync,all_squash,anonuid=998,anongid=100,no_subtree_check' - src: '/mnt/DocNas/Commun' allowedIP: '192.168.2.0/24' - options: 'rw,sync,no_root_squash' + options: 'rw,sync,all_squash,anonuid=998,anongid=100,no_subtree_check' - src: '/mnt/DocNas/Margot' allowedIP: '192.168.2.0/24' - options: 'rw,sync,no_root_squash' + options: 'rw,sync,all_squash,anonuid=998,anongid=100,no_subtree_check' + +samba_exports: + - name: Scans + comment: "Dépots des documents scannés" + browsable: 'yes' + public: 'yes' + writable: 'yes' + path: "/mnt/DocNas/Commun/Scans" + + - name: Margot + comment: "Documents de Margot pour accès depuis windows" + browsable: 'yes' + public: 'yes' + writable: 'yes' + path: "/mnt/DocNas/Margot"