Workflow Automation with IAC tools

Hello Everyone,

I ask for your helps because I am quite stuck since days :’(.

I am working on a proof of concept, linking a cmdb (like cmdbuild) to IAC tools (like ansible tower).

I saw that cmdbuild come with one orchestrator, River or Shark workflow engine.
So i would like to use them to do so.

To write a new process with have to use xpdl format.
I just discover that format so I am not an expert on it, but from what I understood/read, it is possible to add external process’ call inside workflow.
To do so, an application need to be add inside package passing by extended attributes and ToolAgentClass.

Have someone done something similar or am i following a false lead ?
Am I trying to hack workflow engine purpose ?
If not, do you have some basic examples ?

I can not find any documentation related to that with River workflow engine.
So I am stuck with Shark workflow engine which seem to be an old version 4.4-1 (release in 2012).

Is Shark engine still a good choice or is it encouraged to use River engine ?

Kind regards,

Please, read about Rundeck for automation IT tasks. You can run it, from widget or workflow.

Thanks for your answer,
Have you got any documentations/example describing Rundeck integration ?
I can not find anything on cmdbuild website.

@tecnoteca: Have you got any documentation related to Rundeck integration ? What is your recommendation ?

No I’m sorry, we have no documentation on this.
However, both CMDBuild and Rundeck have a REST webservice, and it is therefore possible to create an external client that implements the communication between the two systems.

Thanks a lot for your answer but I am quite confused.

From what said @pavel.kuznetsov, i’m throught we do not need any external client, as it seem we could trigger it directly from widget or workflow.

From my point of view, It seem to be quite overkill to create an external client to work as webhook’s boilerplate.
Am I missing something ?

I wanted to use ansible-tower to run some automated tasks, do you think i can call it directly from cmdbuild or should i keep rundeck as an abstraction layer ?

How can I secure rundeck trigge with cmdbuild user ?
Is it possible to share authentication with a sso or openIDConnect/IdP mecanism ?

Thanks a lot for your helps,

Kind regards,

Thanks a lot, @pavel.kuznetsov

I finally had success to use form trigger to post request.

If someone else is looking for something similar, here is an exemple.
It is still a draft but I hope that could help.

Code for “Create new form trigger” from class object :

Ext.Ajax.request({
    url: '< URL >',
    method: 'POST',
    timeout: 60000,
    headers:
    {
        'Authorization' : auth
    },
        success: function (response) {
            
        Ext.Msg.alert('Status', 'Request Success ');
    },
        failure: function (response) {
        Ext.Msg.alert('Status', 'Request Failed ' + response.responseText);
    }
});

for (const element of arguments) {
  console.log("Code: ", element.record.data.Code);
  console.log("Description: ", element.record.data.Description);
}