Turn your infrastructure into code with Chef, and update your Assembly information with May’s Team Services Extensions Roundup

May is coming to a close, and we’ve had more Team Services accounts installing extensions than any month since we launched the Marketplace. The ecosystem momentum we’ve seen this year is strong, and there are still so many exciting integration opportunities out there to go enable. For this roundup I’ve got two great extensions, and to start us off you’ll need your cookbook because the first one up is…

Chef 

Let’s get cooking, Chef has come to the Visual Studio Team Services Marketplace! If you’re not familiar with Chef, they offer an infrastructure automation platform with a slick custom development kit allowing you to ‘turn your infrastructure into code’. In their words, “Infrastructure described as code is flexible, versionable, human-readable, and testable.” The Chef team wrote their own extensive blog post about this release and I encourage you to check that out as well.

The Chef extension adds six new Build & Release tasks for configuring Chef Automate

The tasks in this extension automate the common activities you perform when interacting with the Chef Automate platform. For a detailed look at setup and configuration, check out the getting started guide on GitHub. The tasks included in the extension typically used as part of the build process are:

  • Update cookbook version number: Allows you to take your current build number and set the version of a Chef cookbook with that version prior to uploading.
  • Upload cookbook to Chef Server: Allows you to specify a path containing a cookbook from within your repo, and have it uploaded to your Chef Server, along with all prerequisites if you have specified them.

The tasks typically used as part of your Release process are:

  • Add variables to Chef Environment: Using this task allows you to copy a set of VSTS Release Management variables for your Environment, over to a specified Chef environment.
  • Release cookbook version to environment: This task allows you to specify a version ‘pin’ for a Chef cookbook in a particular environment.  You can use this task in a Release Pipeline to ‘release’ cookbooks to that environment.
  • Execute InSpec: Execute InSpec on machines in a Deployment Group
  • Execute Chef Client: Execute Chef Client on machines in a Deployment Group

We are so happy to have Chef join the Team Services extension ecosystem, so take your infrastructure to the next level and give them a shot. I met some wonderful members of their team at Microsoft //Build/ and this team has some seriously cool technology they’re working on. After using Chef, you’ll want to describe every aspect of your life in code 🙂

Assembly Info

This extension adds a build task that allows you to configure your assembly information, such as Company, Version, Trademark, and others. This is a major time saver and our Marketplace customers have very quickly called this extension out for what it is, great.

‘Set Assembly Manifest Data’ is the task added by this extension.

The task added by Assembly Info allows you to configure and set the following assembly properties:

  • Title – Provides a title name for the assembly.
  • Product – Provides the product information for the assembly.
  • Description – Provides a detailed description of the product or modules that comprise the assembly.
  • Company – Provides the company information for the assembly.
  • Copyright – Provide the assembly or product copyright information.
  • Trademark – Provides the assembly or product trademark information.
  • Culture – Provides information on what language the assembly supports.
  • Configuration – Provides the build configuration for the assembly, such as debug or release.
  • Version Number – Provides a version number for the application.
  • File Version Number – Provides a file version number for the application.

For the full set of configuration instructions, check out their instructions on the Marketplace.

Are you using (or building) an extension you think should be featured here?

I’ll be on the lookout for extensions to feature in the future, so if you’d like to see yours (or someone else’s) here, then let me know on Twitter!

@JoeB_in_NC

2