Preface

This document describes the functionality provided by the Internet Information Services (IIS) plugin.

Refer to Deployit Reference Manual for background information on Deployit and deployment concepts.

Overview

The IIS plugin is a Deployit plugin that adds the capability to perform IIS deployments and configuration tasks.

Features

  • Deploys and undeploys IIS web content.
  • Creates and destroys IIS configuration elements:
    • websites
    • application pools
    • applications
    • virtual directories
  • Stops and starts websites as necessary.

Requirements

  • Deployit requirements:

    • Deployit version 3.8.0 or higher.
    • Internet Information Services version 7.0 or higher.
      • Tested on IIS 7.0 (Windows Server 2008), IIS 7.5 (Windows Server 2008 R2) and IIS 8.0 (Windows Server 2012).
  • Infrastructural requirements:

    • Administrative access to the target Windows machine.

Usage in deployment packages

The plugin works with the standard deployment package DAR format. Please see the Packaging Manual for more details about the DAR format and the ways to compose one. The following is a sample MANIFEST.MF file that includes a few of the deployables provided by the IIS plugin:

Manifest-Version: 1.0
Deployit-Package-Format-Version: 1.3
CI-Application: NerdDinner
CI-Version: 2.0

Name: NerdDinner
CI-Type: iis.WebsiteSpec
CI-physicalPath: C:\inetpub\nerddinner
CI-port: 88
CI-applicationPoolName: NerdDinner-applicationPool

Name: NerdDinner-applicationPool
CI-Type: iis.ApplicationPoolSpec
CI-managedRuntimeVersion: v4.0

Name: NerdDinner-Files
CI-targetPath: C:\inetpub\nerddinner
CI-Type: iis.WebContent
CI-Name: NerdDinner-Files

Using the deployables and deployeds

The following table describes which deployable/container combinations are possible.

Deployable vs. Container table

Deployable Container Generated deployed
iis.ApplicationSpec iis.Server iis.Application
iis.ApplicationPoolSpec iis.Server iis.ApplicationPool
iis.VirtualDirectorySpec iis.Server iis.VirtualDirectory
iis.WebContent iis.Server iis.PublishedWebContent
iis.WebsiteSpec iis.Server iis.Website

The following table describes the effect a deployed has on its container

Deployed Actions Table

Deployed Actions performed for operations
  Create Destroy Modify Noop
iis.Application
  1. Create application
  1. Destroy application
  1. Destroy application
  2. Create application
 
iis.ApplicationPool
  1. Create application pool
  1. Destroy application pool
  1. Destroy application pool
  2. Create application pool
 
iis.PublishedWebContent
  1. Copy web content to IIS server
  1. Remove web content from IIS server
  1. Remove web content from IIS server
  2. Copy web content to IIS server
 
iis.VirtualDirectory
  1. Create virtual directory
  1. Destroy virtual directory
  1. Destroy virtual directory
  2. Create virtual directory
 
iis.Website
  1. Create website
  2. Start website
  1. Stop website
  2. Destroy website
  1. Stop website
  2. Destroy website
  3. Create website
  4. Start website
  1. Stop website (iff stopStartOnNoop equals true)
  2. Start website (iff stopStartOnNoop equals true)

Extending the IIS plugin

The IIS plugin has been written upon the foundations provided by the PowerShell plugin, which is a standard part of the Deployit server distribution. Please refer to the documentation of the PowerShell plugin for details on how to extend PowerShell-based plugins.

CI Reference

Configuration Item Overview

Deployables

CI Description
iis.ApplicationPoolSpec Specification of an IIS application pool
iis.ApplicationSpec Specification of an IIS application
iis.VirtualDirectorySpec Specification of an IIS virtual directory
iis.WebContent Folder containing IIS web content (ASP pages, HTML pages, images, stylesheets, etc)
iis.WebsiteSpec Specification of an IIS website

Deployeds

CI Description
iis.Application IIS application
iis.ApplicationPool IIS application pool
iis.PublishedWebContent Published IIS web content
iis.VirtualDirectory IIS virtual directory
iis.Website IIS website

