Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I work for a university and we are currently tasked with setting up a new computer cluster. That is like breathing for us, it is so easy. This cluster though is special. It will be shared between 5 different departments. Each department has their own licenses for software, custom settings, and specifications. This has led us to the decision to use virtual machines for each department and just have a shortcut on the desktop of the host computer to each. This was mainly chosen, because we already have images in place for each department so making a virtual machine is super easy, no need to build one from scratch.

This wouldn't be so hard if it was just left at that, but further complicating this is the fact that we run on a Windows Active Directory network with Windows computers. If you are unfamiliar with active directory, basically it is just a big login server that keeps track of everyone and their stuff. That being said, many of the applications that we run require a specific user to be logged in so that it has access to their user profile. This is dumb I know because whoever developed these programs didn't have to install them across a university. With active directory each computer on our network is joined to our "domain", which allows us to management them without going to each and every computer.

Now we are talking about 50 computers here and 5 virtual machines on each, joining them all to the domain is simply not going to work, because we still need to be able to easily update them when departments want more software. But we need to have the users profile available to the virtual machine so that they can use the programs needed. This is easy if you know exactly who is logging in, but we would have to rely on using the environment variable to see which user profile to mount into a generic profile on the virtual machine.

So my question is pretty broad, but is there a better way to do this that we just aren't seeing?

Also, is there a way to tell vmplayer to mount the current user's profile only?

I hoped I explained well enough, but if you have any questions please ask!

share|improve this question
5  
Join them to the domain. Why in the name of sweet baby pogostick wouldn't you do that? –  mfinni Aug 16 '13 at 20:47
    
The 50 host computers will be, but we simply do not have time to do the 5 VMs on each machine as well. We are a bit short staffed at the moment and class starts in a week. –  Matthew Sullivan Aug 16 '13 at 20:57
    
What exactly do you mean when you say "computer cluster"? Because reading the question, I don't think you mean what most of us will think you mean. –  Grant Aug 16 '13 at 20:59
1  
Seems to me it's going to take far far less time to join them to the domain than to come up with another alternative way of doing what the domain was meant to handle. It will be much more maintainable going forward as well. –  squillman Aug 16 '13 at 20:59
    
The hope is for a setup where we can just drop in the virtual machine without having to edit it on each and every machine. And this drop-in capability is important, because the departments' needs change very quickly due to being a very high research university and we need to keep up. –  Matthew Sullivan Aug 16 '13 at 20:59

2 Answers 2

up vote 3 down vote accepted

You don't sound like you have a cluster...you sound like you have 50 domain connected PCs that you want to run virtual machines on.

You're right, managing updates on the virtual machines will be hard, especially since they won't be powered on most of the time. You can use software deployment tools in group policies to manage the settings, and that will work, but booting them up at the start of class will take a bit as it updates the software.

And if you say, your software requires a specific AD user to be logged in, that may cause issues as well. Though you could easily set the virtual machine to autologin to that specific user, but users won't have their own settings/drives that way.

The easiest way to handle it would be a terminal server (or 5 terminal servers) that everyone logs into, then you just have to keep one server up to date. But that costs money for hardware.

The way I've seen most labs do this is reimaging the computers before each class. My college used ghostcast controlled by an extra PC in the lab, which would netboot all the PCs at once and send an image with the correct software for that lab. Then they only had to manage the images on one computer.

share|improve this answer
    
By far the best answer. Thank you very much. –  Matthew Sullivan Aug 16 '13 at 21:12

I see absolutely no reason here why you shouldn't join these machines to the domain. What makes you think that this is changed somehow by them being virtual machines? Is there something important we're missing here?

Remember nothing magical happens just because someone said 'virtual' or 'cloud' during a design meeting. If it made sense to join them to the domain before virtualisation became a thing then it makes as much sense now.

If anything, AD should make this easier. It is a lot more than "a big login server" :

  1. Create virtual machine templates for your virtual guests, or use something like Windows Deployment Services to create a central 'image' to deploy to each guest.
  2. Create virtual guest machines based on this template, and join them to the domain (this can be automated).
  3. Use software deployment group policies in AD to deploy custom software for each department onto their virtual guests. For that matter onto the hosts too, if that's a requirement.
  4. Just log a domain account in and get on with your day, without having to worry about creating accounts and profiles, etc.

I work in a college environment and we essentially do everything I've outlined above, and it works just fine.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.