0

I am building up a virtual infrastructure in vmware workstation, and I don't know how to start. (I am university student, so I have dreamspark licenses and these stuff. The aim of this infrastructure is learning.) The idea is the next:

  • Host machine (i5-2500K, 8 GB RAM, 250 GB SSD) with Windows 8 Pro (x64) and vmware workstation. Host machine have the developer sw-s (eclipse, vs2012).

  • Windows servers: need IIS (ASP.NET), MS-SQL -> definitely windows server 2012 standard

  • Linux servers: Apache+PHP+MySQL (Centos 6.4), Oracle (Centos 6.4), Python+Flask (Ubuntu 13.04 Server) (all 64 bit)
  • The servers are started when I actually need them.
  • And many clients (win8, win7, ubuntu desktop).

Now I decided the linux servers without desktop, and then 256 MB memory are enough for them. Is it possible to install Windows Server 2012 Standart without GUI on 512 MB RAM? Some of the infrastructure is ready, but I still have the question:

  • The servers will have static IP, while the clients will get by dhcp. That's easy in IPv4, but any good strategies for ipv6?
  • I would like to create a domain - like .vmware or something, so I can access my vm-s easily - e.g. luke.vmware. I would not like to hack hosts files, because its hard to maintain on a lot of vm-s. I think I will need a DNS server, which makes life easier. But it should run always. The vm network is behind NAT (VMNet8), so where should I install? Is it ok in the NAT network, or must it be the host machine? Any good advice? I stick to vmware workstation (I have problems with hyper-v performance and virtualbox stability). -Should I user NFS or is vmware shared folders enough? When yes, NFS should be computer, or VM.
  • Is there a good way to maintain the vms (e.g. shared folders, change memory, overall GRID interface), or should i script with the vmware api? I would like an overall interface (sync visio diagram with excel with vmware settings).

Thank you in advance. Lajos

4
  • Is the asking for suggestions in what to buy to run the virtual machines, or asking how you should set up your machine for running everything (?!) on one machine?
    – tombull89
    May 10, 2013 at 13:02
  • Please keep your questions to a single topic/problem at a time. May 10, 2013 at 13:56
  • If you're just playing around, you can run Apache, PHP, MySQL, Oracle, and mod_wsgi (Python/Flask) all on the same server/VM. That should cut down on your network complexity. Although, as @Chris_S says below, your machine (is it a laptop?) is woefully underpowered and under-equipped to run more than one VM, I'd say.
    – MattDMo
    May 10, 2013 at 14:25
  • thank you, but complexity is aim for the further hard management (-> many wm-s). i am just playing, and learning May 10, 2013 at 14:42

1 Answer 1

4

Host machine (i5-2500K, 8 GB RAM, 250 GB SSD) with Windows 8 Pro (x64)

That's not much RAM space, nor HD space. You'll be able to run 1 or 2 VMs comfortably, but that's it.

and vmware workstation

That's fine for a developer's computer, but if you're interested in learning "enterprise" virutalization you should look at ESXi, Hyper-V Server, or similar.

Windows servers: need IIS (ASP.NET)

That's available in Win8. If you want to try setting up dedicated machines go for it. But if you just want to develop on IIS, I'd recommend just installing it on your development workstation.

MS-SQL -> definitely windows server 2012 standard

MS-SQL can also be installed on Windows 8

Linux servers: Apache+PHP+MySQL (Centos 6.4), Oracle (Centos 6.4), Python+Flask (Ubuntu 13.04 Server) (all 64 bit)

Do you have some purpose for this smattering of technology? That a wide breadth of OSes, and no apparent reason for wanting them (other than "gotta catch'm all" syndrome)

The servers are started when I actually need them.

That much is obvious as you don't have the RAM to start them all in a useful state. You're almost certainly going to run out of HD space setting all that up too.

And many clients (win8, win7, ubuntu desktop).

See previous comment about why the Smörgåsbord of OSes.

The servers will have static IP, while the clients will get by dhcp. That's easy in IPv4, but any good strategies for ipv6?

Why not use static IPs for servers and DHCP for clients in IPv6 as well?? Asking this makes me think you might need to read up on IPv6 a bit more.

I would like to create a domain

Bad idea from the start, but as you're a student just starting the world might forgive you if you use .local. Keep in mind for the future, that "fake" domains should never be used in any environment outside "just messing around". Never in business, not in development environments, not in pre-production, not in testing, never never never. It's a crazy bad habit that will cause many headaches for decades to come. Most SysAdmins hope there's a special level of hell reserved for people who use .local in business environments.

I would not like to hack hosts files, because its hard to maintain on a lot of vm-s. I think I will need a DNS server, which makes life easier. But it should run always.

Correct, this is why DNS was invented in the first place. Probably shouldn't reinvent the wheel. Put the server just about anywhere on your network where all the servers can access it. This could be a VM, or a physical box, or your Host machine...

Should I user NFS or is vmware shared folders enough? When yes, NFS should be computer, or VM.

Windows doesn't do NFS easily, and not well when it does. Like many of the technologies so far, I'd recommend against using it unless it solves a specific problem you're trying to get around.

Is there a good way to maintain the vms (e.g. shared folders, change memory, overall GRID interface), or should i script with the vmware api?

APIs and Scripts are good ideas. I wouldn't get too wild with this unless you really want to dive into it.

I would like an overall interface (sync visio diagram with excel with vmware settings).

Documentation is a good idea. It's got to be the weakest skill I see from college graduates. It's not that they can't create documentation (for the most part), but the quality is lacking, and the discipline to actually do it is severely lacking.

Two thoughts:

  • You have a monstrous pile of technology there. You seem enthusiastic to learn some of all of it. This is the role of the IT Generalist. However, you're also crossing disciplines a lot, which almost never works out. You have application development software, web development, and infrastructure. The IT Industry has whole conferences on getting these separate and relatively diverse groups to talk to each other more effectively, and to understand one another's different goals. I highly recommend you pick the set of technology or role that you like the most and give it a try, forget the rest at least for now.

    Many basic skills cross boundaries. For instance, Administrators (who maintain infrastructure: Systems, Networks, Databases, Security, etc) need to be able to read, understand, and write scripts (PowerShell and VBScript on Win; Shell and Interpreted on *nix); many also know various programming languages. Software Developers need to know a little bit of everything they'll be working on. Web Developers need to know a good amount of the software that runs their sites, and what their clients will be running.

  • The other thought is that many people believe the Generalist role is on the decline, and most indications support this. "Jack of all trades - Master of none" is not a compliment. At very small shops knowing a wide variety of technologies is essential as there's few people developing, installing, and maintaining that technology. Outside of those very small shops, everyone else want specialists, masters of their niche.

    Check out the Careers site. You'll find postings for "Ruby Developer", "PHP Developer", ".NET Developer", or "Linux Administrator". If you search for "Generalist" you'll get 17 results right now. The very first one says "Ruby on Rails Generalist" (they're looking for a Ruby Web Developer - NOT actually a generalist). The second listing is a "Java Developer" (also not a generalist). Third is a "Software Engineer - Generalist", and the description immediately starts in to a PaaS Engineer (Virtualization Administrator essentially; also not much of a generalist job). You get the idea, but I went though the list and only 2 are actually looking for something like a Generalist.

3
  • thank you for the answer. Actually the reason I want several vm-s is that I need ASP.NET, MS-SQL, Oracle, Python and PHP+MySQL stuff at university in the same semester. But for example I do not use mssql and oracle simaltenously. I see your "Jack of all trades..." point, but that's the point - I have one more semester left in BSc - after it I want to know a lot a fields and specialize in MSc. Mem and hard driv is enough (nix: 256 MB/512 MB, 5-10 GB; win: 1GB - 30 GB). Anyway, I don't want mess up everythin. But I will ask separate questions now, (divide et empera) Thank you again! May 10, 2013 at 14:31
  • Chris has a great answer. He has hit on a lot of good points and the memory and hard drive space that Chris has referred to is realistic. You need more. Also the multitude of disciplines you are trying to utilize (server, network, and VM administration) you will not become a well enough expert in a semester. Start small. Virtualize one server. Understand how it uses vRAM and vCPU resources. Move to another server. Then build your domain (DHCP, DNS, etc) and continue building.
    – Travis
    May 10, 2013 at 14:46
  • I am over learning basics of servers (win and nix) and vm-s, now in the infrastructure phase. I don't want to learn and master dns - i only want to spend 2-3 days on it te see a little bit how it works (not just read about). A have more hard drive though (2 TB hdd), and of course i wont run all machines together (so mem is enough). May 10, 2013 at 15:09

Not the answer you're looking for? Browse other questions tagged .