How best to manage build software on multiple build servers?
I run ten build servers, with mostly the same build tools (visual studio 2017, JDK, nodeJS, etc...) on them. However it's a manual process to go through them updating tools for new versions or installing additional tools when developers request them (today's example was, can I install dot net 4.7 targeting pack on all build server with 2015 build tools installed).
How can I do this without having to manually go on each box to install the tools? What centralized software management tool can I use to install tools remotely and keep an updated list of all software installed on my build servers?
Please sign in to leave a comment.
Hi Andy,
there are several possibilities.The first and most commonly used is to use virtualization. That way, you create an image, and TeamCity can simply fire up agents as required, all based on the images you have available, so you can set up a bunch of agents with the same setup by simply modifying one image. More info here: https://confluence.jetbrains.com/display/TCD10/Agent+Cloud+Profile
Another possibility is to use third party more general software that is able to distribute to several machines. I can't really give specific recommendations here, though as there are multiples and you would need to check those for yourselves.
A third possibility for some tools is to use the tool management subsystem integrated in teamcity. Does require some extra work to get it to work, but it's automatically distributed to all agents: https://confluence.jetbrains.com/display/TCD10/Installing+Agent+Tools
A last option would be to create a build configuration with the scripts for installing the tools and then running a custom build and selecting "run on all compatible agents". You can also use this option to add some configuration parameters if you want to do agent filtering and only distribute the tools to those agents not filtered out.