Fork Me on GitHub

Azure Plugin Library

A library of plugins for the Windows Azure SDK

What is it the Azure Plugin Library?

The Azure Plugin Library hosts a number of 'plugin' extensions to the Windows Azure SDK.

The library can be browsed on GitHub, and a console application can be used to install and remove plugins.

What is a plugin?

A plugin comprises of configuration, scripts and binaries that are packaged with your Azure deployment, and executed on the Azure Web or Worker Role.

These plugins will typically alter the configuration of the Azure instance or install a dependency.

The Windows Azure SDK ships with five plugins:

Plugins are installed in this directory:

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\YYYY-MM\bin\plugins

This project aims to extend the capability of the SDK by providing a wide range plugins with a community maintained library, and a command line installer.

Watch a screen cast demonstration

Watch a live demonstration on InfoQ

What plugins are available?

The Azure Plugin Library is maintained in a GitHub repository. You can browse and download the plugins directly from the respository, using the links below, or alternatively use the command line tool.

How do I install a plugin?

Option 1 : Use the AzurePluginManager

The AzurePluginManager (APM) is a command line utility to discover, install, update and remove plugins.

Download the installer (recommended)

Download the binary

Download the source

View on GitHub

Once installed, APM can be used to list the available plugins:

> apm list

Install a plugin:

> apm install ClassicASP

Update a plugin:

> apm update ClassicASP

Remove a plugin:

> apm remove ClassicASP

View installed plugins:

> apm installed

View information about an installed plugin:

> apm info ClassicASP
Option 2 : Manually

Either browse the plugins in the GitHub repository, and manually download the files you want - or clone the entire repository. To install the plugin; copy the folder and files to this location:

C:\Program Files\Windows Azure SDK\v1.x\bin\plugins

How do I include a plugin in my Azure package?

Installed plugins will be included in your Azure package if you add them as an Import in your ServiceDefinition.csdef file:

      <Import moduleName="[PluginName]" />

How do I add my own plugin to the library?

Simply fork the repository and add your plugin to the 'plugins' directory. Issue a pull request, and your plugin will be accepted.

A plugin is a folder, which contains the files that should be included with the Azure package. The folder should contain a [PluginName].csplugin of the name name like this:

<?xml version="1.0" ?>
  <Startup priority="-1">
    <Task commandLine="Task1.cmd" executionContext="elevated" taskType="simple" />
    <Task commandLine="Task2.exe" executionContext="elevated" taskType="background" />
    <Setting name="SettingName" />
    <InputEndpoint name="Name" protocol="tcp" port="1337" localPort="*" ignoreRoleInstanceStatus="true" />

Your plugin folder should be added to the 'plugins' folder of this repository.

How do I register a problem or issue?

To register a problem with a plugin, please create an issue here.

To register a problem with APM, please create an issue here.