Resolution
There are three ways to do this. We are showing for all the options how to do it for the JDK, but you can actually do it in the same way for other build tools like Maven.
Option 1: Use a Miscellaneous configuration container to push the build tools [Recommended option]
The way you can use a Miscellaneous configuration container to push tools from CJOC instance to the client controllers is explained on our Shared Configuration section.
Basically, you need to create a new Miscellaneous configuration container from Operations Center dashboard [New Item -> Miscellaneous configuration container].
Then, configure the tools you want to push on the Agents - I am showing how to do this with the JDK:
And now the JDK is pushed from CJOC to client controllers. As you can see at job level this build tool is available.
However, this feature needs Operations Center Context Plugin >= 1.7.1. If you are using CloudBees Jenkins Operations Center 1.580 base line, the feature was also backported to version 1.6.9 of the plugin. So you might need to upgrade this plugin to have available this feature.
Option 2: Define tool locations on shared agents from Node Properties->Inject Node Properties
You can specify the location of certain tools at shared node level, although you may prefer to use automatic tool installers instead, removing the need to configure each node separately. This approach is documented on our official documentation. To use this approach you need to do the following:
-
Define the Build tool in CJOC
https://<CJOC_URL>/configure
- In this example I am showing you how to do it with the JDK. -
Inject the tool location in the shared agent
Now, you need to define the Properties at shared node level. For this, go to the corresponded shared agent, then Properties -> Inject Node Properties -> Tools locations and select the tool you have defined in the previous section - 7u51 in this case.
-
Define the same tool name in client controller Global configuration
Tool Locations will add/update the tool locations. The required tool installers must be defined with the same names both on CJOC and on the client controllers to which agents will be leased.
Go to the client controller global configuration https://<CLIENT_CONTROLLER_URL>/configure
and in the JDK section define a JDK with the same name you did in section 1 and 2 - 7u51.
Now, in the client controller at job level the JDK we have defined is available on the path we specified at shared node level.
Note that this option requires to have installed at least -Operations Center Server Plugin_ >= 1.7.2
3. Define the build tool only at client controller level
This option is the less recommended because you not only need to define the tool location per node, but also need to define everything for each client controller. With the previous approach you are able to overwrite this from CJOC->shared agent.
For this option, you need to define the build tool location in the client controller global configuration https://<CLIENT_CONTROLLER_URL>/configure
.