Using Octopus Deploy to Build Machines

Hi,

What are your views on using Octopus to build machines. An example scenario would be to use an Octopus project to create a ‘web’ or ‘db’ server from a vanilla Windows Server Install.

So for a ‘db’ server there would be a project or step to install SqlServer on the server.

Is this a good use for Octopus? Or do you think that these kinds of concerns should already have been dealt with already.

I’d appreciate your thoughts, to help initiate discussion at work, so I don’t want to lead you with mine.

Thanks,
Tim

Hi Tim,

Thanks for reaching out.

Like you said, Octopus usually comes into play when the machine is already configured. If you wanna use Octopus for this, there’s a few things you should consider:

  • Octopus doesn’t handle reboots very well. And by “very well” I mean “at all”. The Octopus-Tentacle connection must be online through the whole deployment. So things that require reboots like .NET framework updates are out of the question.

  • Things like SQL Server usually take a while to get installed. Wouldn’t it be better to have different sets of “Vanilla” servers? Like “Vanilla IIS” (ready to be set as webserver) , “Vanilla SQL” (comes with SQL installed, but with no DB instances on it), “Vanilla build agent”, etc. In that case Octopus could help you running Powershell scripts that would do the last part of the configuration, like connecting the build agent to the build server or setting up the SQL instance on the server.

  • These Vanilla servers would have to have the Octopus Tentacle on them, otherwise they won’t be able to talk to the Octopus Server.

There’s a ton more things worth considering. If you’d like we could have a call and I could help you figure this out before you initiate that discussion at work. Feel free to select a time on the link below so that it gets locked on my calendar:

https://calendly.com/dalmirogranias

Best regards,
Dalmiro

I have setup Packer to build our base machine image in Teamcity.

You then probably want to use something like Terraform/Vagrant for VM creation (in Teamcity). For infrastructure installation use something like Chef.

Then to install all your octopus components from TeamCity use something like https://github.com/Aqovia/OctopusPuppet-TeamCity

We use chef and the IIS cookbook to get web servers to the point where they ready to be deployed with octopus.


https://supermarket.chef.io/cookbooks/octopus-deploy

I have been asked to investigate to see whether it is possible to have Octopus automate our VM builds to run overnight so the following morning we can have a fresh “as live” environment.
Our Infrastructure team currently use a modified version of this script to create the VMs - https://gist.github.com/RezaAmbler/9a5e0e97c7177d30b089

Our DBA team are working on automating the setup of SQL, and I need to get the VMs built and configured as the first step. I’m wondering how feasible this is. I was hoping someone has tried something similar and could give some advice.

Thanks,
Dan

Notice:

This issue has been closed due to inactivity. If you encounter the same or a similar issue and require help, please open a new discussion (if we asked for logs or extra details in this thread, consider including them in the new thread). If you are the creator of this thread and believe it should not be closed let us know via our support email.