From our ansible playbook:

# Make --mkhomedir option work on Ubuntu/Debian
- name: Update /usr/share/pam-configs/mkhomedir
  copy:
    src: mkhomedir
    dest: /usr/share/pam-configs/mkhomedir
    owner: root
    group: root
    mode: 0644
    backup: yes

- name: Add pam_mkhomedir.so to /etc/pam.d/common-session
  lineinfile:
    path: /etc/pam.d/common-session
    state: present
    line: 'session required pam_mkhomedir.so skel=/etc/skel/'
    backup: yes


The contents of /usr/shar/pam-configs/mkhomedir should look like:

Name: Create home directory on login
Default: yes
Priority: 0
Session-Type: Additional
Session-Interactive-Only: yes
Session:
optional pam_mkhomedir.so

Hope this helps,

John