--- # file: roles/ad-auth/tasks/sssd.yml - name: ensure sssd is installed apt: name="{{ item }}" state=installed with_items: - sssd - libpam-sss - libnss-sss - sssd-tools - realmd notify: - clear sssd cache tags: - sssd - packages - name: check if our realm is configured shell: realm list | grep "{{ domain }}" register: current_realms changed_when: "current_realms.rc != 0" failed_when: "current_realms.rc != 0 and current_realms.rc != 1" - block: - name: discover our realm command: realm discover -v "{{ domain }}" - name: get a kerberos ticket shell: echo "{{ lookup('passwordstore', 'samba-admin') }}" | kinit Administrator when: debian_version == "jessie" - name: ensure pexpect is installed apt: name=python-pexpect state=installed when: debian_version == "stretch" - name: get a kerberos ticket expect: command: kinit Administrator responses: "Password for Administrator@{{ domain.upper() }}": "{{ lookup('passwordstore', 'samba-admin') }}" when: debian_version == "stretch" - name: leave any other realm command: realm leave register: result until: "result.rc != 0" retries: 9001 delay: 0 failed_when: "result.rc != 0 and result.rc != 1" - name: join our realm command: realm join -v "{{ domain }}" notify: - clear sssd cache - restart sssd - name: destroy kerberos ticket command: kdestroy when: "current_realms.rc != 0" - name: ensure sssd is configured template: src=sssd.conf.j2 dest=/etc/sssd/sssd.conf owner=root group=root mode=0600 notify: - restart sssd - clear sssd cache tags: - sssd - config - name: ensure sssd is enabled and running service: name=sssd state=running enabled=yes tags: - sssd - service