Containers

CI Description
iis.Server Internet Information Services

Other Configuration Items

CI Description
iis.Application IIS application
iis.ApplicationPool IIS application pool
iis.ApplicationPoolSpec Specification of an IIS application pool
iis.ApplicationSpec Specification of an IIS application
iis.PublishedWebContent Published IIS web content
iis.Server Internet Information Services
iis.VirtualDirectory IIS virtual directory
iis.VirtualDirectorySpec Specification of an IIS virtual directory
iis.WebContent Folder containing IIS web content (ASP pages, HTML pages, images, stylesheets, etc)
iis.Website IIS website
iis.WebsiteSpec Specification of an IIS website

Configuration Item Details

iis.Application

Type Hierarchy powershell.ExtensiblePowerShellDeployed >> powershell.BaseExtensiblePowerShellDeployed >> powershell.BasePowerShellDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces udm.Deployed, udm.ConfigurationItem

IIS application

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
physicalPath : STRING
Physical path of this application
 
 
protocols : STRING  = http
Protocols supported by this application
 
 
websiteName : STRING
Name of the website under which to create this application
 
 
applicationPath : STRING
Path of this application within the website. Defaults to the name of the deployed if not specified
 
 
applicationPoolName : STRING
Name of the application pool for this application. Defaults to the default application pool of the IIS installation
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
Hidden Properties
 
 
createOrder : INTEGER  = 60
Order in which a create step will be executed.
 
 
createScript : STRING  = iis/create-application.ps1
Create Script
 
 
createVerb : STRING  = Create
Verb that is used to prefix a step description for the create operation.
 
 
destroyOrder : INTEGER  = 40
Order in which a destroy step will be executed.
 
 
destroyScript : STRING  = iis/destroy-application.ps1
Destroy Script
 
 
destroyVerb : STRING  = Destroy
Verb that is used to prefix a step description for the destroy operation.
 
 
modifyOrder : INTEGER  = 60
Order in which a modify step will be executed.
 
 
modifyVerb : STRING  = Modify
Verb that is used to prefix a step description for the modify operation.
 
 
noopOrder : INTEGER  = 50
Order in which a noop step will be executed.
 
 
noopVerb : STRING  = Noop
Verb that is used to prefix a step description for the noop operation.
 
 
startOrder : INTEGER  = 90
Order in which a start step will be executed.
 
 
startVerb : STRING  = Start
Verb that is used to prefix a step description for the start operation.
 
 
stopOrder : INTEGER  = 10
Order in which a synchronize after modify stop will be executed.
 
 
stopVerb : STRING  = Stop
Verb that is used to prefix a step description for the stop operation.
 
 
exposeDeployedApplication : BOOLEAN  = false
If set to true, the deployed application CI is exposed to the PowerShell script.
 
 
modifyScript : STRING
PowerShell script invoked to upgrade an artifact or a resource on Windows.
 
 
noopScript : STRING
PowerShell script invoked to noop an artifact or a resource on Windows.
 
 
startScript : STRING
PowerShell script invoked to start an artifact or resource on Windows.
 
 
stopScript : STRING
PowerShell script invoked to stop an artifact or resource on Windows.
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, the stop and start scripts will be executed even if this deployable was not changed.

iis.ApplicationPool

Type Hierarchy powershell.ExtensiblePowerShellDeployed >> powershell.BaseExtensiblePowerShellDeployed >> powershell.BasePowerShellDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces udm.Deployed, udm.ConfigurationItem

