Deploy SharePoint 2013 in Windows Azure

For most of the people who are into IT of large organizations, it’s easy to learn SharePoint as most of these organizations have right infrastructure along with right software licenses.

But if you are an individual who want’s to learn SharePoint, especially 2013 in private, the options are next to none as everything from hardware to software are prohibitively costly.

Now thanks to Microsoft’s Windows Azure, you have all the things needed to proceed with your learning at relatively low to moderate pricing. Even you get a 30 day trial.

The following are the topics I have covered to get you started and pointers to ponder before starting.

  1. Setting up in Azure
  2. Billing
  3. No more de-provisioning the VMs
  4. Missing Items
  5. Pointers

Setting up in Azure

You can visit the link Step-by-Step: Build a FREE SharePoint 2013 Lab in the Cloud with Windows Azure Infrastructure Services by Keith to deploy a SharePoint 2013 lab environment and even expose the site to internet.

This setup requires the following.

  1. A Windows Server 2012 based VM for AD
  2. A SQL Server 2012 based VM for Data
  3. A SharePoint 2013 Trial based VM for SharePoint 2013 App Server
  4. A DNS Server
  5. A Virtual Network
  6. An affinity group
  7. A storage account
  8. Setting your machine (client machine) with Windows Azure PowerShell

You have to note that this environment doesn’t have Visual Studio available for development. But as Keith mentions there is an option to setup a development environment.

If you want to run Visual Studio on a VM within Azure, I’d recommend preparing a new VM in your virtual network from the Windows Server 2012 platform image.  You’ll likely want to customize it a bit to act more like a development client environment – check out my prior article at blogs.technet.com/…/step-by-step-building-a-free-windows-8-app-dev-lab-in-the-cloud-with-windows-azure-virtual-machines.aspx for the steps.  This article if primarily oriented towards setting up a Windows 8 App Development environment on Azure, but a full copy of Visual Studio with SharePoint development support could easily be substituted at the end of the article instead of using Visual Studio Express.

Hope this helps!

Keith

Billing

At the time of writing this article the charges would be mostly towards the 3 VMs. The following is my assumption.

“When the VM’s are shutdown, the computing for related Cloud Services & storage would not be added.”

Take this with a grain of salt.

Hence the computing will be as following.

  1. AD – Small VM (1.6GHz CPU, 1.75GB RAM, 225GB Storage) – $0.09/hr (pay as you go)
  2. SQL Server – Medium VM (2 x 1.6GHz CPU, 3.5GB RAM, 490GB Storage) – $0.225/hr (pay as you go)
  3. SharePoint 2013 Trial – Large VM (4 x 1.6GHz CPU, 7GB RAM, 1,000GB Storage) – $0.36/hr (pay as you go)

No more de-provisioning the VMs

When Windows Azure was rolled out one of the issue for most of the people was that, even after the VM’s are shutdown, your computing will be accumulated and charged. The reason behind that is, until unless the VMs were de-provisioned, the fabric resources or resources which the VM’s use will be reserved.

Previous to this enhancement being available, the Azure platform maintained fabric resource reservations for VMs, even in a shutdown state, to ensure consistent resource availability when starting those VMs in the future.  And, this meant that VMs had to be exported and completely deprovisioned when not in use to avoid compute charges.

Hence user’s use to de-provision the VMs so that they are not charged when the VMs are not in use.

But during the June 2013 TechEd conference an enhancement was rolled out, called “VMs that are shutdown from the Windows Azure Management Portal will no longer continue to accumulate compute charges while stopped!

Hence from the time of posting this article, all you need to do was shutdown the VM from Azure Portal instead of running De-Provision PowerShell script and your computing will not be accumulated. That is your VM will be in “Stopped (Deallocated)” status.

But it has some after effects like when the VM is started again it will have new Dynamic IP.

“Deallocated” means that the VM configuration is no longer being actively associated with fabric resources, such as virtual CPUs, memory and networks. In this state, the VM will not continue to allocate compute charges, but since fabric resources are deallocated, the VM could receive a different internal IP address ( called “Dynamic IPs” or “DIPs” in Windows Azure ) the next time it is started.

Missing Items

CONTOSO\Administrator

In the article “Step-by-Step: Build a FREE SharePoint 2013 Lab in the Cloud with Windows Azure Infrastructure Services” Keith would have not mentioned about creating the user “CONTOSO\Administrator“. Do that at the time of creating the service accounts.

