roles/winbind: Configure Samba AD membership

The *winbind* role builds upon the *samba* role to configure the machine
as an Active Directory domain member.
jenkins-master
Dustin 2018-03-11 18:13:07 -05:00
parent 4546cffeba
commit 5570a94be3
9 changed files with 137 additions and 0 deletions

View File

@ -0,0 +1,6 @@
winbind_idmap_range: 16777216-33554431
winbind_nss_info: rfc2307
winbind_use_default_domain: true
winbind_offline_login: true
winbind_kerberos_method: secrets and keytab
winbind_refresh_tickets: false

View File

@ -0,0 +1,14 @@
# vim: set ft=gentoo-package-use :
# Dustin C. Hatch <dustin@hatch.name> (29 Oct 2017)
# Required for Active Directory support in Samba 4
net-dns/bind-tools gssapi
net-fs/cifs-utils ads upcall
net-fs/samba ads addns ldap winbind
net-fs/samba gnutls
net-nds/openldap minimal
net-nds/openldap sasl
sys-libs/ntdb python
sys-libs/talloc python
sys-libs/tdb python
sys-libs/tevent python

View File

@ -0,0 +1,4 @@
- name: restart winbind
service:
name={{ winbind_svc }}
state=restarted

View File

@ -0,0 +1,2 @@
dependencies:
- samba

View File

@ -0,0 +1,38 @@
- name: ensure winbind use flags are set
copy:
src=winbind.p-use
dest=/etc/portage/package.use/samba-winbind
mode=0644
when: ansible_distribution == 'Gentoo'
tags:
- portage-config
- name: ensure winbind package is installed
package:
name={{ winbind_pkg }}
state=present
tags:
- install
- name: ensure winbind is configured
template:
src=winbind.conf.j2
dest=/etc/samba/winbind.conf
mode=0644
owner=root
group=root
notify: restart winbind
- name: ensure winbind service starts at boot
service:
name={{ winbind_svc }}
enabled=yes
- name: ensure krb5.conf.d directory exists
file:
path=/etc/krb5.conf.d
mode=0755
state=directory
- name: ensure default kerberos realm is configured
template:
src=default-realm.krb5.conf.j2
dest=/etc/krb5.conf.d/default-realm.conf

View File

@ -0,0 +1,2 @@
[libdefaults]
default_realm = {{ krb5_realm }}

View File

@ -0,0 +1,43 @@
{#- vim: set ft=jinja : -#}
#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#
[global]
# turn on debugging
;debug = no
# turn on extended PAM state debugging
;debug_state = no
# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes
# authenticate using kerberos
krb5_auth = {{ 'yes' if winbind_krb5_auth else 'no' }}
# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
{% if winbind_krb5_auth %}
krb5_ccache_type = FILE
{% else %}
;krb5_ccache_type = FILE
{% endif %}
# make successful authentication dependend on membership of one SID
# (can also take a name)
;require_membership_of =
# password expiry warning period in days
;warn_pwd_expire = 14
# omit pam conversations
silent = yes
# create homedirectory on the fly
;mkhomedir = no

View File

@ -0,0 +1,26 @@
template homedir = /home/%U
template shell = /bin/bash
{% if winbind_idmap_backend is defined %}
idmap backend = {{ winbind_idmap_backend }}
idmap config * : backend = {{ winbind_idmap_backend }}
{% endif %}
idmap config * : range = {{ winbind_idmap_range }}
kerberos method = {{ winbind_kerberos_method }}
winbind nss info = {{ winbind_nss_info }}
winbind use default domain = {{ 'yes' if winbind_use_default_domain else 'no' }}
winbind offline logon = {{ 'yes' if winbind_offline_login else 'no' }}
winbind refresh tickets = {{ 'yes' if winbind_refresh_tickets else 'no' }}
{% if winbind_ignore_domains|d %}
winbind:ignore domains = {{ winbind_ignore_domains|join(' ') }}
{% endif %}
client ldap sasl wrapping = seal
dns proxy = no
domain master = no
local master = no
preferred master = no
os level = 0

View File

@ -0,0 +1,2 @@
samba_use_winbind: true
samba_security: ads