IIS application pool

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
managedRuntimeVersion : STRING  = v4.0
Version of .NET for this application pool
 
 
applicationPoolName : STRING
Name of this application pool. Defaults to the name of the deployed if not specified
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
Hidden Properties
 
 
createOrder : INTEGER  = 56
Create Order
 
 
createScript : STRING  = iis/create-application-pool.ps1
Create Script
 
 
createVerb : STRING  = Create
Verb that is used to prefix a step description for the create operation.
 
 
destroyOrder : INTEGER  = 44
Destroy Order
 
 
destroyScript : STRING  = iis/destroy-application-pool.ps1
Destroy Script
 
 
destroyVerb : STRING  = Destroy
Verb that is used to prefix a step description for the destroy operation.
 
 
modifyOrder : INTEGER  = 60
Order in which a modify step will be executed.
 
 
modifyVerb : STRING  = Modify
Verb that is used to prefix a step description for the modify operation.
 
 
noopOrder : INTEGER  = 50
Order in which a noop step will be executed.
 
 
noopVerb : STRING  = Noop
Verb that is used to prefix a step description for the noop operation.
 
 
startOrder : INTEGER  = 90
Order in which a start step will be executed.
 
 
startVerb : STRING  = Start
Verb that is used to prefix a step description for the start operation.
 
 
stopOrder : INTEGER  = 10
Order in which a synchronize after modify stop will be executed.
 
 
stopVerb : STRING  = Stop
Verb that is used to prefix a step description for the stop operation.
 
 
exposeDeployedApplication : BOOLEAN  = false
If set to true, the deployed application CI is exposed to the PowerShell script.
 
 
modifyScript : STRING
PowerShell script invoked to upgrade an artifact or a resource on Windows.
 
 
noopScript : STRING
PowerShell script invoked to noop an artifact or a resource on Windows.
 
 
startScript : STRING
PowerShell script invoked to start an artifact or resource on Windows.
 
 
stopScript : STRING
PowerShell script invoked to stop an artifact or resource on Windows.
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, the stop and start scripts will be executed even if this deployable was not changed.

iis.ApplicationPoolSpec

Type Hierarchy powershell.BasePowerShellDeployable >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.ConfigurationItem

Specification of an IIS application pool

Public Properties
 
 
applicationPoolName : STRING
Name of this application pool. Defaults to the name of the deployed if not specified (string)
 
 
managedRuntimeVersion : STRING
Version of .NET for this application pool (string)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.

iis.ApplicationSpec

Type Hierarchy powershell.BasePowerShellDeployable >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.ConfigurationItem

Specification of an IIS application

Public Properties
 
 
applicationPath : STRING
Path of this application within the website. Defaults to the name of the deployed if not specified (string)
 
 
applicationPoolName : STRING
Name of the application pool for this application. Defaults to the default application pool of the IIS installation (string)
 
 
physicalPath : STRING
Physical path of this application (string)
 
 
protocols : STRING
Protocols supported by this application (string)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
 
 
websiteName : STRING
Name of the website under which to create this application (string)

iis.PublishedWebContent

Type Hierarchy powershell.ExtensiblePowerShellDeployedArtifact >> powershell.BaseExtensiblePowerShellDeployed >> powershell.BasePowerShellDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

Published IIS web content

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
targetPath : STRING
Path where this web content should be copied to
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
placeholders : MAP_STRING_STRING
A Map containing all the placeholders mapped to their values. Special values are or
Hidden Properties
 
 
createOrder : INTEGER  = 54
Create Order
 
 
createScript : STRING  = iis/deploy-webcontent.ps1
Create Script
 
 
createVerb : STRING  = Copy
Create Verb
 
 
destroyOrder : INTEGER  = 46
Destroy Order
 
 
destroyScript : STRING  = iis/undeploy-webcontent.ps1
Destroy Script
 
 
destroyVerb : STRING  = Remove
Destroy Verb
 
 
modifyOrder : INTEGER  = 60
Order in which a modify step will be executed.
 
 
modifyVerb : STRING  = Modify
Verb that is used to prefix a step description for the modify operation.
 
 
noopOrder : INTEGER  = 50
Order in which a noop step will be executed.
 
 
noopVerb : STRING  = Noop
Verb that is used to prefix a step description for the noop operation.
 
 
startOrder : INTEGER  = 90
Order in which a start step will be executed.
 
 
startVerb : STRING  = Start
Verb that is used to prefix a step description for the start operation.
 
 
stopOrder : INTEGER  = 10
Order in which a synchronize after modify stop will be executed.
 
 
stopVerb : STRING  = Stop
Verb that is used to prefix a step description for the stop operation.
 
 
exposeDeployedApplication : BOOLEAN  = false
If set to true, the deployed application CI is exposed to the PowerShell script.
 
 
modifyScript : STRING
PowerShell script invoked to upgrade an artifact or a resource on Windows.
 
 
noopScript : STRING
PowerShell script invoked to noop an artifact or a resource on Windows.
 
 
startScript : STRING
PowerShell script invoked to start an artifact or resource on Windows.
 
 
stopScript : STRING
PowerShell script invoked to stop an artifact or resource on Windows.
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, the stop and start scripts will be executed even if this deployable was not changed.

