2021-06-18 01:09:45 -04:00
|
|
|
---
|
|
|
|
- hosts: fs00
|
|
|
|
# TODO: add more users
|
|
|
|
vars:
|
|
|
|
users:
|
|
|
|
- ctdalek
|
|
|
|
- regular1
|
|
|
|
tasks:
|
|
|
|
- name: setup networking
|
|
|
|
import_role:
|
|
|
|
name: ../roles/network_setup
|
|
|
|
vars:
|
|
|
|
ipv4_addr: "{{ fs00_ipv4_addr }}"
|
|
|
|
- name: install NFS packages
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
loop:
|
|
|
|
- nfs-kernel-server
|
|
|
|
- rpcbind
|
|
|
|
# TODO: put this in an Ansible role
|
|
|
|
- name: install LDAP packages
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
loop:
|
|
|
|
- libnss-ldapd
|
|
|
|
- ldap-utils
|
|
|
|
- name: stop and disable nscd
|
|
|
|
systemd:
|
|
|
|
name: nscd
|
|
|
|
state: stopped
|
|
|
|
enabled: no
|
|
|
|
- name: copy ldap.conf
|
|
|
|
template:
|
|
|
|
src: ../auth1/ldap/ldap.conf.j2
|
|
|
|
dest: /etc/ldap/ldap.conf
|
|
|
|
notify:
|
|
|
|
- restart nslcd
|
|
|
|
- name: add member->uniqueMember map
|
|
|
|
lineinfile:
|
|
|
|
line: map group member uniqueMember
|
|
|
|
path: /etc/nslcd.conf
|
|
|
|
notify: restart nslcd
|
2021-06-26 19:03:26 -04:00
|
|
|
- name: specify URI in nslcd.conf
|
|
|
|
replace:
|
|
|
|
path: /etc/nslcd.conf
|
|
|
|
regexp: '^uri .*$'
|
2021-06-26 19:06:36 -04:00
|
|
|
replace: "uri ldap://ldap1.{{ base_domain }}"
|
2021-06-26 19:03:26 -04:00
|
|
|
notify: restart nslcd
|
2021-06-18 01:09:45 -04:00
|
|
|
- name: copy nsswitch.conf
|
|
|
|
copy:
|
|
|
|
src: ../auth1/ldap/nsswitch.conf
|
|
|
|
dest: /etc/nsswitch.conf
|
|
|
|
notify: restart nslcd
|
|
|
|
- name: create /users directory
|
|
|
|
file:
|
|
|
|
path: /users
|
|
|
|
state: directory
|
|
|
|
mode: 0755
|
|
|
|
- name: create skel directory
|
|
|
|
file:
|
|
|
|
path: /users/skel
|
|
|
|
state: directory
|
|
|
|
mode: 0755
|
|
|
|
- name: add files to skel directory
|
|
|
|
copy:
|
|
|
|
src: "{{ item }}"
|
|
|
|
dest: /users/skel/
|
|
|
|
with_fileglob:
|
|
|
|
- "/etc/skel/.*"
|
|
|
|
- meta: flush_handlers
|
|
|
|
- name: create home directories for users
|
|
|
|
shell:
|
2021-06-26 19:03:26 -04:00
|
|
|
executable: /bin/bash
|
2021-06-18 01:09:45 -04:00
|
|
|
cmd: |
|
2021-06-26 19:03:26 -04:00
|
|
|
shopt -s dotglob
|
2021-06-18 01:09:45 -04:00
|
|
|
mkdir -p /users/{{ item }}
|
2021-06-26 19:03:26 -04:00
|
|
|
cp /users/skel/* /users/{{ item }}/
|
2021-06-18 01:09:45 -04:00
|
|
|
chown -R {{ item }}:{{ item }} /users/{{ item }}
|
|
|
|
warn: false
|
|
|
|
loop: "{{ users }}"
|
|
|
|
- name: export /users directory
|
|
|
|
lineinfile:
|
|
|
|
path: /etc/exports
|
|
|
|
line: >-
|
|
|
|
/users {{ ipv4_subnet }}(sec=sys,rw) phosphoric-acid.{{ base_domain }}(sec=sys,rw,no_root_squash) cobalamin.{{ base_domain }}(sec=krb5p,rw)
|
|
|
|
notify:
|
|
|
|
- export all
|
|
|
|
- restart nfs-server
|
|
|
|
- name: disable NFSv4
|
|
|
|
# see https://unix.stackexchange.com/questions/205403/disable-nfsv4-server-on-debian-allow-nfsv3/289324
|
|
|
|
replace:
|
|
|
|
path: /etc/default/nfs-kernel-server
|
|
|
|
regexp: '^RPCNFSDCOUNT=.*$'
|
|
|
|
replace: 'RPCNFSDCOUNT="8 --no-nfs-version 4"'
|
|
|
|
notify:
|
|
|
|
- restart nfs-server
|
|
|
|
- name: install Kerberos packages
|
|
|
|
apt:
|
|
|
|
name: krb5-user
|
2021-06-26 19:03:26 -04:00
|
|
|
- name: copy krb5.conf
|
|
|
|
template:
|
|
|
|
src: ../auth1/kerberos/krb5.conf.j2
|
|
|
|
dest: /etc/krb5.conf
|
2021-06-18 01:09:45 -04:00
|
|
|
- name: add NFS server principal
|
|
|
|
command:
|
|
|
|
cmd: kadmin -p sysadmin/admin
|
|
|
|
stdin: |
|
|
|
|
krb5
|
|
|
|
addprinc -randkey nfs/{{ ansible_fqdn }}
|
|
|
|
ktadd nfs/{{ ansible_fqdn }}
|
|
|
|
creates: /etc/krb5.keytab
|
|
|
|
notify: restart nfs-server
|
|
|
|
handlers:
|
|
|
|
- name: export all
|
|
|
|
command: exportfs -ra
|
|
|
|
- name: restart nfs-server
|
|
|
|
systemd:
|
|
|
|
name: nfs-server
|
|
|
|
state: restarted
|
|
|
|
- name: restart nslcd
|
|
|
|
systemd:
|
|
|
|
name: nslcd
|
|
|
|
state: restarted
|