Introduction

The current Cloud Stack management server runs only on Linux servers. The purpose of this feature is to run CloudStack management server on windows as well without using Cygwin. This document will illustrate what changes we may need to do at code level and script level. This will also introduce some installation procedures to have in place before running the management server on windows.

Scope

Should able to start/stop/restart management server as a service on windows. Do remember that we are not trying to  manage development setup as well on windows.

Procedure

We need to convert all shell scripts to Pyhton scripts to make sure those are runnable on windows as well.

Make sure the copied files on windows file system will not change the line ending character other wise it will create a mess after copied to hyper-visor host.

The following modules need to run from windows as well to make sure they run without using cygwin

  1. Deploy DB
  2. Seed system template onto secondary storage location
  3. start/stop/restart management server
  4. Samba integration

 

DeployDB

<TODO>

Seed SystemTemplate

This will execute the following scripts

 

Management Server

When we start the management server currently it is calling the following scripts

There are some places in Java code where bash scripts are written inside the jave code.The following list of class files are having such scripts

 

Samba integration

     <TODO>

Appendix

Feedback

  1. SSH (John Kinsella) :
    Putty doesn’t really want to be used for command-line key generation[1].
    Take a look at libssh[2] - from a glance, that looks like it might be the best approach.

    http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/puttygen-batch.html
    http://www.libssh.org/
     

    [Damodar] : Sure we will look into libssh as an alternate for ssh key generation. 
  2. .(Alex Hitchins) I certainly wouldn't rely on cygwin in production
     [Damodar] : The idea is to remove dependency on cygwin completely.

  3. (Alex Huang)
    Management server should never have mounted the NFS secondary storage. We need to fix that. Please have a talk with Kelven about this. I don't see us adding Samba to any machine that runs the management server. If this is just about seeding the system template, it can be done as part of installation rather than management server.
     [Damodar] : As I verified in vmware case we mount SSVM onto local storage. This integration as of now we think is only in case of VMWare.
    If I truly think about Windowsification, I think windows installer, windows service, opening ports in windows firewall. I don't see any of that here. Or else it's useless for windows people.
    [Damodar] : Yes we considered this as a separate note
    For java, most people write a windows service that launches the jvm and keeps track of the jvm.
    There's a number of things that CloudStack management server does today at startup that should not be there and those are what complicates the windowfication. These things should be moved out of the management server and into installation. What should be inside the management server startup procedure should be checks, rather than generations. It should check for ssh key exists and the database version matches etc
    [Damodar] : As of now we identified some of them and covered in the above section (For Ex: Deploy DB, Seeding system Template and installing ssh keys)
     it should not do the following. 
           Upgrade of the database
               [Damodar] : This will be covered as part of deploy db
           ssh key generation
                [Damodar] : Already covered in the details section. For now Assumption is already these keys would have been installed.
           iso generation.
                [Damodar] : You mean systemvm.iso here.. If that is the case then I think this will be part of maven build only.