iis.Server

Type Hierarchy powershell.BasePowerShellContainer >> udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces udm.Taggable, powershell.PowerShellContainer, udm.ConfigurationItem, udm.Container, overthere.HostContainer

Internet Information Services

Parent
 
 
host : CI<overthere.Host>
Host upon which the container resides
Public Properties
 
 
tags : SET_OF_STRING
If set, only deployables with the same tag will be automatically mapped to this container.
Hidden Properties
 
 
runtimePath : STRING  = iis/runtime
Runtime Path
 
 
powerShellPath : STRING  = powershell
Power Shell Path

iis.VirtualDirectory

Type Hierarchy powershell.ExtensiblePowerShellDeployed >> powershell.BaseExtensiblePowerShellDeployed >> powershell.BasePowerShellDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces udm.Deployed, udm.ConfigurationItem

IIS virtual directory

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
physicalPath : STRING
Physical path of this virtual directory
 
 
websiteName : STRING
Name of the website under which to create this virtual directory
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
virtualDirectoryPath : STRING
Path of this virtual directory within the website. Defaults to the name of the deployed if not specified
Hidden Properties
 
 
createOrder : INTEGER  = 60
Order in which a create step will be executed.
 
 
createScript : STRING  = iis/create-virtual-directory.ps1
Create Script
 
 
createVerb : STRING  = Create
Verb that is used to prefix a step description for the create operation.
 
 
destroyOrder : INTEGER  = 40
Order in which a destroy step will be executed.
 
 
destroyScript : STRING  = iis/destroy-virtual-directory.ps1
Destroy Script
 
 
destroyVerb : STRING  = Destroy
Verb that is used to prefix a step description for the destroy operation.
 
 
modifyOrder : INTEGER  = 60
Order in which a modify step will be executed.
 
 
modifyVerb : STRING  = Modify
Verb that is used to prefix a step description for the modify operation.
 
 
noopOrder : INTEGER  = 50
Order in which a noop step will be executed.
 
 
noopVerb : STRING  = Noop
Verb that is used to prefix a step description for the noop operation.
 
 
startOrder : INTEGER  = 90
Order in which a start step will be executed.
 
 
startVerb : STRING  = Start
Verb that is used to prefix a step description for the start operation.
 
 
stopOrder : INTEGER  = 10
Order in which a synchronize after modify stop will be executed.
 
 
stopVerb : STRING  = Stop
Verb that is used to prefix a step description for the stop operation.
 
 
exposeDeployedApplication : BOOLEAN  = false
If set to true, the deployed application CI is exposed to the PowerShell script.
 
 
modifyScript : STRING
PowerShell script invoked to upgrade an artifact or a resource on Windows.
 
 
noopScript : STRING
PowerShell script invoked to noop an artifact or a resource on Windows.
 
 
startScript : STRING
PowerShell script invoked to start an artifact or resource on Windows.
 
 
stopScript : STRING
PowerShell script invoked to stop an artifact or resource on Windows.
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, the stop and start scripts will be executed even if this deployable was not changed.

iis.VirtualDirectorySpec

Type Hierarchy powershell.BasePowerShellDeployable >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.ConfigurationItem

Specification of an IIS virtual directory

Public Properties
 
 
physicalPath : STRING
Physical path of this virtual directory (string)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
 
 
virtualDirectoryPath : STRING
Path of this virtual directory within the website. Defaults to the name of the deployed if not specified (string)
 
 
websiteName : STRING
Name of the website under which to create this virtual directory (string)

