[[oktatas:linux:konfiguraciokezeles:ansible:playbook|< Playbook]] ====== Ansible OpenLDAP ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2019 * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: http://szit.hu ===== 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. * python csomag telepítve * janos sudo joggal ===== 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. --- - 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. --- - 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