Hola,
Os comento una duda de diseño que tengo, a ver que soluciones se os ocurren (o ver si coinciden con las mías).
Estoy creando un role que debe instalar distintos profiles dependiendo del entorno (prod o devel).
El role se llama logstash (obvio lo que hace), y si el entorno es devel debería incluir el profile de sudo y rsync.
Mi primera solución era hacer un "subrole":
roles/logstash.pp
roles/logstash/devel.pp
logstash.pp es algo como esto:
classes roles::logstash {
contain ::profiles::logstash
}
En el devel.pp tener algo así:
classes roles::logstash::devel {
contain ::roles::logstash
contain ::profiles::rsync
contain ::profiles::sudo
}
Esto no me convence del todo. La otra solución sería heredar el role, con lo que devel.pp quedaría así:
classes roles::logstash::devel inherits roles::logstash {
contain ::profiles::rsync
Y la última solución, poner un *if* en logstash.pp (feo creo yo):
classes roles::logstash {
contain ::profiles::logstash
contain ::profiles::rsync
Otra solución sería crear un role distinto para devel, pero creo que eso es duplicar y penaliza la consistencia.
¿Me dejo alguna posible solución? ¿Con cuál os quedaríais vosotros? La del inherits es la que más me atrae.
Gracias.
Jordi.