I know many of you have seen the super cool blog post where my fellow team members build a private cloud out of their new Surface Pros. It was a cool idea and people really loved the video.
The cool thing about the Surface Pro is that it’s a normal PC and you can run any regular PC program (Silverlight, Java, Live Writer), as well as many other programs.
I have not bought a Surface Pro yet (my mistake), but I do have a surface RT. I’m really happy with my Surface RT, but it has some limitations that prevent me from doing certain things on it. I recognized this the other day when I was planning on working while away on a trip – but I didn’t want to bring my PC.
Here is what I could not do from my Surface RT:
- Use live writer (the program I’m using to publish this post)
- Use Java (this is necessary for several websites I use on a regular basis)
- Use Silverlight
I started thinking about how I could solve this problem – and then I remembered that I have a MSDN subscription.
With MSDN you get the following every month in Windows Azure:
I want to build a Windows machine running in Windows Azure, which I can connect to from my Surface RT.
In this first blog post, I will do the setup and configuration (This blog post)
In the second blog post, I will walk you through how the “gold image” can be uploaded to Azure (Can be found Here)
I want to run the following programs in my gold image
- Windows Livewriter
Just for the fun of this blog post, all of it is written on the Windows machine already running in Azure from my Surface RT (except a few steps), and wanted to capture my learning’s in this blog post.
I have been using Windows Azure for a while and started to use a windows 2012 server to connect to form my Surface. One thing that started to irritate me was the entire configuration I needed to do every time. I just wanted to create a gold image that I could use every time I provision a Windows machine.
So in order to get my own image, I need to do the following:
- I need to sign up for Windows Azure (covered in this post)
- I need to install App. controller and configure Azure (covered in this post)
- I need to build my own image (covered in this post)
- I need to move my image to windows Azure from my PC (covered in the next post)
- I need to provision the VM based on my image in Azure (covered in the next post)
- I need to connect to the Windows machine using my Surface RT and start writing a blog post (covered in the next post)
- MSDN subscription with access to Azure
- AD Domain for App controller
- Computer running Windows 8 / 2012 with Hyper-V enabled.
Sounds fun, right? Let’s get started.
I need to sign up for Windows Azure
With my MSDN I get:
1500 hours of compute hours
With this, I have been able to run two small machines in Azure without even getting close to the limit. This, of course, depends on what you do and what you enable, which will be at your own risk and cost.
Here is how you can sign up with windows Azure if you have a MSDN subscription:
Login with you MSDN Account
Select Access benefits
Select ”Activate Windows Azure”
When you sign up, make sure it says Windows Azure MSDN
You will be asked for a credit card when activating the subscription. You will only be charged if you use more than you allocated budget.
NOTE: Any charges that you may encounter in connection with signing up will be at your own risk and cost.
Go to https://manage.windowsazure.com and sign in with your Microsoft account (same as you use for your MSDN)
I need to install App. controller and connect to windows Azure
App Controller is a tool that can be used to manage multiple clouds from one console.
App controller can connect to different cloud environments such as VMM and Windows Azure.
An App Controller installation consists of the following features:
- One App Controller server
- App Controller server hosts a website console for access by using a supported browser.
- A SQL Server database
- Windows PowerShell cmdlets
All these applications can be down loaded from the MSDN download page using the MSDN download area.
Steps to install App. Controller can be found here:
Once you have App Controller running following the guidance above, you can sign into App. controller
Configure connection to Azure using certificates:
On the server where App. controller web server is running follow these steps:
- First you need to create a Management Certificate:
To create your own self-signed management certificates, open a Visual Studio command prompt and execute the following command:
makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"
E.g. makecert -sky exchange -r -n "CN=WinAzure" -pe -a sha1 -len 2048 -ss My "c:\temp\WinAzure.cer"
- Create a Service Certificate for Windows Azure
I used Create a personal Information Exchange Certificate > To Export a .pfx file by using Certificate Manager and place in c:\temp on the App. Controller server
- Login to Windows Azure Portal: https://manage.windowsazure.com from App. controller server
- Select “Settings”
- Select Manage Certificates
- Select “Upload from the bottom of the screen”
- Select “Browse”
- Go to c:\temp
- Select the *.cer file and click “Ok“
- Once the certificate is uploaded, select “Subscription ID” in the column and cut this to the clipboard.
Connect App. controller to Azure subscription
- On the App. Controller server start App controller console as Administrator if not already started
- In the App. controller console select Settings > Subscriptions and click “Add”
- Give the connection a name
- Paste the subscription ID from the clipboard
- Click browse and go to c:\temp and select the pfx file
- Give the password used when exporting the file from Cert manager
- Click “OK”.
- Click “Ok“
- Select “Library“
- Select the newly created Azure subscription
- Click “Create storage”
- Give the storage account a name E.g. azurestoragexyz
- Select “West US” for Region and click “Ok”
- Select the newly created storage account and select “Create container”
- Give the container a name and click “Ok“
Build my own Windows 2012 image
We need to create our own image with Windows update and our programs pre-installed. For virtual images running in Azure, there are a few rules that needs to be followed in order for the image to function correctly. These rules are:
- Only vhd files can be uploaded and used (VHDX will not work)
- The image has to be syspreped
- Only fix-sized images will work.
As long as these three rules are kept in mind, you should be ok.
In order to create our own image we will do the following:
- Download Windows 2012 ISO image from MSDN as well as get a product key and place this image on the server running Windows 2012 Hyper-V
- Start Hyper-v Manager on the Windows 2012 server
- Select New > Virtual Machine under “Action Menu”
- Click Next
- Give the Virtual Machine a name, e.g. Windows2012Base
- Select a location for the VM if needed and click ”Next”
- Assign Memory and click “Next” (Does not need to be more than 1024)
- Select a network that has connection to the internet and click “Next” (We need internet in order to use windows update)
- Under Virtual Disk Select Attach a virtual hard disk later and click “Next”
- Click Finish to create the VM
- Select New > Hard Disk under “Action Menu“
- Select VHD and click “Next”
- Select “Fixed size“
- Specify the name e.g. windows2012base
- Give the location where the VM was placed earlier e.g. D:\VMs\Virtual Machines\Windows2012Base, click “Next”
- Set size to approx. 30 Gb and click “Finish”
- Select VM created earlier in Hyper-V manager and right click and select “Settings“
- Select IDE Controller 0 > Hard Drive and click “Add“
- Click “Browse” and go to the location where the VHD was created
- Click on “DVD Drive” under IDE Controller 1
- Select Image file
- Browse to the location where the Windows2012 ISO file is located (Downloaded from MSDN earlier)
- Click “OK“
- Start the VM
- Double Click on the VM to connect to the console
- Select language and keyboard, Click next
- Click “Install now”
- Paste the license key from MSDN into the field and click next
TIP: You can use paste from clipboard > Type Clipboard text
- Select Windows Server with GUI, click “Next”
- Accept license and click “Next”
- Select “Custom: Install..”
- Click “Next”, after some time the VM will reboot a few times after installing the files
- Specify Password
- Click “Finish “
- Wait for the installation to finish
- Login as Administrator
- Go to “Control Panel” > “System and Security” > “System“
- Select Remote settings
- Select “Allow remote connections to this computer”, uncheck “Allow connections only from…” and click “Ok “
- Start Windows update
- Select check for updates
- Install recommended updates and restart
- After restart run Windows update once more and install any updates missing, restart if needed
- Install Java from here: http://www.java.com/en/download/win8.jsp?locale=en
- Install Silverlight form here: http://www.microsoft.com/getsilverlight/get-started/install/default.aspx
- Install Live Writer from here: http://g.live.com/1rewlive5-web/en/wlsetup-web.exe
- Start a command prompt as Admin
- Go to c:\windows\system32\sysprep (cd c:\windows\system32\sysprep)
- run sysprep.exe
- Select the following options:
- Click “Ok” and sysprep will start, when done, the VM will shutdown.
- Open explorer and go to the directory where the VM vhd is located.
- Copy the VHD from the Hyper-v server to the App. Controller server. e.g c:\vhdstore
- Share the folder e.g. c:\vhdstore on the App Controller server
In the next post I’ll explain how you can upload the VHD to Azure, provision a Windows 2012 server to run in Azure, and access it from a Surface RT to write a blog post.