Home > CRM, Javista, Microsoft, Microsoft Dynamics, Windows Service > Building a Self-Contained Virtual CRM Development Server

Building a Self-Contained Virtual CRM Development Server

I’ve had to build a number of development servers for CRM, usually using virtualization technology, and I thought I’d share some of the pointers from one of my recent builds to help you along. This isn’t meant to be a comprehensive guide to installing CRM, but, if you plan on building a self-contained CRM environment for development and testing, I hope you’ll benefit from some of the tips included below. Also, if you are a Dynamics partner, keep in mind that Microsoft provides a very useful demonstration VPC on PartnerSource. They’ve recently released a new version, replete with the CRM Solution Accelerators and demo tools.

Preparation

The first thing I did was to make sure I had all my install media and keys handy. As a Gold Partner, we have access to MSDN license keys for development environments. (If you’re not a partner, an MSDN subscription will be an invaluable tool for your development team.) Here are the applications I’m going to use for this dev environment:

a. Virtual PC 2007 SP1

b. Windows Server 2008 Standard

  • Active Directory
  • IIS
  • SharePoint (WSS 3.0)

c. Internet Explorer 8

d. SQL Server 2008 Standard

  • SQL Reporting Services
  • SQL Server Integration Services

e. Microsoft CRM 4.0 Professional Server

i. Data Migration Manager

f. Microsoft CRM 4.0 Client for Outlook

g. Visual Studio 2008 Professional

h. Office 2007 Professional (Word, Excel and Outlook)

Note that I’m not installing the CRM E-mail Router (though I might at a later date), and I won’t need the SQL Data Connector that comes with CRM since CRM and SQL are on the same virtual server. I’m going to set up the Data Migration Manager (DMM), but keep in mind that you can’t run the DMM at the same time as the Outlook client, should you want to install that as well.

I’m installing Office so I can use Excel and Word for working with csv files for import/export through the CRM web UI, and create/edit Word mail merge templates, and of course so I can set up Outlook to use the CRM Outlook client.

Also, if you’re not using Virtual Server 2005 SP1 or Hyper-V to build your virtual dev environment, you’ll need to download and install Virtual PC 2007 SP1 which provides support for Windows Server 2008. Virtual PC 2007 SP1 can be downloaded here.

Create a new virtual machine

Use the wizard in Virtual PC 2007 to walk through creating a new virtual machine. I’m setting this up on an external hard drive so it’s portable. I’m going to use 1850MB of RAM, which I’ve found is sufficient for a dev environment, and allows me to comfortable run my VPC image from my laptop which has 4GB or RAM. I’m going to set this VPC image to use a dynamically expanding hard drive and set the size to 60GB, which should give us plenty of room to expand into (the actual size of the VHD file will be about 15GB when we’re done loading all of our applications on it).

Windows Server 2008 Standard

After inserting the DVD for Server 2008 in my laptop, I attached the drive to my virtual machine to begin the installation. It’s pretty smooth and takes about 40 minutes to go through the initial copying/expanding/installing. After a couple of automatic reboots, I need to create a password for the local administrator account, and log on to the machine for the first time. Note that I’ve disconnected the virtual server from my local network connection because I don’t want to interfere with my domain during the remainder of the configuration of Windows Server.

Initial Configuration Tasks

After logging in, I’m presented with the Windows Server 2008 “Initial Configuration Tasks” wizard which walks you through setting the time zone and naming your machine, and a few other simple steps. I’m going to skip the second step (Update This Server) in the interest of time. I’ll run Windows Update later. The main thing I’m concerned with getting done right now is setting up the necessary services (step 3 in the “Initial Configuration Tasks” screen).

vs01

