Azure App Services

Is it possible to manage Azure app services with Chef? Not the traditional VMs deployments, obviously, but true services.

Any thoughts would be awesome!

It is certainly possible to use Chef to provision PaaS resources in Azure (e.g. KeyVault, SQL Azure, RemoteApp instances and App Services).

What you probably need is a combination of Chef Provisioning and the Azure Resource Manager driver for Chef Provisioning* (see http://github.com/pendrica/chef-provisioning-azurerm) to provision any resources that work with Azure Resource Manager.

You can use the Resource Explorer (https://resources.azure.com/subscriptions) to extract the Resource Manager JSON fragments you need to build up your site, and play those through Chef Provisioning. You’ll find you still need a “provisioning node” however to run the provisioning from.

One other tool you may find useful is a tool to help create the automation users, roles and credentials file that Chef uses to talk to Azure. You’ll find it at http://github.com/pendrica/azure-credentials

Feel free to DM me if you need more information or help with the concepts, I’d certainly be interested in hearing about specific use cases you think you could use Chef for.

regards,
Stuart

  • (I wrote this driver)

stuartpreston

I’m very interested in using chef with azure. Terraform is great, but azure support is still very young. I’d love to see a blog post or video walking through a use case of how chef-provisioning could spin up and tear down IIS webservers (managed with chef) in Azure.

Yes, for this (IaaS VMs in Azure with IIS) the way I like to think about it is to separate your provisioning concerns (communicating with Azure, creating the VMs needed and getting Chef Client installed working on them) from the configuration management concerns (configuring the IIS Windows Feature). When you do that you find there are a number of ways to accomplish the end result on your nodes. Starting with a Windows 2012 R2 VM with WMF 5 installed, you could use the dsc_resource resource in a cookbook to enable the IIS Windows Feature. Or you could use the windows_feature resource from the Windows cookbook, or use the built in PowerShell commandlets (Add-WindowsFeature etc.) inside a powershell_script resource.

In any case yes I’ve been working on recording a demo and hope to publish in on my blog in the next few weeks. I’ll report back when it’s up.

Hi Stuart, I would like to use the driver, please suggest a github location. My environment consist of various Azure PaaS based applications, Chef will be the single provisioning tool. suggest next step, it is an urgent requirement, so need your valuable input.

Have a great day!

Thanks
Sathish

Hi Sathish,

Wow this thread is so… old :slight_smile:

The Chef Provisioning driver for Azure is still just about alive and kicking at https://github.com/pendrica/chef-provisioning-azurerm

It basically offers a bridge between the Chef world of environments and attributes and the Azure world of ARM template deployments. Many PaaS ARM templates can be found at https://github.com/Azure/azure-quickstart-templates/ that you can use in your cookbook along with the provisioning driver.

The Chef Provisioning project itself is not under active development, and may not work with Chef 13 at this point. YMMV.

Hope this helps!
Stuart

Hi Stuart,

Thanks for the response :slight_smile:
My environment consist of 10 different applications running in Azure PaaS which includes Azure Hadoop HDInsight, API Gateway,.etc. The objective is to use Chef as a Configuration Management tool to provision infrastructure as well as publishing application in PaaS.

Will try out this bridging driver and update you.

Thanks
Sathish

Hi Stuart,

a video walkthrough on this would be great, also please provide your contacts.

Thanks
Sathish

Hi Sathish,

I wrote a book on the topic - see https://bit.ly/chefazure - there’s no specific video walkthrough. Probably worth having a read, trying a few things out and then if you have specific issues we can take them here, in the Chef Community Slack #chef-provisioning channel, or failing all that my email address is public on my Github profile: stuartpreston.

thanks,
Stuart