iis.WebContent

Type Hierarchy powershell.BasePowerShellDeployableFolderArtifact >> udm.BaseDeployableFolderArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FolderArtifact

Folder containing IIS web content (ASP pages, HTML pages, images, stylesheets, etc)

Public Properties
 
 
excludeFileNamesRegex : STRING
Regular expression that matches file names that must be excluded from scanning
 
 
placeholders : SET_OF_STRING
Placeholders detected in this artifact
 
 
scanPlaceholders : BOOLEAN  = true
Whether to scan this artifact for placeholders when it is imported
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
 
 
targetPath : STRING
Path where this web content should be copied to (string)
Hidden Properties
 
 
textFileNamesRegex : STRING  = .+\.(cfg | conf | config | ini | properties | props | txt | asp | aspx | htm | html | jsf | jsp | xht | xhtml | sql | xml | xsd | xsl | xslt)
Regular expression that matches file names of text files

iis.Website

Type Hierarchy powershell.ExtensiblePowerShellDeployed >> powershell.BaseExtensiblePowerShellDeployed >> powershell.BasePowerShellDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces udm.Deployed, udm.ConfigurationItem

IIS website

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
physicalPath : STRING
Physical path of this website
 
 
port : INTEGER  = 80
Port on which this website runs
 
 
applicationPoolName : STRING
Name of the application pool for this website. Defaults to the default application pool of the IIS installation
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, this website is stopped and started when another component in the same package is deployed
 
 
websiteName : STRING
Name of this website. Defaults to the name of the deployed if not specified
Hidden Properties
 
 
createOrder : INTEGER  = 58
Create Order
 
 
createScript : STRING  = iis/create-website.ps1
Create Script
 
 
createVerb : STRING  = Create
Verb that is used to prefix a step description for the create operation.
 
 
destroyOrder : INTEGER  = 42
Destroy Order
 
 
destroyScript : STRING  = iis/destroy-website.ps1
Destroy Script
 
 
destroyVerb : STRING  = Destroy
Verb that is used to prefix a step description for the destroy operation.
 
 
modifyOrder : INTEGER  = 60
Order in which a modify step will be executed.
 
 
modifyVerb : STRING  = Modify
Verb that is used to prefix a step description for the modify operation.
 
 
noopOrder : INTEGER  = 50
Order in which a noop step will be executed.
 
 
noopVerb : STRING  = Noop
Verb that is used to prefix a step description for the noop operation.
 
 
startOrder : INTEGER  = 90
Order in which a start step will be executed.
 
 
startScript : STRING  = iis/start-website.ps1
Start Script
 
 
startVerb : STRING  = Start
Verb that is used to prefix a step description for the start operation.
 
 
stopOrder : INTEGER  = 10
Order in which a synchronize after modify stop will be executed.
 
 
stopScript : STRING  = iis/stop-website.ps1
Stop Script
 
 
stopVerb : STRING  = Stop
Verb that is used to prefix a step description for the stop operation.
 
 
exposeDeployedApplication : BOOLEAN  = false
If set to true, the deployed application CI is exposed to the PowerShell script.
 
 
modifyScript : STRING
PowerShell script invoked to upgrade an artifact or a resource on Windows.
 
 
noopScript : STRING
PowerShell script invoked to noop an artifact or a resource on Windows.

iis.WebsiteSpec

Type Hierarchy powershell.BasePowerShellDeployable >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.ConfigurationItem

Specification of an IIS website

Public Properties
 
 
applicationPoolName : STRING
Name of the application pool for this website. Defaults to the default application pool of the IIS installation (string)
 
 
physicalPath : STRING
Physical path of this website (string)
 
 
port : STRING
Port on which this website runs (integer)
 
 
stopStartOnNoop : STRING
If set to true, this website is stopped and started when another component in the same package is deployed (boolean)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
 
 
websiteName : STRING
Name of this website. Defaults to the name of the deployed if not specified (string)