My company uses NuGet and Octopus Deploy to deploy custom .NET apps and IIS config packages from TFS to Windows servers. There are also quite a few linux servers that I manage with salt that are also part of the dev environment. These are composed of mostly CentOS 6.4 VMs running apps like Drupal 7, MariaDB/mysql, MongoDB, and RabbitMQ. I use salt to deploy application packages as we as configuration to these boxes. I store most of these custom RPMs, config data, and .sls files in our TFS server and use git-tf to sync up TFS with my salt master and then blow out the data to the various dev/stage/qa/perf environments. As of now we have two separate deployment processes for Windows and linux, Octopus Deploy and salt.
I am looking for a way to integrate the two, ideally doing something like using Octopus Deploy to push out targeted deployments to various linux servers based on their role and environment. Since octopus does not yet have a tentacle agent for linux, I was thinking of either using an ssh library via powershell to ssh into my salt master under a restricted user to execute salt state commands or maybe use the salt web API to do something similar via powershell. I also considered trying something with NuGet under mono directly on linux but that also still feels awful kludgy though.
Has anyone done anything similar to get a unified development deployment process for both Windows and Linux? Any other ways to skin this cat? Using TFS/Nuget/Octopus on the Windows side is non-negotiable, but what tools I use on the linux side is much more flexible.
Thanks