Joining the server to domain contoso.com

In the article “Step-by-Step: Build a FREE SharePoint 2013 Lab in the Cloud with Windows Azure Infrastructure Services” Keith would have mentioned the DB & SP App servers to be joined with contoso.com.

If you are not a Windows Server administrator or don’t have experience, then you may not know how to join a server to an existing domain.

It’s very simple, read the heading “Change server name or join a domain” at How to perform four common tasks in Windows Server 2012

Pointers

  • When you create a VM, make sure you select the right Virtual Network and Storage Account.
  • When you delete a VM, it’s associated Virtual Hard disk (VHD) would not be deleted. You have to manually delete it from storage account.
  • If you are not able to delete a VHD and get “Error deleting VHD: There is currently a lease on the blob and no lease ID was specified in the request” follow this Microsoft Forum Thread Error deleting VHD

When you visit the above links, don’t forget to go through the comments posted. Those comments have lot of useful queries from various users as well as replies from Keith.

Oh by the way, it took me not more than couple of hours to setup and configure SharePoint 2013 in Windows Azure and it’s awesomely easy. The only thing which took time was SharePoint configuration Wizard. It took nearly 10 minutes!.

So what are you waiting for, start messing with SharePoint 2013 !

Installing SharePoint 2013 Prerequisites Without an Internet Connection

When a SharePoint 2013 needs to be deployed in a server which doesn’t have internet access, and SharePoint requires prerequisite to be installed, we can do couple of things.

  1. Download prerequisites in a different machine which has access to internet.
  2. Move that to the actual server where SharePoint needs to be deployed.
  3. Use prerequisite installer to use local folder for installing the prerequisite.

Downloading prerequisites

We can download prerequisites using Powershell. Please use the following script.

Import-Module BitsTransfer
## Prompt for the destination path
$DestPath = Read-Host -Prompt "- Enter the destination path for downloaded files"
## Check that the path entered is valid
If (Test-Path "$DestPath" -Verbose)
{
	## If destination path is valid, create folder if it doesn't already exist
	$DestFolder = "$DestPath\PrerequisiteInstallerFiles"
	New-Item -ItemType Directory $DestFolder -ErrorAction SilentlyContinue
}
Else
{
	Write-Warning " - Destination path appears to be invalid."
	## Pause
	Write-Host " - Please check the path, and try running the script again."
	Write-Host "- Press any key to exit..."
	$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
	break
}
## We use the hard-coded URL below, so that we can extract the filename (and use it to get destination filename $DestFileName)
## Note: These URLs are subject to change at Microsoft's discretion - check the permalink next to each if you have trouble downloading.
$UrlList = ("http://download.microsoft.com/download/D/0/F/D0F564A3-6734-470B-9772-AC38B3B6D8C2/dotNetFx45_Full_x86_x64.exe", # Microsoft .NET Framework 4.5
            "http://download.microsoft.com/download/5/2/B/52B59966-3009-4F39-A99E-3732717BBE2A/Windows6.1-KB2506143-x64.msu", # Windows Management Framework 3.0 (CTP2)
	    "http://download.microsoft.com/download/9/1/3/9138773A-505D-43E2-AC08-9A77E1E0490B/1033/x64/sqlncli.msi", #Microsoft SQL Server 2008 r2 Native Client
	    "http://download.microsoft.com/download/D/7/2/D72FD747-69B6-40B7-875B-C2B40A6B2BDD/Windows6.1-KB974405-x64.msu", #Windows Identity Foundation (KB974405)
	    "http://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi", # Microsoft Sync Framework Runtime v1.0 SP1 (x64) 
	    "http://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe", #Windows Server AppFabric
            "http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/r2/MicrosoftIdentityExtensions-64.msi", # Windows Identity Extensions
            "http://download.microsoft.com/download/9/1/D/91DA8796-BE1D-46AF-8489-663AB7811517/setup_msipc_x64.msi", # Microsoft Information Protection and Control Client
            "http://download.microsoft.com/download/8/F/9/8F93DBBD-896B-4760-AC81-646F61363A6D/WcfDataServices.exe", # Microsoft WCF Data Services 5.0
            "http://download.microsoft.com/download/7/B/5/7B51D8D1-20FD-4BF0-87C7-4714F5A1C313/AppFabric1.1-RTM-KB2671763-x64-ENU.exe" # CU Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763)
			)
