Move an Octopus Deploy server from one machine to another

Hello,

We’re planning on moving our Octopus Deploy server from one machine to a different one (new IP, etc.).
Is there any docs I could follow?

My understanding is that all we need to do, is:

  1. Backup the database of the current Octopus server
  2. Stop the Octopus Server windows service on the current server
  3. Do a fresh install of Octopus on the new server
  4. Restore the backup on the new install

What I don’t know, is what will happen with the tentacles spread across the different servers in the company.

Will they “automagically” get a nudge from the new server, and adjust to use the new IP? Or do I need to manually update each tentacle? (we have close to 100 tentacles… Would be a huge pain)

I can see how that would be possible for “listening” tentacles, but would assume that for “polling” tentacles I’d have to manually update them. Is that correct?

Anyway, ideas are welcome.

NB. I did see this post Moving an Octopus Deploy server but given it’s from 2012, I thought I should ask again in case things changed since then.

Thanks,
Caio Proiete

Hi Caio,
Sounds like you are well versed on what to do! The steps you described should allow you to move servers with minimal downtime. Listening tentacles will just start talking to the new server as all certs will come across. As you noted however, polling tentacles add one bit of complication to the mix.

There are two ways you can update the polling tentacles to point to the new location.

  • Run the Tentacle.exe register-with command as found in the documenation
  • Manually change the tentacle.config file and update to the required IP address.

How many of the 100 tentacles are polling? If there are too many you could consider writing a one-off scripted command (run on just those polling tentacles) which invoke the tentacle.exe as appropriate. Keep in mind if you do go down this path they might then appear as offline until viewed from the new Octopus Deploy server. This also means that if the configuration was wrong you may need to change them manually since the original server may no longer be able to communicate.

Let me know how you go with this migration and if you land in any troubles.
Thanks again,
Rob

Hi Robert, thank you very much for your reply, that is exactly the information I was looking for.

I’ll give it a go with running a one-off scripted command on the polling tentacles, as you suggested. We have very few polling tentacles, so if the script doesn’t work, it won’t be too hard to manually fix the configuration if we have to. The upgrade of the listening tentacles is what is critical, and I’m glad it will happen automatically.

We’ll perform the move tomorrow (18th), so I’ll get back to you to let you know how it went.

Thanks again,
Caio Proiete

Hi Robert,

Following-up on the server move, I confirm it went as expected. Listening tentacles automatically picked up the new server and polling tentacles were updated with a one-off script before the move (went off-line after running the script, as expected, then worked fine when the new server went on-line).

Thank you for all your help. Was very useful.

Below are the full list of steps I had to go through, which might be helpful for someone else in the future:

  1. Backup the database of the current Octopus server
    1.1. Make sure you copy the master key somewhere, or you won’t be able to restore it on the new server
  2. Copy any binding information (HTTP/HTTPS) used as you will need to configure it again later (not restored as part of the backup)
  3. If using HTTPS in Octopus, make sure you have the certificate with the private key (or if possible, export from the old server including the private key)
  4. Stop and disable the Octopus Server windows service on the current server
  5. Do a fresh install of Octopus on the new server
  6. Restore the backup on the new install
  7. If using HTTPS in Octopus, import the SSL certificate (make sure it has a private key, or Octopus won’t recognize it)
  8. Configure all the bindings for HTTP, HTTPS, etc. as it was on the old server
  9. Update any DNS entries that were pointing to the old server, to point to the new server
  10. If using the Octopus as the NuGet repository for deployment packages
    10.1. Copy all the NuGet packages in the old server to the new server on the same folder

Thanks,
Caio Proiete