I am looking for the best practice to develop the following scenario:
I have a BigFix server on a machine A and a BigFix WebReports on machine B.
I have a web report which lists all machines in my BigFix environment.
I have a fixlet or task which is relevant for all machines in my BigFix environment.
I want a button close to a machine name that takes a default action of the fixlet/task on the machine.
I need an advice what the best design is to create the solution.
My idea is to install Server API on the WebReports machine and use perl to connect to the BigFix server and then trigger an action of my fixlet/task.
If that way is correct, how shell I call the perl script from the web page/java script? Is the WebReports server configured to support something like CGI or execution of external binaries? Maybe WebReports supports taking actions in a similar way as retrieving data from analyses with the <?relevance> tag? Or maybe there is a better way to do it?
I would appreciate it if someone could share a link to the end-to-end sample of the solution or any hints or documentation. I am most interested in how to call Server API from a BigFix Web Report.
Unfortunately, Web Reports is not a bonafide app server. It cannot host some application code for you such as Perl, Java, PHP, etc.
So you can use the same computer running Web Reports to host your application code, but it won’t be the Web Reports process itself.
There are 2 Server APIs available. The first is Microsoft COM based in version 8.x. In version 9.0, the REST API was introduced. So you need to decide what API to use as it will limit the technology available to run the application code.
“Bricks” uses an architecture that you are asking about. It won’t be a good hello-world end-to-end example, but there is an architectural diagram that might be useful.
Bricks in BigFix Lab
So maybe a better solution would be a “bridge” server (Java HTTP Servlet or a REST server) which connects the BigFix server using a perl back end.
I could use ajax in my custom web report to access the bridge server. There may be an issue with cross-domain scripting but jQuery should do the trick.
The perfect solution would be deploying the “bridge” server inside the Web Reports web server. However in that case I would have to develop the bridge in C#, wouldn’t I?