All posts filed under: Azure

Microsoft Operations Management Suite Workshop I – August 27th 2016, Bangalore #MSOMS #Azure

As a part of the PowerShell Bangalore and Bangalore IT Pro user group meetings and our continued tradition to do full day workshops, we are back with another cloud workshop this month. This time around, we will focus on Microsoft Operations Management Suite. We have a full-day workshop on MS OMS on 27th August 2016. Here is what we will cover.   OMS Log Analytics [Ravikanth Chaganti, CDM & Azure MVP]   OMS Backup & Recovery [Ravikanth Chaganti]   OMS Automation [Deepak Dhami, CDM MVP] The venue for this event is tentatively Dell India R&D center, Bagmane Tech Park, CV Raman Nagar, Bangalore. These sessions will be demo oriented and we will make sure you that understand the real power of OMS and make use of it. We have limited seats opened at the moment and will hopefully add some more as we move towards the event date. You can register @ https://www.eventbrite.com/e/oms-workshop-i-tickets-26962121431   

Custom Template Deployment Improvements in Azure Portal

When testing ARM templates, I typically use the custom template deployment option in the Azure Portal. This UI option just got better! This deployment option now supports lists the parameters, variables, and resources used in template in a nice treeview navigation. To start a new deployment, you can click on New -> Template Deployment. This opens up the Custom Deployment blade. Click on Edit Template. In the Edit Template blade, copy/paste your template JSON in the editor. In a few seconds, you will see the treeview built for the template. You can expand each node to see the individual elements within each category. Selecting a specific element within a node navigates to the definition for that selection within the JSON template. You can click Save and then proceed to the deployment by completing the remaining steps in the custom deployment. The second enhancement is the option to pull a quick start template from the Github repository and deploy it! In the Load a quickstart template blade, you can select a template listed in the dropdown. …

Building Azure Resource Manager Templates – Forcing WMF 4.0 when using DSC Extension

This subject won’t really need a post of it’s own but I will do it anyway. In the previous part of this ARM series, I showed how we can use the domain join extension instead of DSC to join a VM to an existing AD domain. This resulted is huge savings in time taken to deploy the entire scenario. When I was talking to my good friend, fellow PowerShell MVP and all-things-Azure guru, Ben Gelens, he was quick to point that the delays when using DSC extension here could be due to the install of WMF 5.0. Indeed! When you use Azure DSC extension, it by default installs latest available version of WMF 5.0 (production preview at the time of this writing) which requires a reboot! Therefore, using DSC extension in ARM templates for down-level OS such as Windows Server 2012 or 2012 R2, there will be delays. But, there is a workaround. We can force DSC extension to use WMF 4.0. Here is how we do that.

Observe line number 19. We use the …

Building Azure Resource Manager Templates – Using Domain Join Extension

The scenario that we used to understand and build ARM templates contained a domain controller VM along with one or more VMs that joined the domain service hosted by the DC VM. To make sure the VMs join the domain, we used PowerShell DSC configuration. One of the biggest quirks, at least what I faced, with DSC extension with ARM templates is that it takes little longer to complete. For example, the complete scenario deployment took almost 48 minutes to deploy. I am not making up that number. Here is the proof. Now, 48 minutes may not sound that worse but imagine deploying tens of VMs that need to join the domain using the DSC configuration as we saw in the earlier example in this series. This is where the new JsonADDomainExtension helps! Instead of using DSC configuration to add VMs to a AD domain, we will now use this VM extension. Within the earlier template that deployed this scenario, we will remove the domainJoin resource definition and replace that with JsonADDomainExtension. Here is how that new …

Microsoft #AzureStack is here! #AzureStackOperational – Getting Started

I am sure you must have seen the news already. It has been all over Twitter that Microsoft Azure Stack Technical Preview 1 (TP1) was released on Friday. MAS is undoubtedly the best thing that is happening to Microsoft Private / Hybrid Cloud stack essentially because it brings in the “real” cloud-consistency. MAS release takes Microsoft to a different playing field leaving the competition far behind in the Hybrid cloud story. While TP1 is just proof-of-concept (POC) release, it is good enough to deploy and play with different aspects of MAS architecture, and of course understand how organizations can benefit from this. This post is just an introductory and the first one in a series of many articles I intend to write as I start playing with the POC deployment. I will list out mostly what is already known to everyone out there but I will keep updating as we progress towards the general availability of MAS. I will also post some useful links in this post that you can use to get started with MAS or …

Building Azure Resource Manager Templates – Putting it all together

In this series so far, we looked at building ARM templates by example. The focus was not really on the resource types or how to use resource definitions. Instead, our focus was on learning the basics of template language. To that extent, we have a scenario that we want to deploy and we are incrementally building the template for it. While building an ARM template for this, we looked at how to use parameters and variables. We looked at using copy object to create multiple instances of a resource type without really writing the resource definition multiple times. We went on to find out how we can define dependencies between different resource types so they are orchestrated in the right order. We looked at how we can decompose the template into purpose-specific external templates and how to link them together. While learning these concepts, we created a template that almost built the scenario we started with. We will now add the remaining VMs based on the environmentType selected by the user. So, based on the VM instance count we need, we …

Building Azure Resource Manager Templates – Using Linked Templates

One of the ARM template authoring best practices is to decompose the JSON template, if applicable, into multiple target-specific templates. Think of this as creating re-usable code. You can leverage the re-usable parts of your code within multiple aspects of your application or the deployment. For linking different external templates within the main template, we need to define the Microsoft.Resources/deployments resource instance. Before we proceed let us look at the scenario for which we are building an ARM template. So far in this series, we have looked at building an ARM template that deploys the following components of this scenario: A storage account A virtual network A public IP address A load balancer Virtual network interfaces for the DC and other VMs based on the environment type. Finally, a VM with DNS and Directory Services running in it. By default, the Azure based IaaS deployments use the Azure DNS. If you have deployed the template that we built in the previous part of this series, you will notice that the virtual network us configured to use Azure DNS. Since we …

Building Azure Resource Manager Templates – Defining Resource Dependencies

We will continue learning about building ARM templates by looking at how we can define dependencies between resources. To recap, here is the scenario we are working on. In the earlier parts of this series, we created the storage account, virtual network, a public IP, a load balancer, and added all inbound NAT rules required for the virtual machine RDP access. If you notice, we have components that depend on others. For example, the inbound NAT rules depend on the load balancer. Similarly, VMs depend on network interfaces which in turn depend on the virtual network. In the absence of dependencies, ARM will attempt to deploy these resources in parallel which may result in errors. So, within the resource template, we need to define these dependencies so that ARM can make decisions about the deployment sequence. There are multiple ways of doing this. Using DependsOn If you have noticed in the earlier parts of this series, we have used DependsOn property within the resource element.

If you look at line number 11, we added DependsOn property …