Puppet module for managing Azure Pipelines (VSTS, TFS) agents

Jacob Henner



3,569 latest version

5.0 quality score

Version information

  • 1.0.0 (latest)
released Dec 2nd 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.7.0 < 6.0.0
  • Debian

Start using this module


jacobhenner/azure_pipelines — version 1.0.0 Dec 2nd 2018


Table of Contents

  1. Description
  2. Setup - The basics of getting started with azure_pipelines
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module


This module manages the installation of agents for Microsoft's Azure Pipelines, previously called Visual Studio Team Services (VSTS). Both standard agents and deployment group agents are supported.

At this time, only agent installation is handled. Configuration changes (e.g. adding a deployment group tag, removing an agent) are not supported.

This module was previously called vsts_agent, prior to the 1.0.0 release.


Setup Requirements

All dependencies for the agent must be installed prior to using this module.

On Windows, the System.IO.Compression.FileSystem .NET assembly must be available.

If you are unable to download packages from the internet (either directly or through a proxy), you will need a locally accessible copy of the agent.

Beginning with azure_pipelines

To install an instance of the agent with minimal configuration:

azure_pipelines::agent { 'testagent':
    install_path   => '/opt/azure_pipelines/testagent',
    token          => 'pat-token',
    instance_name  => 'instance-name',
    service_user   => 'vsts',
    service_group  => 'vsts',
    run_as_service => true,

To force * URLs (if URLs are blocked):

azure_pipelines::agent { 'testagent':
    install_path   => '/opt/vsts/testagent',
    token          => 'pat-token',
    instance_name  => 'instance-name',
    service_user   => 'vsts',
    service_group  => 'vsts',
    run_as_service => true,
    vsts           => true,


An example of basic configuration is provided above.

This module supports all of the parameters that can be passed to the VSTS agent's configuration script.


Please see the parameter documentation in agent.pp or generate documentation using puppet strings.


This module has only been tested on Windows Server 2016, CentOS 7, and macOS Sierra.

This module does not yet support upgrading agents, or changing the configuration of existing agents.

On Windows, install_path must be specified using backslashes due to a limitation in the dirtree module.

There are currently no automated tests for this module.


Contributions are encouraged! Please open a pull request for all proposed changes.