| {%- from "linux/map.jinja" import auth with context %} |
| |
| {%- if auth.enabled %} |
| |
| {%- if auth.get('ldap', {}).get('enabled', False) %} |
| {%- from "linux/map.jinja" import ldap with context %} |
| |
| {%- if grains.os_family == 'Debian' %} |
| |
| linux_auth_debconf_libnss-ldapd: |
| debconf.set: |
| - name: libnss-ldapd |
| - data: |
| libnss-ldapd/nsswitch: |
| type: 'multiselect' |
| value: 'group, passwd, shadow' |
| libnss-ldapd/clean_nsswitch: |
| type: 'boolean' |
| value: 'false' |
| - require_in: |
| - pkg: linux_auth_ldap_packages |
| |
| linux_auth_debconf_libpam-ldapd: |
| debconf.set: |
| - name: libpam-ldapd |
| - data: |
| libpam-ldapd/enable_shadow: |
| type: 'boolean' |
| value: 'true' |
| |
| {#- Setup mkhomedir and ldap PAM profiles #} |
| linux_auth_mkhomedir_config: |
| file.managed: |
| - name: /usr/share/pam-configs/mkhomedir |
| - source: salt://linux/files/mkhomedir |
| - require: |
| - pkg: linux_auth_ldap_packages |
| |
| linux_auth_pam_add_profile: |
| file.managed: |
| - name: /usr/local/bin/pam-add-profile |
| - source: salt://linux/files/pam-add-profile |
| - mode: 755 |
| |
| linux_auth_pam_add_profiles: |
| cmd.run: |
| - name: /usr/local/bin/pam-add-profile ldap mkhomedir |
| - unless: "debconf-get-selections | grep libpam-runtime/profiles | grep mkhomedir | grep ldap" |
| - watch: |
| - file: linux_auth_mkhomedir_config |
| - require: |
| - file: linux_auth_pam_add_profile |
| - pkg: linux_auth_ldap_packages |
| |
| {%- elif grains.os_family == 'RedHat' %} |
| |
| linux_auth_config: |
| cmd.run: |
| - name: "authconfig --enableldap --enableldapauth --enablemkhomedir --update" |
| - require: |
| - pkg: linux_auth_ldap_packages |
| |
| {%- else %} |
| |
| linux_auth_nsswitch_config_file: |
| file.managed: |
| - name: /etc/nsswitch.conf |
| - source: salt://linux/files/nsswitch.conf |
| - template: jinja |
| - mode: 644 |
| - require: |
| - pkg: linux_auth_ldap_packages |
| - watch_in: |
| - service: linux_auth_nslcd_service |
| |
| {%- endif %} |
| |
| linux_auth_ldap_packages: |
| pkg.installed: |
| - pkgs: {{ ldap.pkgs }} |
| |
| linux_auth_nslcd_config_file: |
| file.managed: |
| - name: /etc/nslcd.conf |
| - source: salt://linux/files/nslcd.conf |
| - template: jinja |
| - mode: 600 |
| - require: |
| - pkg: linux_auth_ldap_packages |
| - watch_in: |
| - service: linux_auth_nslcd_service |
| |
| linux_auth_nslcd_service: |
| service.running: |
| - enable: true |
| - name: nslcd |
| |
| {%- endif %} |
| |
| {%- endif %} |