====== Confluent ======
===== Distribuciones y profiles =====
Actualmente (por los comandos que están en la siguiente sección)hay **cuatro** profiles principales en uso:
- RedHat 8.6 (rhel-8.6-x86_64-default): Usado en los nodos de **login** (snmgt01, snmgt02) y los nodos de **visualización** (vlmgt01, vlmgt02; es posible que estos no estén bien instalados).
- RedHat 8.8 Diskless CPU (rhel-8.8-x86_64-diskless-cpu): Usado en los **nodos de cómputo exclusivos para CPU** (cn075-cn080).
- RedHat 8.8 Diskless GPU (rhel-8.8-x86_64-diskless-gpu): Usado en los **nodos de cómputo con GPU** (cn001-cn074). Puede que haga falta modificar simultáneamente este perfil y el de CPU para que sea limpio.
- Lenovo Distributed Storage Solution for IBM® Storage Scale™ (DSS-G) 4.5A (dssg-standard-4.5a): Usado en los **nodos de quorum de GPFS/IBM Storage Scale** (sdmgt01, sdmgt02). Seguramente acá esté toda la config persistente de GPFS.
Los **nodos de management** (mmgt01, mmgt02) no tienen definidos profiles, pero sí tienen su propio node en confluent. Habría que mirarlo bien con la documentación.
===== Ideas básicas =====
Las distribuciones y perfiles se pueden listar con osdeploy:
# osdeploy list
Distributions:
rhel-8.6-x86_64
rhel-8.8-x86_64
Profiles:
dssg-standard-4.5a
genesis-x86_64
rhel-8.6-x86_64-default
rhel-8.8-x86_64-diskless-cpu
rhel-8.8-x86_64-diskless-gpu
Los perfiles que están armados en los headnodes se pueden encontrar en el directorio /var/lib/confluent/public/os/:
$ ls /var/lib/confluent/public/os
dssg-standard-4.5a genesis-x86_64 rhel-8.6-x86_64-default rhel-8.8-x86_64-diskless-cpu rhel-8.8-x86_64-diskless-gpu
Las distribuciones en /var/lib/confluent/distributions:
$ ls /var/lib/confluent/distributions/
rhel-8.6-x86_64 rhel-8.8-x86_64
Con nodeattrib se puede ver cuál imagen usa cada nodo:
# nodeattrib snmgt01 | grep deployment.profile
snmgt01: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib snmgt02 | grep deployment.profile
snmgt02: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib sdmgt01 | grep deployment.profile
sdmgt01: deployment.profile: dssg-standard-4.5a
# nodeattrib sdmgt02 | grep deployment.profile
sdmgt02: deployment.profile: dssg-standard-4.5a
# nodeattrib vlmgt01 | grep deployment.profile
vlmgt01: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib vlmgt02 | grep deployment.profile
vlmgt02: deployment.profile: rhel-8.6-x86_64-default
# nodeattrib cn064 | grep deployment.pendingprofile
cn064: deployment.pendingprofile: rhel-8.8-x86_64-diskless-gpu
# nodeattrib cn080 | grep deployment.pendingprofile
cn080: deployment.pendingprofile: rhel-8.8-x86_64-diskless-cpu
También tiene otros atributos, deployment.pendingprofile y deployment.stagingprofile. La documentación dice:
deployment.pendingprofile
An OS profile that is pending deployment. This indicates to the network boot subsystem what should be offered when a potential network boot request comes in
deployment.profile
The profile that has most recently reported completion of deployment. Note that an image may opt to leave itself both current and pending, for example a stateless profile
would be both after first boot.
(...)
deployment.stagedprofile
A profile that has been staged, but is awaiting final boot to be activated. This allows an OS profile to remove itself from netboot without indicating completion to any
watcher.
Esto seguramente sea relevante para el deployment de perfiles nuevos, de hecho los nodos de cómputo están con pendingprofile.
===== Scripts =====
Los perfiles tienen scripts de inicio en /var/lib/confluent/public/os/(...)/ preboot.d onboot.d y postboot.d
Se pueden aplicar cambios usando bash normalmente, para forzar el deploy hay que ejecutar
nodeapply --scripts=post.d/scriptname