I have been tasked with the mission to setup development pipelines in a predominant Windows environment, using mainly Devops Server 2019.
I personally come from a strong Linux background, and been building pipelines and development lifecycle systems for enterprise corporations in the linux world, using jenkins, laravel forge, travis-ci and later on kubernetes and OpenShift etc.
When setting this up in such a world we used to provision linux machines using red hat satellite with a custom centOS image. All application were using ansible during deployment and each application would install its own dependencies like correct java version, or GO version, and manage things like opening local firewall ports, set up its own user/groups and its service etc.
Since centOS has yum as a packet manager, all servers where directed to use the redhat satellites repository as a central repository which made governance of allowed 3rd party installed packages easy.
So my question is, how is this done in a Windows world? Or is all done manually?
Windows has the "chocolatey" packet manager but is that widely used? Ansible doesn't seem to be used, because it looks like its very complicated to set up windows to use ssh.
Im working in an environment where most applications are old .NET framework applications, but they do have a Devops 2019 server. And Devops 2019 has some infrastructure as code, managed using yaml files, but nothing is mentioned there if i'd like to install a specific .NET framework version etc.
So my question is, how is infrastructure as code, and dependencies handled in the Windows world except for Nuget for application 3rd party libraries.