I’ve been doing a lot of working lately with running Remote Desktop Service (RDS) in Azure and have been fairly frequent errors relating to Excel, one of the applications we are publishing. This error would manifest as an error when launching Excel which seemed to indicate that Excel had run out of memory or disk space.
After investigating memory and disk usage to no avail, all looked fine, I stumbled upon the answer, user profile disks.
The PowerShell DSC Package resource can be used to install (and uninstall) software from a machine using DSC. This is a great resource to get software installed, but it does have a slight complication, in that it requires a product ID for the package you are installing. It’s understandable why, it uses this to confirm that the particular version of the software is present, but it can be a pain to get this ID.
//Build (henceforth known as just Build) is Microsoft’s annual developer conference held last week in San Francisco. As you might expect there were a large amount of announcements, including a lot of Azure ones. Many of the Azure ones where IoT and Analytics focused but there were quite a few IaaS announcements that I am going to summarise here. I’m sure I have missed some, and I won’t go into great detail here, expect upcoming posts on some of these areas.
It’s quite a common occurence in an Azure Resource Manager template to be creating a storage account and then need the key for that storage account later in the script. For example I have a template that creates a storage account, then a website and then adds an application setting to that website with a connection string for storage.
Previously to do this you could use the following syntax in an ARM template
Azure Resource Manager (ARM), the new V2 method for deploying Azure resources offers a new template based deployment method. Using JSON based templates it is quick and easy to build a repeatable deployment process. If you are just starting out with this new process then the resources below may help with your transition.
Azure Resource Manager Quick Start Templates https://github.com/Azure/azure-quickstart-templates
Microsoft has produced a huge range of pre-built templates using ARM that you can either deploy straight to Azure from the Github repository, or download and use as the basis for your own templates.
==Updated 24th Feb with more information==
When recently deploying a Remote Desktop environment into Azure with ARM and the DSC extension I encountered an issue when I got to calling the xRDSessionDeployment resource to create the new deployment. The deployment would be created OK, but this would then be followed by the machine rebooting 5-10 times before DSC finally generated an error and would not move on to the next task.
Azure Premium storage is a relatively new Azure feature that lets you replace your standard storage account with high performance, lower latency storage at an additional cost. Throughput of up to 200MB/s can be achieved with a single disk, and even more if multiple disks are combined on a single server.
This all sounds great, but users of Premium Storage may find themselves disappointing when first testing this hardware, and receive less than advertised performance.
Back in the days of cloud services every VM created got a set of default endpoints that let in traffic for RDP and Remoting on a random port, and if you wanted ingress on other ports you just created more endpoints. In the V2 world cloud services don’t exist, and endpoints are now primary configured as inbound NAT rules on a load balancer, with the default being no NAT rules. This is ultimately a much better and more secure way of doing it, however it did make it a pain when you needed to add one or more NAT rule for each VM in your deployment, especially when you had lots of VM’s.
Anyone using the Azure DSC Extension for ARM deployments with the “AutoUpgradeMinorVersion” property set to true will notice that the extension version has gone up to 2.9.1. No official announcement as yet on what is in it, but testing has shown that at a minimum this includes a fix for an issue with server 2016 TP4 OS’s where DSC deployments would fail with the error:
ConvertTo-MOFInstance : System.ArgumentException error processing property 'Password' OF TYPE 'MSFT_Credential': Certificate 'AAAAAAAAAAAAAAAAAAA' cannot be used for encryption.
I’ve recently started using the CentOS Linux VM’s in Azure for some work that requires Linux. One thing I noticed quickly after starting to use them was that these VM’s do not come with any swap space configured by default.
You can go ahead and create a swap partition using the standard methods, but when you reboot the VM it won’t perisist, which was a bit infuriating. That was until I discovered that you can make this change in the Azure Linux agent that is installed by default on each VM and it will take care of it for you.