# File: roles/samba/tasks/main.yml --- - include_vars: "{{ item }}" with_first_found: - "os_{{ ansible_distribution }}.yml" - "os_{{ ansible_os_family }}.yml" - "default.yml" - name: Install Samba packages action: "{{ ansible_pkg_mgr }} pkg={{ item }} state=installed" with_items: - samba-common - samba - samba-client tags: samba - name: Install SELinux package action: "{{ ansible_pkg_mgr }} pkg=libsemanage-python state=installed" when: ansible_selinux - name: Make sure SELinux boolean settings are correct seboolean: name: "{{ item }}" state: yes persistent: yes with_items: - samba_enable_home_dirs - samba_export_all_rw when: ansible_selinux - name: Create Samba shares root directory file: state: directory path: "{{ samba_shares_root }}" owner: root group: root mode: '0755' when: samba_shares is defined tags: samba - name: Create share directories with_items: samba_shares file: state: directory path: "{{ item.path|default([samba_shares_root,item.name]|join('/')) }}" owner: root group: "{{ item.group|default('users') }}" mode: "{{ item.directory_mode|default('0775') }}" setype: "{{ item.setype|default('samba_share_t') }}" when: samba_shares is defined tags: samba - name: Check if /var/www/html exists when: samba_create_varwww_symlinks stat: path=/var/www/html register: var_www_html tags: samba - name: Create link to shares in /var/www/html when: var_www_html.stat.isdir is defined and var_www_html.stat.isdir == true file: state: link path: "/var/www/html/{{ item.name }}" src: "{{ item.path|default([samba_shares_root,item.name]|join('/')) }}" with_items: samba_shares tags: samba - name: Samba configuration template: dest: /etc/samba/smb.conf src: smb.conf.j2 validate: 'testparm -s %s' notify: - Restart Samba - Restart WinBind tags: samba - name: Start Samba service service: name: "{{ samba_service }}" state: started enabled: yes tags: samba - name: Start WindBind service service: name: "{{ winbind_service }}" state: started enabled: yes tags: samba - name: Create Samba users if they don't exist yet shell: > (pdbedit -L | grep {{ item.name }} 2>&1 > /dev/null) \ || (echo {{ item.password }}; echo {{ item.password }}) \ | smbpasswd -s -a {{ item.name }} with_items: samba_users when: samba_users is defined tags: samba