Tartalomjegyzék

< Playbook

Ansible OpenLDAP

A célgépek

A célgépen szükség van python, python-apt csomagokra, és egy sudo jogú felhasználóra. A példában janos nevű felhasználó van megadva.

OpenLDAP szerver telepítése

Debian 9.9 rendszeren tesztelve.

Ha így telepítjük az OpenLDAP-t, az nem veszi fel a környezetében beállított tartománynevet, ezért ezt is megadtunk az alábbi példában.

ldapServer.yml
---
- name: LDAP szerver telepítése
  hosts: all
  become: true
  remote_user: janos
  vars:
    password: asdfg
    bind_dn: cn=admin,dc=zold,dc=and
    people_dn: ou=people,dc=zold,dc=and
    groups_dn: ou=groups,dc=zold,dc=and
  tasks:
  - name: Gépnév beállítása
    hostname: 
      name: gep.zold.and 
  - name: openldap jelszó beállítás
    debconf:
      name: "slapd"
      question: 'slapd/password1'
      value: "{{ password }}"
      vtype: password
  - name: openldap jelszó ismétlés
    debconf:
      name: "slapd"
      question: 'slapd/password2'
      value: "{{ password }}"
      vtype: password
  - name: openldap domain beállítás
    debconf:
      name: "slapd"
      question: 'slapd/domain'
      value: zold.and
      vtype: string

  - name: Csomagok telepítése
    apt:
      name: "{{ item }}"
      state: present
      update_cache: yes
    loop:
      - slapd
      - ldap-utils
      - python-ldap
  
  - name: people felvétele
    ldap_entry:
      dn: "{{ people_dn }}"
      objectClass:
        - organizationalUnit
      state: present
      server_uri: ldap://localhost/
      bind_dn:  "{{ bind_dn }}"
      bind_pw: "{{ password }}"

  - name: groups felvétele
    ldap_entry:
      dn: "{{ groups_dn }}"
      objectClass:
        - organizationalUnit
      state: present
      server_uri: ldap://localhost/
      bind_dn: "{{ bind_dn }}"
      bind_pw: "{{ password }}"

OpenLDAP kliens beállítása

Debian 9.9 rendszeren tesztelve.

ldapClient.yml
---
- name: LDAP azonosítás kliensen
  hosts: all
  become: true
  remote_user: janos
  vars:
    password: asdfg
    ldap_server_ip: 192.168.5.107
    base_dn: dc=zold,dc=and
    bind_dn: cn=admin,dc=zold,dc=and
  tasks:
  - name: Szükséges csomagok telepítése
    apt:
      update_cache: yes
      state: present
      name: "{{ packages }}"
    vars:
      packages:
        - libnss-ldap
        - ldap-utils
  - name: Felhaszlnálói könyvtár ekészítése
    lineinfile:
      dest: /etc/pam.d/common-session
      line: session optional	pam_mkhomedir.so skel=/etc/skel umask=077
      insertafter: EOF
  - name: Azonosítás az nsswitchben
    lineinfile:
      dest: /etc/nsswitch.conf
      regexp: "{{ item.pat }}"
      line: "{{ item.new }}"      
    with_items:
      - { pat: '^passwd:', 	new: 'passwd:		compat	ldap' }
      - { pat: '^group:', 	new: 'group:		compat	ldap' }
      - { pat: '^shadow:',	new: 'shadow:		compat	ldap' }

  - name: libnss-ldap.conf beállítása
    copy:
      backup: yes
      dest: /etc/libnss-ldap.conf
      content: |
        base {{ base_dn }}
        uri ldap://{{ ldap_server_ip }}/
        ldap_version 3
        rootbinddn {{ bind_dn }}
  - name: pam_ldap.secret beállítása
    copy:
      backup: yes
      dest: /etc/libnss-ldap.secret
      content: |
        {{ password }}
      mode: u+rw,g-rwx,o-rwx
  - name: Újraindítjuk az nscd szolgáltatást
    service:
      name: nscd
      state: restarted