====== Creare un 389ds tramite Ansible - Rocky Linux 8.x o 9.x ====== \\ ===== Sulla macchina su cui verrà installato 389ds (nodo gestito) ===== * Installare una distribuzione a scelta tra RockyLinux e AlmaLinux 8 o 9 (selezione pacchetti: **minimal**) * Assegnare IP e nome DNS coerente (**__esempio__: host_ds389.infn.it **) * Eseguire gli update del sistema operativo (**dnf -y update**) * In caso di update del kernel eseguire anche un **reboot** \\ ===== Sul nodo da cui si intende eseguire il playbook ansible (nodo di controllo) ===== * Installare ansible. La versione minima di ansible installata deve essere **2.10**. dnf -y install ansible-core * Installare git dnf -y install git * Installare la collection: **community.general**: ansible-galaxy collection install community.general * Installare la collection: **ansible.posix**: ansible-galaxy collection install ansible.posix * Installare il ruolo ansible: **lvps.389ds_server**: ansible-galaxy install lvps.389ds_server **ATTENZIONE**: il ruolo esterno (lvps.389ds_server) aveva un bug che gli sviluppatori hanno corretto su github ma, **alla data del 10 gennaio 2024**, non ancora su ansible galaxy. Fino a che il repository non sara' stato aggiornato, pertanto, NON si deve installare la versione disponibile nel repository standard, ma e' necessario scaricare il ruolo direttamente da github: cd ~/.ansible/roles git clone https://github.com/lvps/389ds-server.git lvps.389ds_server * Scaricare il ruolo ansible: **389-ds-setup**: cd ~/.ansible/roles git clone https://baltig.infn.it/infn-aai/389-ds-setup.git (Il link a baltig con le note di installazione e configurazione del playbook ansible è: https://baltig.infn.it/infn-aai/389-ds-setup) * Creare una directory di lavoro che dovrà contenere i seguenti file: * host.pem: * host.key: * host.keytab: * playbook.yml: * inventory: Esempio del file **playbook.yml**: - name: Configure 389 DS on xxx hosts: xxx roles: - role: 389-ds-setup dirsrv_rootdn_password: dirsrv_tls_cert_file: host.pem dirsrv_tls_key_file: host.key dirsrv_keytab_file: host.keytab * Esempio del file **inventory**: [xxx] xxx..infn.it * Eseguire il playbook ansible: E' consigliabile configurare preventivamente lo scambio di chiavi tra la macchina che lancia il playbook e la macchina da configurare. Posizionarsi nella directory di lavoro contenente il playbook, l'inventory e gli altri file citati in precedenza e lanciare il playbook: ansible-playbook -u root -i inventory playbook.yml \\ ===== Accesso a 389ds ===== Collegarsi sulla macchina tramite cockpit sulla porta 9090 con l'utente root http://nomemacchina.dominio:9090 e selezionare 389Directory Server ===== Comunicare il nuovo DS al gruppo AAI ===== Affinchè l'LDAP appena installato venga popolato con i dati di AAI è necessario inviare un mail a: aai-support@infn.it Il mail dovrà contenere: - il nome del nuovo server - il ramo locale o i rami locali che volete vengano copiati e sincronizzati sul vostro server - la password del Directory Manager (ovviamente dopo la sicronizzazione dovrete cambiarla) ===== Reset password Directory Manager ===== E' necessario determinare il nome dell'istanza del DS389 Eseguire: # ls -F /etc/dirsrv/ | grep slapd Esempio # ls -F /etc/dirsrv/ | grep slapd slapd-ds2 L'istanza è: slapd-ds2 Per effettuare il reset della password del Directory Manager eseguire: dsconf "istanza" directory_manager password_change ===== "BRASARE" 389-ds ===== Se durante l'installazione/configurazione del 389ds qualcosa dovesse andar storto e si vuole ricominciare da zero si può utilizzare la seguente procedura per ripulire il sistema da tutti i residui dell'installazione precedente, prima di rilanciare il playbook: cd ~ systemctl stop dirsrv@${DSUID}.service systemctl disable dirsrv@${DSUID}.service systemctl daemon-reload dnf -y remove "389*" epel-release rm -rf /etc/dirsrv /var/lib/dirsrv /var/log/dirsrv /usr/lib64/dirsrv /usr/share/dirsrv /var/lock/dirsrv /etc/sysconfig/dirsrv* /usr/src/389ds-krb5-plugin /etc/tmpfiles.d/dirsrv* /etc/systemd/system/dirsrv* /etc/systemd/system/multi-user.target.wants/dirsrv*