[[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