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:
- Connect
- Diagnostics
- RemoteAccess
- RemoteForwarder
- WebDeploy
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.
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:
<ServiceDefinition> <WorkerRole> <Imports> <Import moduleName="[PluginName]" /> </Imports> </WorkerRole> </ServiceDefinition>
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" ?> <RoleModule xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" namespace="Your.Namespace.[PluginName]"> <Startup priority="-1"> <Task commandLine="Task1.cmd" executionContext="elevated" taskType="simple" /> <Task commandLine="Task2.exe" executionContext="elevated" taskType="background" /> </Startup> <ConfigurationSettings> <Setting name="SettingName" /> </ConfigurationSettings> <Endpoints> <InputEndpoint name="Name" protocol="tcp" port="1337" localPort="*" ignoreRoleInstanceStatus="true" /> </Endpoints> <Certificates> </Certificates> </RoleModule>
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.