Recommendations for Standing Up Test to Prod Environment for Upgrade

Hi Octopus Support,

Do you have any recommendations for standing up a Test to Production environment to ensure a smooth upgrade of Octopus?

Basically, we want replicate an equivalent build structure and keep variables in tact between both environments, so when we upgrade the test server, we have a clear understanding of what the Production upgrade will look like. As of now, it is not a mirror and (as my colleagues have explained) previous upgrades here have been very manual and laborious.

Unfortunately, we cannot use a cloud solution due to security reasons, so we are just looking to get recommendations on creating the best upgrade process for our developers. We are currently on Octopus v2018.4.7

Thanks,

Alex

I understand this is a big question requiring a lot of components, but if anyone has done an upgrade in Octopus (first in their TEST environment, then PROD), do you have recommendations for mirroring the environments? Duplicating settings?

Hi Alex,

I really have to apologise, I totally missed this question when you first asked for it.

The only real way to do this testing at the moment is to perform a full clone of your production Octopus Server, then perform a test upgrade. I’ll brake this down by steps below

  1. Backup you current Production Octopus Database
  2. Restore database to the test environment
  3. Install the same Octopus version as Production, and point it at your Test database
  4. You will need your Master Key here, this is good practice for DR as well
  5. Copy all of your on disk files from Production to Test (exclude Octopus.Server.config)

This is where it differs depending on your environment. If you have a firewall between your Test and Production environments then you will be safe at this point as your Octopus Server won’t be able to communicate with your Tentacles. If, however, traffic can get to your Tentacles you will need to be very careful as they will automatically trust any deployments coming from your Test server as it will identify the same.

If this is the case (and I would recommend it for both approaches really) then I would recommend setting up some scripts to remove your production deployment targets (Tentacles, SSH targets, Cloud targets et al) and replacing them with some Test targets for deployment testing.

Once you have this environment online as a duplicate of Production you can upgrade this instance and perform the required verification testing.

Let me know if you have any further questions or need more information on any given step in this process,

Regards,
Alex