<< Blog Index

VM Primer
March 13, 2021

This guide should help you get past a few obstacles that come with hosting your own VMs, aimed at beginners supporting Windows-based products.

Why VMs?

Pros:

  • Easy to access.

  • Freedom of configuration.

    • Network freedom – accessible on your LAN.

    • Drive space / CPU / Memory

Cons:

  • May require high workstation resources.

    • My build is Ryzen 9 12-core 3.8 Ghz, 32GB of RAM, 2TB NVME SSD.
  • May be difficult to host internet services, e.g. open ports to the internet.

  • Limited to your local internet bandwidth.

Popular VM choices

  • VMWare software. (Highly recommended by people.)

  • VirtualBox (I use this and it’s free.)

Useful Software

  • Windows Server (2012/2016/2019) Trials

    • Download from Microsoft Evaluation Center. Microsoft Evaluation Center

    • You can trial Windows Server for 180 days.

      • I hear you can extend it further through a command-line thing as well, but 6 months is already a fat timespan for testing.
  • Exchange Server 2016 Trial

    • Cumulative Updates are full installers. See here for Exchange 2016 CU 18. Exchange 2016 CU 18

    • Unlicensed should last 180 days.

    • Exchange Server 2016 is not compatible with Windows Server 2019.

      • Exchange Server 2013 is not compatible with Windows Server 2016.
    • Exchange Server 2019 is gated behind licenses.

    • Exchange installer is very user-friendly and will fetch most dependencies for you.

    • You need to configure autodiscovery in your DNS server for many services to work.

  • Windows 10

  • SQL Server Express

    • Free SQL Server!

    • See SQL Installation Tips below.

  • Python Python

    • What kind of self-respecting admin doesn’t have python on their machines?
  • Office

    • Offline installers are available so you don’t need to redownload every install.

    • You need a license for use and for the download (I think), but I love Office and it’s quite affordable.

    • Main use on servers is for testing email and stuff with Outlook.

VM Setup Tips

  • I recommend at least 2 cores with 2GB of RAM per VM for testing a single piece of software.

    • Increase according to needs, or if you are putting multiple stuff on the same machine.

    • 2 cores minimum. Some processes might choke a single-core server just because of poor coding practices (e.g. a busy wait).

    • Exchange is hungry software, give it 4GB+ of RAM.

  • Unless you want to specifically test networking, I suggest piling stuff up into one machine to make starting/stopping/management easier.

    • Network problems shouldn’t really be a priority for testing.

    • There are a few security annoyances of putting everything on a Domain Controller though – you’ve been warned.

SQL Installation Tips

Useful tips to avoid hair loss. :)

If you are having trouble connecting to an external server:

  • Test your connection with:

sqlcmd -S ServerName\InstanceName -U username -P password

  • You will have to enable Mixed Mode authentication to login with a username and password.

  • The fabled “sa” user that you’ve heard so much about is disabled by default.

  • sqlcmd installer sqlcmd installer

  • The Server Browser service may be DISABLED by default.

    • This is required if you want to connect to a named instance (e.g. ServerName\InstanceName) from the outside.

[vmprimer1.png] [vmprimer2.png]

  • You can also check on the network settings.

[vmprimer3.png]

VM Network Example

An example scenario which I think will be useful for many tests.

Install Active Directory Domain Services on one of your servers.

  • Two or more Domain Controllers are recommended for production networks, but one is absolutely fine for testing. Do so with Add roles and features.

  • You probably want a DNS server as well.

  • The installer is pretty user friendly. Promote the server to a domain controller when it prompts you, and then you should set up a new domain forest, e.g., “arch.local”.

  • Don’t be afraid to screw things up. That will help you learn. If your server ends up FUBAR somehow, just erase it and try again.

If you aren’t familiar with Active Directory setup, I personally like the LinkedIn Learning crash course on it.

Once you have your DC set up, you can add other servers to it. You should be using a static IP address on your LAN for your DC + DNS server, and configure your LAN adapters of your other VMs to use that as a DNS server.

I also set my personal workstation to use the DNS server of my test DC, so I can access from my browser the local domain. (192.168.1.21 = Domain Controller and DNS Server, 192.168.1.254 = My router/Gateway [though the custom DNS server should also delegate addresses it can’t find upward to the next level])

vmprimer4.png

Join other test VMs into your new domain hosted by your DC. I’ll admit, one of those most confusing things to me when learning about Active Directory was how to join computers to a domain. I figured they needed some kind of service installed — but no, it’s all part of Windows.

vmprimer5.png

For testing email servers and related things, you can send to person@yourdomain.local and such if you have your local DNS server and network configured properly.

You’ll probably want to add a super administrator for easy testing anywhere. I use SA everywhere.

vmprimer6.png

Additional random notes

You’ll probably run into some hassles with file sharing and network options and such. I’m not super sure on how permissions work with the Domain Controller. Here are some random notes of mine that I don’t really remember what for.

Access Shared Folders

  • Servers may disable “insecure guest login” by default, so pay the old lanman a visit. https://superuser.com/questions/1287731

  • Computer Browser service may also need to be enabled (???)

Admin Permissions

  • May need to use gpedit.msc to allow access to local administration.

vmprimer7.png

<< Blog Index