Hi, as part of my work as 'DevOps guy' at CCDC, I've been asked to provision the vsts agent on multiple operating systems.
This required adding support for macos and windows. (hence #37)
Given we use ubuntu 20.04 vms, we also needed a solution for #20
I thus decided to avoid using the installdependencies.sh script and used the ansible package module.
To decide what packages to install, I used a technique we've used successfully in other occasions, which is to load defaults variables based on Distribution, Distribution family, operating system, adding in version specific details. This creates a bit of file churn but makes it very easy to add a different distribution.
For windows, I found it easier to use chocolatey to install the agent, reducing a lot of the complexity in downloading and extracting the files.
I tested the changes using vagrant on:
Ubuntu 16.04, 18.04, 20.04 (couldn't test 14.04 as I had issues connecting via ssh to it) (using bento boxes)
Centos 7 (using bento boxes)
Debian 9 and 10 (using bento boxes)
MacOS 10.15 (using our internal vagrant box)
Windows 2019 server (using our internal vagrant box based on StefanScherer/packer-windows)
Hi, as part of my work as 'DevOps guy' at CCDC, I've been asked to provision the vsts agent on multiple operating systems. This required adding support for macos and windows. (hence #37) Given we use ubuntu 20.04 vms, we also needed a solution for #20
I thus decided to avoid using the installdependencies.sh script and used the ansible package module.
To decide what packages to install, I used a technique we've used successfully in other occasions, which is to load defaults variables based on Distribution, Distribution family, operating system, adding in version specific details. This creates a bit of file churn but makes it very easy to add a different distribution.
For windows, I found it easier to use chocolatey to install the agent, reducing a lot of the complexity in downloading and extracting the files.
I tested the changes using vagrant on: