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.
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.