Host Octopus 3 on Autoscale EC2

(stephanie.gooch) #1

Hi, I am trying to setup an autoscaling version of octopus 3 in AWS.
I have a singular server that can run it but i want to make it highly avalible.

I have attached 2 servers with it installed and sharing the master key but if i made changes in one box they dont show up in the other. Has anyone else done this or has any ideas how too? Also any ideas on the shared storage issue?

thanks
steph

(Michael Richardson) #2

Hi Stephanie,

Have you seen our High Availability documentation?

if i made changes in one box they dont show up in the other

This sounds like your servers are not pointing at the same database? When you install Octopus on an additional node, you need to configure it to use the same database (and the same master-key, as you mention).

The documentation linked above does address shared-storage, but not regarding AWS specifically. This blog post may be of interest to you.
It’s author is now one of my esteemed Octopus colleagues, so if you have further questions, let me know and I’m sure he can assist.

Please keep us updated with your progress?

Regards,
Michael

(stephanie.gooch) #3

Hi Michael,

Thanks for replying.

They are pointing to the same database and using the same login information as the boxes are setup using the same image with the same information. I think it was not showing it automatically on the site but when I show empty groups it pops up.

Could you suggest any tests that would be good to see if these servers are working together?

Thanks

Steph

(Michael Richardson) #4

Steph,

If you view Configuration -> Nodes (as shown here), you should see each of your machines listed as a node.

You will probably then want to configure load-balancing to distribute web traffic across your nodes.

(stephanie.gooch) #5

Hi Michael, I was wondering if you could help me again?

So I am using the script to add the bindings in when a server is built with Octopus installed. I am using aws powerhsell calls to get the ipv4 of the server to automatically put it as its private ip and dns.

$current_ip = Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
$current_dns = Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-hostname

.\Octopus.Server.exe configure --instance “OctopusServer” --webForceSSL “False”
.\Octopus.Server.exe configure --instance “OctopusServer” --webListenPrefixes “http://localhost/,http://$current_dns/,http://$current_ip/
.\Octopus.Server.exe service --instance “OctopusServer” --stop --start
.\Octopus.Server.exe service --instance “OctopusServer” --start

However when I check octopus it is stoped and cant seem to to ‘start’ it again unless I go in, delete the binding then put it in by hand.

Would you know why this happends and how I could fix it? See logs attahced

octopuslogs.rtf (100 KB)

(Michael Richardson) #6

Hi Steph,

I was able to replicate this. I believe the problem is the IP address in your prefix list.
i.e.
–webListenPrefixes “http://localhost/,http://$current_dns/,http://$current_ip/

When I removed that the server was able to start.
The IP shouldn’t be required to be added as a listen prefix. When you add localhost, it gets converted to http://+:80 meaning it will listen on all IP addresses.

I hope that helps! Let me know if I that doesn’t resolve the issue.

(stephanie.gooch) #7

Great I will have a look.

Thanks

Steph

(system) closed #9