Skip to content
Russell Seymour edited this page Oct 16, 2018 · 9 revisions

The Chef integration for Visual Studio Team Services provides a set of tasks to automate commonly performed build and release activities against the Chef Automate platform.

This site provides detailed documentation on the released tasks.

Getting Started

Agent Compatibility

There are a number of tasks in the extension, most of them work on Windows and Linux in both private and Hosted Agents. However there are a couple of places where this is not the case. The following table shows what tasks will run where.

Task Private Windows Agent Private Linux Agent Hosted Windows Agent Hosted Linux Agent
Update Cookbook Version Number Yes Yes Yes Yes
Upload Cookbook to Chef Server Yes Yes Yes Yes
Install ChefDK Yes Yes No Yes
Linting Yes Yes Yes Yes
Test Kitchen Yes Yes Yes Yes
Install Cookbook Gems Yes Yes Yes Yes
Install Gem Yes Yes Yes Yes
Execute Knife Yes Yes Yes Yes
Add Variables to Chef Environment Yes Yes Yes Yes
Release cookbook version to environment Yes Yes Yes Yes
Install InSpec Yes Yes No Yes
Excute InSpec Yes Yes Yes Yes
Execute Chef Client Yes Yes Yes Yes
Publish Cookbook to Supermarket Yes Yes Yes Yes

**Note: ** To install ChefDK or InSpec on a Private Linux Agent then task process must be running as root or under an account that has passwordless sudo access. For a Private Windows Agent the process must be running with elevated privileges.

Extension Wide Behaviour

In some scenarios it maybe necessary to run more than one Azure DevOps agent on one machine. In this situation, if the flag to remove the private key is selected on a task, one agent will complete before the other one and therefore remove the private key. This means that it will not be available for the other agent and thus the pipeline will fail.

To allow this scenario to work, the extension will now name the private key filename based on the agent ID and, if available, the release environment name. This allows the task to work during the build phase and the release phase.

Releases

We are continually developing and updating the extension. To keep track of the changes please refer to the release versions below or from the navigation.