@installdoc/ansible-gas-station
Version:
An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤
87 lines (84 loc) • 2.8 kB
YAML
---
- name: Ensure group 'sambausers' exists
group:
name: sambausers
state: present
- name: Ensure configured users are added to the 'sambausers' group
user:
append: true
groups:
- sambausers
name: "{{ user.username }}"
loop: "{{ user_configs }}"
loop_control:
label: "{{ user.username }}"
loop_var: user
when: user.samba_user | default(false)
- name: Configure Samba file/printer sharing
blockinfile:
path: "{{ samba_config }}"
marker: "# {mark} ANSIBLE MANAGED BLOCK FOR PRINTER/FILE SHARING"
block: |
[ ]
allow hosts = {{ samba_allowed_hosts }}
{% if samba_printers %}
load printers = yes
{% endif %}
map to guest = bad user
netbios name = {{ samba_netbios_name }}
obey pam restrictions = yes
printing = CUPS
proxy = no
security = user
server role = standalone server
server string = Samba on %L
unix extension = no
wide links = yes
workgroup = {{ samba_workgroup }}
{% for share in (samba_shares | default([])) %}
[{{ share.id }}]
browsable = yes
comment = {{ share.comment }}
follow symlinks = {{ share.follow_symlinks | default('no') }}
guest only = {{ share.public | default('yes') }}
path = {{ share.path }}
public = {{ share.public | default('no') }}
{% if share.users is defined %}
valid users = {{ share.users }}
{% endif %}
writable = {{ share.writable | default('no') }}
{% endfor %}
{% if samba_printers %}
[ ]
browsable = yes
comment = Printers
path = /var/spool/samba/
printable = yes
public = yes
writable = no
[ ]
browsable = yes
comment = Printer drivers
path = /var/lib/samba/printers
public = yes
writable = no
{% for printer in (samba_printers | default([])) %}
[{{ printer.id }}]
comment = {{ printer.comment }}
path = /var/spool/samba/
printable = yes
printer name = {{ printer.name }}
public = {{ printer.public | default('yes') }}
writable = no
{% endfor %}
{% endif %}
when:
- samba_allowed_hosts is defined
- samba_netbios_name is defined
- samba_workgroup is defined
- (samba_shares is defined) or (samba_printers is defined)