I want to add some roles to this server that will be necessary for a self-contained CRM development server. Here’s the order of the roles I’m going to add:

  • Active Directory Domain Services
  • Set up Loopback Adapter and configure Network Connections
  • DNS (Added via dcpromo – NOT by selecting the DNS Server in the “Add Roles Wizard” – see more info below
  • Application Server, File Services, UDDI Services, and Web Server (IIS)

Note: Under Files Services, do NOT select Windows Search Services. CRM 4.0 requires Indexing Services (a feature of Windows Server 2003), and you can’t have both of these services installed at the same time.

Clicking on the “Add Roles” link, the first role I’m going to add is “Active Directory Domain Services.” You can’t configure any other roles while setting up Active Directory, so I select this option and go through the wizard. After it finishes just a few minutes later, I click the close button because I need to go back and assign a static IP address, so I can then use dcpromo to make this server a domain controller. But let’s not get ahead of ourselves.

Back on the “Initial Configuration Tasks” screen, I go back up to the link to configure networking. This takes me to my Network Connections in the Control Panel, and double-clicking the network connection opens the Properties dialog. I’m going to disable TCP/IPv6 (CRM 4.0 doesn’t support this protocol). On the properties for TCP/IPv4, I’m going to set my static IP address for this server as follows:

vs02

I’m going to make this computer a DNS server so it’s a self-contained system. To do this, we’ll need to set up a loopback adapter. To install the Loopback Adapter, go to Start -> Computer -> Right-click, Properties -> Device Manager -> Computer Name, Right-click, Add Legacy Hardware -> Next -> Select “Install the hardware I manually select from a list” and click Next -> Network Adapters -> Microsoft. On the right, choose Loopback adapter and click Next. Configure it as follows:

vs03

After setting the static IP address, I’m ready to get DNS working by doing a dcpromo. Go to the Windows START button and type in dcpromo to locate the “Active Directory Domain Services Installation” wizard. Click the application to launch it and go through the wizard. Here are some pertinent selections I’m making during the dcpromo wizard:

  • I’m going to select “Create a new domain in a new forest”
  • My FQDN is crm.dynamicscrm.com
  • Forest functional level: Windows Server 2008
  • Continue through the warning about not finding a forest and click through the remaining screens on the wizard. When the configuration begins, place a checkmark next to “Reboot on completion.”

If you get a warning about DNS not being configured correctly, go through the warning message anyway.

Next, go back to the Initial Configuration Tasks screen and click the Add Roles link again. Now I’m ready to set up my other server roles as listed above. These include Application Server, File Services, UDDI Services, and Web Server (IIS). I selected settings for these services based on what I anticipate I’ll need for SQL and CRM and general development purposes, and click through the wizard to set them up. I’m not an expert on all of these server roles, so I’ll leave it to your best judgment on which settings to configure here.

I’m going to add some users (one with administrator role and one for a user role) before moving on. This will allow me to test my subsequent configurations. To do this, click Start -> Administrative Tools -> Active Directory Users and Computers. Expand the domain node and click on the Users folder to begin adding users. You can create a new OU for your dev environment at this point if you wish. Don’t forget to add the users to the appropriate groups, such as Domain Admins or Domain Users. For Domain Users, you’ll also want to adjust Group Policy to allow them to log on to the local (virtual) machine:

1. Open GPMC, click Start, click Run, type gpmc.msc, and then click OK.

2. In the console tree, right-click Default Domain Controllers Policy in Domains\Current Domain Name\Group Policy objects\Default Domain Controllers Policy, and then click Edit.

3. In the Group Policy Management Editor window, in the console tree, go to Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/User Rights Assignment

4. Add “Authenticated Users” to the “Allow Logon Locally” policy

Last thing I want to do for my Windows install at this point is activate it using my license key. To do this, go to Start and right-click on “Computer” to see the computer’s properties. In the System dialog, there’s a link to change the product key. Click the link and go through the process of entering the key and activating Windows.

SharePoint (WSS 3.0)

Unlike Windows Server 2003, the Server 2008 install media does not include WSS, so you need to download it and run the install manually. It can be downloaded here. WSS 3.0 installs pretty quickly and you can immediately run the configuration wizard to get the basics set up.

SQL Server 2008

Okay, I’m now ready to start installing SQL Server 2008 Standard. After releasing the Windows install disk in the Virtual PC window, I insert the SQL Server install disk and mount it from Virtual PC and get started.

First thing I’m prompted to do is install the .NET framework 3.5 SP1 SQL and a hotfix that SQL needs. (You’ll be prompted by the SQL installer.) You’ll want to do this and then re-boot.

After the .NET framework is installed, go back to the install screen for SQL Server. Before you start your install there’s a SQL Server Installation Center wizard that will come up. Launch the System Configuration Checker to run some tests to make sure everything is honky-dory before proceeding. You’ll get a warning about the computer being a domain controller (this is undesirable due to security best practices) but you can ignore it. Fix any failed checks and go on.

SQL Server 2008 has some nice screens for planning your installation, but I skipped these and went to the installation screen. Choose the New SQL Server standalone installation. The license key is pre-pidded, meaning it’s embedded in the install media, so you can keep clicking through the installation process pretty quickly. It’ll take a minute to install the Setup Support Files.

After another set of checks, you’ll select the features you want installed. I selected the following, which will be either necessary or useful for our CRM development:

  • Database Engine Services
  • Full-Text Search
  • Analysis Services
  • Reporting Services
  • Business Intelligence Development Studio
  • Integration Services
  • Management Tools – Complete

I’m going to install this as the default instance, but you can set up a named instance if you like.

When you get to the service accounts, switch the SQL Server Agent service to start up automatically rather than manually. Hit the button to set the password for all the SQL services to use the same account and enter in one of the admin accounts you created earlier. On the next screen, I’m choosing to use Windows Authentication mode, and using the “Add Current User” button to set my admin account as the SQL Server administrator. (I know these are all probably terrible security practices, but this is a self-contained dev environment, and I’m more concerned with expediency than security. Security freaks: Leave your comments below!) I also did this for Analysis Services.

For the Reporting Services Configuration, select the native mode installation. CRM 4.0 does not support SQL Reporting Services in Sharepoint integrated mode. (I found out the hard way in a previous build.)

Now I’m ready to let her fly and begin installing the configuration I’ve set up. Keep your fingers crossed…

So with SQL installed, the next step is to test it and make sure everything is working and do any configurations that may be missing. Make sure to check the Report Server URL since you’ll need this to be working during your CRM installation. One thing you’ll want to do is make sure Domain Admins are Content Managers in SQL Reporting Services. To do this on Server 2008, open Internet Explorer by right-clicking and choosing ‘Run as Administrator’ and navigate to the Report Manager website. Click on the Settings area in Report Manager and then in the Security page, add Domain Admins as Content Managers. I ran into some rsAccessDenied errors that showed up during my first attempted CRM installation as rsConfigAction errors. I resolved these by giving Authenticated Users the Content Manager role – again, more interested in expediency than security.

For other users, you will need to follow the steps below:

To configure local report server administration on Windows Server 2008

1. Open a browser window with Run as administrator permissions. From the Start menu, click All Programs, right-click Internet Explorer, and select Run as administrator.

2. Click Allow to continue.

3. In the URL address, enter the Report Manager URL. For instructions, see How to: Start Report Manager.

4. Click Tools.

5. Click Internet Options.

6. Click Security.

7. Click Trusted Sites.

8. Click Sites.

9. Add http://<your-server-name&gt;.

10. Clear the check box Require server certification (https:) for all sites in this zone if you are not using HTTPS for the default site.

11. Click Add.

12. Click OK.

13. In Report Manager, on the Home page, click Properties.

14. Click New Role Assignment.

15. Type your Windows user account in this format: <domain>\<user>.

16. Select Content Manager.

17. Click OK.

18. Click Site Settings in the upper corner of the Home page.

19. Click Configure Site-wide security.

20. Click New Role Assignment.

21. Type your Windows user account in this format: <domain>\<user>.

22. Select System Administrator.

23. Click OK.

24. Close Report Manager.

25. Re-open Report Manager in Internet Explorer, without using Run as administrator.

CRM 4.0 Installation

This is pretty straightforward if you have everything else set up correctly, and the implementation guide has more details if you’ve never done this before. You can download it here.

Running CRM 4.0 with SQL 2008 requires some hotfixes. Some of these will be downloaded when you update the installation files prior to installing CRM. Some will need to be manually downloaded. There’s a KB article here.

Reporting Services seems to be the biggest headache with most CRM installations, but they’re surmountable with some grit and determination.

After installing the Data Migration Manager (using the existing database), I downloaded and installed the Update Rollup 3 for both the CRM server and DMM, available here.

Outlook Client

After installing the components of Microsoft Office 2007 that I wanted on this VPC (Word, Excel, and Outlook), it was time to install the CRM Outlook client. I’m just going to install the online client since I won’t be going offline (that is, disconnecting from the CRM server) while working on this virtual server.

After downloading the Outlook client installation package from Microsoft’s website, I ran into an issue immediately after kicking off the install of the Outlook client. I got the following error: “The path is not of a legal form.” This is due to a registry key that had an empty value for the CRM Server install location. Here’s the fix:

1. Open the registry editor and navigate to the following registry entry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Installer\UserData\S-1-5-18\Products59DD8CB00184F24E99A62CF4D6109FA\InstallProperties]

