Installing and Configuring Small SharePoint Farm in VirtualBox
I recently installed and configured a small SharePoint farm containing two virtual servers using Oracle Virtual Box and decided to share my experience of the process. For the most part the configuration is simple, but there are a number of common small discrepancies that can be the difference between your servers communicating correctly, or you throwing your laptop out of the window after a week of errors. I will not be going through a click by click summary of setting up the SharePoint farm, and will instead be giving a high level overview of the process and spend more time on these issues I ran into.
First things first: setting up the network adapters for both of the VMs. I found it was easiest to use two separate adapters for each machine; one to access internet and the second as a secure internal network existing only inside VirtualBox. For the internet access adapter, attach Adapter 1 as a Bridged Adapter and make sure the name is the same as your host machine’s internet adapter. The second adapter will allow the virtual servers to see and communicate with each other. To configure this, attach Adapter 2 to Internal Network and create a name, making sure the name is the same for all machines who need access to the network. Also, make sure that for each adapter the Promiscuous mode is set to either Allow All or Allow VMs, otherwise the network will not allow VMs.
I then configured the two VMs: one I promoted to domain controller by running Windows\System32\dcpromo.exe and creating some managed users, and the other with SQL and SharePoint installed. It is a good idea to install Guest Additions on each VM to allow folder sharing and drag and drop capabilities between the host and guest machines. Now to set IP addresses. For someone who has very little networking experience like myself, assigning each VM the correct static IP address may be tricky. Here’s how I did it: Go to Network and Sharing Center–>Change adapter settings–> right click on the internal network you set up and go to properties. I set the domain controller VM’s IP address to 10.0.0.1 and preferred DNS server to 10.0.0.1, which effectively points to itself (just to be safe I also set the alternate DNS server address to 127.0.0.1). The SharePoint server’s IP address was set to 10.0.0.2 and DNS to 10.0.0.1. After these steps are complete, register the SharePoint server as a new Computer Object in Active Directory, otherwise your DNS will not be able to resolve the computer name. It is also important to make sure your SharePoint server is in the same domain as the Domain Controller.
Correct IP addresses are now set, virtual servers are in the same domain, all VMs are registered in the domain controller. The computers should now be allowed to ping each other right? Wrong. Absolutely Not. The domain controller still cannot ping the SharePoint Server. For someone like myself with little or no networking experience this does not make sense, and even with countless Google queries no solution is resolved. Finally I came across the Advanced Network Sharing Settings and realized that Network Discovery’s default setting is “Off”. I thought for sure after all that static IP setting and reading blogs about all these complex solutions, this could not possibly be the problem. It turns out that this, in fact, was the problem, and much successful pinging ensued. I was then free to configure services using managed users, create web applications in SharePoint using Active Directory credentials, etc.
Thanks for reading.