ForEach ($Url in $UrlList)
{
	## Get the file name based on the portion of the URL after the last slash
	$DestFileName = $Url.Split('/')[-1]
	Try
	{
		## Check if destination file already exists
		If (!(Test-Path "$DestFolder\$DestFileName"))
		{
			## Begin download
			Start-BitsTransfer -Source $Url -Destination $DestFolder\$DestFileName -DisplayName "Downloading `'$DestFileName`' to $DestFolder" -Priority High -Description "From $Url..." -ErrorVariable err
			If ($err) {Throw ""}
		}
		Else
		{
			Write-Host " - File $DestFileName already exists, skipping..."
		}
	}
	Catch
	{
		Write-Warning " - An error occurred downloading `'$DestFileName`'"
		break
	}
}
## View the downloaded files in Windows Explorer
Invoke-Item $DestFolder
## Pause
Write-Host "- Downloads completed, press any key to exit..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

 Once all the prerequisites are downloaded, copy them to server in a particular path and create the following batch file.

 Installing prerequisites

set PreReqPath="E:\Install\SharePoint\PrerequisiteInstallerFiles"
PrerequisiteInstaller.exe /SQLNCli:%PreReqPath%\sqlncli.msi ^
	/PowerShell:%PreReqPath%\Windows6.1-KB2506143-x64.msu ^
	/NETFX:%PreReqPath%\dotNetFx45_Full_x86_x64.exe ^
	/IDFX:%PreReqPath%\Windows6.1-KB974405-x64.msu ^
	/Sync:%PreReqPath%\Synchronization.msi ^
	/AppFabric:%PreReqPath%\WindowsServerAppFabricSetup_x64.exe ^
	/IDFX11:%PreReqPath%\MicrosoftIdentityExtensions-64.msi ^
	/MSIPCClient:%PreReqPath%\setup_msipc_x64.msi ^
	/WCFDataServices:%PreReqPath%\WcfDataServices.exe ^
	/KB2671763:%PreReqPath%\AppFabric1.1-RTM-KB2671763-x64-ENU.exe

Source: http://www.dontpapanic.com/blog/?p=241

SharePoint 2013 Preview – Hardware Requirements

Recently I was planning to checkout SharePoint 2013 and do a test drive. So to get a virtual machine from our internal cloud hosting I was doing analysis on the hardware requirements for SharePoint 2013 preview and the following came as a shock !

24GB RAM for 2013 preview development server as compared to 4GB for 2010 version.

That’s 6 times of 2010 RAM requirements. I am hoping that the requirements will come down once the SharePoint 2013 goes to RTM.

Hardware requirements—web servers, application servers, and single server installations

Installation ScenarioDeployment type and scaleRAMProcessorHard disk space
Single server with a built-in database or single server that uses SQL ServerDevelopment or evaluation installation of SharePoint Foundation 2013 Preview8 GB64-bit, 4 cores80 GB for system drive
Single server with a built-in database or single server that uses SQL ServerDevelopment or evaluation installation of SharePoint Server 2013 Preview24 GB64-bit, 4 cores80 GB for system drive
Web server or application server in a three-tier farmPilot, user acceptance test, or production deployment of SharePoint Server 2013 Preview12 GB64-bit, 4 cores80 GB for system drive

Hardware requirements—database servers

ComponentMinimum requirement
Processor
  • 64-bit, 4 cores for small deployments
  • 64-bit, 8 cores for medium deployments
RAM
  • 8 GB for small deployments
  • 16 GB for medium deployments

For large deployments, see the “Estimate memory requirements” section in Storage and SQL Server capacity planning and configuration (SharePoint Server 2010).

These values are larger than those recommended as the minimum values for SQL Server because of the distribution of data that is required for a SharePoint 2013 Preview environment. For more information about SQL Server system requirements, see Hardware and Software Requirements for Installing SQL Server 2008 R2.

Hard disk80 GB for system drive

Hard disk space depends on how much content that you have in your deployment. For information about how to estimate the amount of content and other databases for your deployment, see Storage and SQL Server capacity planning and configuration (SharePoint Server 2010).

 

Source: http://technet.microsoft.com/en-us/library/cc262485(v=office.15).aspx#hwforwebserver