2. Locate the key Name: InstallLocation
and set the Data value to “C:\Program Files\Microsoft Dynamics CRM” (or whatever the install path of the CRM Server is for your image).

3. Start the installation of the Outlook client (no reboot should be required).

After the installation of the Outlook client, go to the Start menu and under programs, there will now be an entry for Microsoft Dynamics CRM 4.0. Under this, click the “Configuration Wizard” link to launch the configuration of the Outlook client. Click the Next button until you’re asked for the web address of your CRM website. You don’t need to include the organization name, it should just look something like http://crmserver:5555.

Visual Studio 2008

The next step is installing Visual Studio so we can do some real work on this server. We’ve already got SQL Server Business Intelligence Studio, since that’s installed with SQL Server, which lets you create SQL Reporting Services reports. But we want to be able to do full SDK development on this server, so we’ll need Visual Studio. I’m selecting the “Custom” install option and removing a few components that I don’t anticipate using, such as the Visual C++ component and Crystal Reports. This reduces VS’ footprint to about half of a “Full” install – still around 2GB, so it’s good that we built this image with a large hard drive so we have plenty of space to grow into.

After installing Visual Studio, you’ll also probably want to download the CRM SDK, available here. Now you’re ready to roll. Good luck and have fun with your shiny new self-contained CRM server!

Cheers,

Matt Wittemann

Advertisements
  1. April 16, 2013 at 4:48 pm

    What’s Taking place i’m new to this, I stumbled upon this I’ve found It positively useful and it has helped me out loads. I am hoping to contribute & help different users like its helped me. Good job.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: