¿Existe un método estándar de la industria para la composition de configuraciones desplegables usando submodules de git por rol?

Me gustaría build implementaciones complejas como composiciones de repositorys más pequeños.

Por ejemplo, podría implementar y administrar el server de administración como una installation de Oracle UIM, que me gustaría build sobre las funciones que configuran el server, instalar jdk, instalar weblogic, configurar un dominio básico y luego colocar UIM en ese astackr.

Puedo crear roles que cumplan con nuestras configuraciones estándar, que instalen el jdk, que instalen los binarys de weblogic, que instalen una configuration de dominio estandarizada, etc., pero que siempre necesitarán ajustes y abstracción.

¿Existe un estándar para configurar variables comunes que se utilizarán entre ellos, como {{install_user}} o {{DB_URL}}?

Si no, ¿alguien tiene buenas sugerencias para ayudar a mantener el layout en la pista en ausencia de un gerente de proyecto?

Tengo una configuration realmente compleja de aproximadamente 10 microservices y están usando toneladas de variables comunes y para las cuales he creado un rol separado con el nombre common_vars y solo tiene dos carpetas dentro de los defaults y las tasks , donde por defaults contiene todas las variables comunes y tasks tiene main.yml vacío e importo este rol como main.yml a todos mis otros roles de implementación de services para compartir las variables comunes.

 -- common_vars | |-- defaults | | `-- main.yml | `-- tasks | `-- main.yml 

Mis defaults/main.yml ven así (ejemplo mínimo, en realidad es realmente grande):

 --- ENVIRONMENT: "dev" COMMON_BASE_DIR: "/mydir" COMMON_WEB_DIR: "{{ COMMON_BASE_DIR }}/www" COMMON_LOG_DIR: "/var/log" COMMON_WEB_USER: "www-data" COMMON_WEB_GROUP: "www-data" common_ubuntu_packages: - git - vim - screen 

En mis otros roles meta/main.yml lo agrego como una dependencia como esta:

 --- dependencies: - common_vars