User Tools

Site Tools


cn:ccr:aai:howto:how_to:rockylinux8-ansible-ds389

Creare un 389ds tramite Ansible - Rocky/Alma 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:
<del>ansible-galaxy install lvps.389ds_server</del>

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: <certificato pubblico del server da configurare> 
* host.key: <chiave privata del certificato> 
* host.keytab: <kerberos keytab del server da configurare>
* playbook.yml: <playbpok in formato yaml da passare ad ansible per la configurazione del server>
* inventory: <file di inventory ansible in cui specificare l'indirizzo dell'host da configurare>

Esempio del file playbook.yml:

- name: Configure 389 DS on xxx
  hosts: xxx
  roles:
    - role: 389-ds-setup
      dirsrv_rootdn_password: <password-del-389ds-da-configurare>
      dirsrv_tls_cert_file: host.pem
      dirsrv_tls_key_file: host.key
      dirsrv_keytab_file: host.keytab
  • Esempio del file inventory:
[xxx]
xxx.<sede>.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:

  1. il nome del nuovo server
  2. il ramo locale o i rami locali che volete vengano copiati e sincronizzati sul vostro server
  3. 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* 
cn/ccr/aai/howto/how_to/rockylinux8-ansible-ds389.txt · Last modified: 2024/03/27 09:54 by enrico@infn.it

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki