Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Approaches for (re)deploying code/bin files to (multiple) Windows Azure Virtual Machines

This question may not relate specifically to Azure Virtual Machines, but I'm hoping maybe Azure provides an easier way of doing this than Amazon EC2.

I have long-running apps running on multiple Azure Virtual Machines (i.e. not Azure Web Sites or [Paas] Roles). They are simple Console apps/Windows Services. Occasionally, I will do a code refresh and need to stop these processes, update the code/binaries, then restart these processes.

In the past, I have attempted to use PSTools (psexec) to remotely do this, but it seems like such a hack. Is there a better way to remotely kill the app, refresh the deployment, and restart the app?

Ideally, there would be a "Publish Console App" equivalent from within Visual Studio that would allow me to deploy the code as if it were an Azure Web Site, but I'm guessing that's not possible.

Many thanks for any suggestions!

like image 844
Hairgami_Master Avatar asked Jul 12 '12 15:07

Hairgami_Master


People also ask

What is the first step in the basic steps for deploying a virtual machine in Azure?

Step 1 − Login to Azure Management Portal. Step 2 − Locate and click on 'Virtual Machines' in the left panel and then click on 'Create a Virtual Machine'. Step 3 − Alternatively, click 'New' at the bottom left corner and then click 'Compute' → 'Virtual Machine' →'Quick Create'. Step 4 − Enter DNS name.

What is redeploy in Azure VM?

When you redeploy a VM, it moves the VM to a new node within the Azure infrastructure and then powers it back on. All your configuration options and associated resources are retained. This article shows you how to redeploy a VM using Azure CLI or the Azure portal.


1 Answers

There are number of "correct" ways to perfrom your task.

If you are running Windows Azure Application - there is simple a guide on MSDN. But if you have to do this with a regular console app - you have a problem.

The Microsoft-way is to use WMI - good technology for any kind managent of the remote Windows servers. I suppose WMI should be ok for your purposes.

And the last way: install Git on every Azure VM and write simple server-side script scheduled to run every 5 minutes to update the code from repository, build it, kill old process and start new one. Publish your update to repository, thats all. Definitely hack, but it works even for non-windows machines.

like image 160
Evgeny Gavrin Avatar answered Oct 20 '22 13:10

Evgeny Gavrin