Need some suggestion

Hi Ansible Gurus,

I need some help for some framework designing based on Ansible. I have many components and i have maintained ansible role for each component deployment in common project.
Means all components installation/configuration managed by that common project .

I wanted to bring a framework , that rather than keep all component roles in a single common project , distribute each component installation/configuration (role) to individual component git repos, so that whenever component changes its actual application code base, it can change corresponding Ansible code also in same repo if required.
So common project (a big molecule) will be spilitted and still some common operations/cross cutting features i want to maintain in common project only which can be applied on all components.

So i need some kind of Interface between common project Ansible code and all other components ansible codes.

How can i achieve this ?
Any suggestion is welcomed, its more like a design problem if one wants to manage multiple component installation/configuration . So which is better approach

  1. Maintaining all components installation/configuration Ansible roles in single project
  2. Have only common cross cutting operations in single or common project and distribute component specific code to individual component code repo and then interface between Common project Ansible code and individual component ansible code some how.

Did anyone came across such design problems ?

Regards
Rahul

Guys any help on this ?

Not yet apparently, but given that this list is run by volunteers and
it's Easter holidays that shouldn't come as a surprise.

Thanks Dick , would you like to suggest some thing on this ?

Rahul

Thanks Dick , would you like to suggest some thing on this ?

Rahul

Your request is rather theoretical. I would add some use cases to increase chances on (sensible) answers.

Regards
          Racke

THanks Racke , I would be waiting for same !

Rahul

Any update on this ? Hope this question is still alive and not lost?

Rahul

Any update on this ? Hope this question is still alive and not lost?

I think you misunderstood me, so as long as you don't offer more concrete information / use cases this thread
is pretty dead from my point of view.

Regards
         Racke

THis is theoretical question only , I am trying to make some ansible based framework which manages deployments of many applications.

Lets see if i can explain , if not I am sorry :I have 10 applications. All 10 applications can be installed and configured using ansible via a common monolithic github project which contains 10 roles , one for each application installation and configuration.
Now actual application code for each application is maintained in 10 different repository of github.
But installation and configurations of all applications are there in single project as i mentioned in first line.

Now I want to break this monolithic picture and want to move ansible related code of each and each application to individual application code repos. So that whenever some application feature comes, one can enhance its ansible code in same repo (which has both Application code+ Ansible code).

Now at the same time , i want to maintain some ansible code in Common monolithic project also which can be applied on all applications , so no meaning of duplicating this code in individual application github repo.
Example of such common code: My All 10 applications requires deployment in JBOSS server or any other server. So i want to maintain all JBOSS configuration related tuning etc. in common monolithic code.

Hence in order to deploy my application , i need both Application code github repo( java code+ ansible code) and common monolithic github project (because deployment in server is managed through this common project).
Hence i need to create some interface between this common project and application specific project , how can i do that ?

If you are looking to break your application roles up into some sort of micro service: I would suggest looking at Ansible plugin for Jenkins and configure a pipeline with choces, based on these it will callthe roles, or you can have a pipeline for each role with a downstream from the main pipeline.