---

- include_tasks: install_{{ ansible_os_family }}.yml
  tags: always

- name: Deploy sssd config
  template: src=sssd.conf.j2 dest=/etc/sssd/sssd.conf owner=root group=root mode=0600
  register: sssd_config
  notify: restart sssd
  tags: auth

# On el8 for example, sssd is already installed and running on a default setup
# so we need to restart it now, so users are available (for eg, ssh authorized_keys setup)
- name: Restart sssd if needed
  service: name=sssd state=restarted
  when: sssd_config.changed
  tags: auth

- name: Ensure nsswitch is using sssd
  lineinfile:
    dest: /etc/nsswitch.conf
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
  with_items:
    - regexp: '^passwd:.*'
      line: 'passwd:     files sss'
    - regexp: '^shadow:.*'
      line: 'shadow:     files sss'
    - regexp: '^group:.*'
      line: 'group:      files sss'
  tags: auth

- name: Start and enable sssd service
  service: name=sssd state=started enabled=True
  tags: auth

- name: Start oddjobd
  service: name=oddjobd state=started enabled=True
  when: ansible_distribution != 'Debian' or ansible_distribution_major_version is version('9', '>=')
  tags: auth

- include_tasks: pam_{{ ansible_os_family }}.yml
  tags: always
