Preface

This document describes the functionality provided by the Windows plugin.

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

Overview

The Windows plugin is a Deployit plugin that adds the capability to perform common Windows configuration and deployment tasks.

Features

  • Installs and uninstalls MSI files.
  • Creates and destroys Windows services
    • Starts and stops Windows services as necessary.
  • Creates and destroys Windows shares.

Requirements

  • Deployit requirements:

    • Deployit version 3.8.4 or higher.
  • 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 Windows plugin:

Manifest-Version: 1.0
Deployit-Package-Format-Version: 1.3
CI-Application: Windows
CI-Version: 1.0

Name: httpd-2.2.22-win32-x86-no_ssl.msi
CI-Type: windows.Msi

Name: TimeService
CI-Type: windows.ServiceSpec
CI-binaryPathName: C:\Program Files\Common Services\timeservice.exe
CI-dependsOn-EntryValue-1: tcpip

Name: Public
CI-Type: windows.ShareSpec
CI-targetPath: C:\Users\deployit\Public

Using the deployables and deployeds

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

Deployable vs. Container table

Deployable Container Generated deployed
windows.Msi overthere.Host windows.InstalledMsi
windows.ServiceMsi overthere.Host windows.InstalledServiceMsi
windows.ServiceSpec overthere.Host windows.Service
windows.ShareSpec overthere.Host windows.Share

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

Deployed Actions Table

Deployed Actions performed for operations
  Create Destroy Modify Noop
windows.Msi
  1. Install MSI (with the /i option)
  1. Uninstall MSI (with the /x option)
  1. Uninstall MSI (with the /x option)
  2. Install MSI (with the /i option)
 
windows.ServiceMsi
  1. Install MSI (with the /i option) and start service
  1. Stop service and uninstall MSI (with the /x option)
  1. Stop service and uninstall MSI (with the /x option)
  2. Install MSI (with the /i option) and start service
 
windows.Service
  1. Install service
  2. Start service
  1. Stop service
  2. Uninstall service
  1. Stop service
  2. Uninstall service
  3. Install service
  4. Start service
  1. Stop service (iff stopStartOnNoop equals true)
  2. Start service (iff stopStartOnNoop equals true)
windows.Share
  1. Create share
  1. Remove share
  1. Remove share
  2. Create share
 

Extending the Windows plugin

The Windows 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
windows.Msi MSI file
windows.ServiceMsi MSI file that installs a service
windows.ServiceSpec Specification of a Windows service
windows.ShareSpec Specification of a Windows share

Deployeds

CI Description
windows.InstalledMsi Installed MSI
windows.InstalledServiceMsi Installed MSI (including service)
windows.Service Windows service
windows.Share Windows share

Other Configuration Items

CI Description
windows.InstalledMsi Installed MSI
windows.InstalledServiceMsi Installed MSI (including service)
windows.Msi MSI file
windows.Service Windows service
windows.ServiceMsi MSI file that installs a service
windows.ServiceSpec Specification of a Windows service
windows.Share Windows share
windows.ShareSpec Specification of a Windows share

Configuration Item Details

windows.InstalledMsi

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

Installed MSI

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
additionalInstallProperties : STRING
Additional install properties for this MSI
 
 
additionalUninstallProperties : STRING
Additional uninstall properties for this MSI
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
logOptions : STRING
Options for the /L command line option, see http://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx
 
 
placeholders : MAP_STRING_STRING
A Map containing all the placeholders mapped to their values. Special values are or
Hidden Properties
 
 
createOrder : INTEGER  = 60
Order in which a create step will be executed.
 
 
createScript : STRING  = windows/install-msi.ps1
Create Script
 
 
createVerb : STRING  = Install
Create Verb
 
 
destroyOrder : INTEGER  = 40
Order in which a destroy step will be executed.
 
 
destroyScript : STRING  = windows/uninstall-msi.ps1
Destroy Script
 
 
destroyVerb : STRING  = Uninstall
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.

windows.InstalledServiceMsi

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

Installed MSI (including service)

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
serviceName : STRING
Name of the service to start after this MSI has been installed and to stop before it is uninstalled
 
 
additionalInstallProperties : STRING
Additional install properties for this MSI
 
 
additionalUninstallProperties : STRING
Additional uninstall properties for this MSI
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
logOptions : STRING
Options for the /L command line option, see http://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx
 
 
placeholders : MAP_STRING_STRING
A Map containing all the placeholders mapped to their values. Special values are or
Hidden Properties
 
 
createOrder : INTEGER  = 60
Order in which a create step will be executed.
 
 
createScript : STRING  = windows/install-msi.ps1
Create Script
 
 
createVerb : STRING  = Install
Create Verb
 
 
destroyOrder : INTEGER  = 40
Order in which a destroy step will be executed.
 
 
destroyScript : STRING  = windows/uninstall-msi.ps1
Destroy Script
 
 
destroyVerb : STRING  = Uninstall
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.

windows.Msi

Type Hierarchy powershell.BasePowerShellDeployableFileArtifact >> udm.BaseDeployableFileArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FileArtifact

MSI file

Public Properties
 
 
additionalInstallProperties : STRING
Additional install properties for this MSI (string)
 
 
additionalUninstallProperties : STRING
Additional uninstall properties for this MSI (string)
 
 
excludeFileNamesRegex : STRING
Regular expression that matches file names that must be excluded from scanning
 
 
logOptions : STRING
Options for the /L command line option, see http://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx (string)
 
 
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.
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

windows.Service

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

Windows service

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
binaryPathName : STRING
Path of the service binary
 
 
dependsOn : LIST_OF_STRING
Services this service depends on
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
password : STRING
Password of the account this service should log on as
 
 
serviceDescription : STRING
Description of this service
 
 
serviceDisplayName : STRING
Display name of this service
 
 
serviceName : STRING
Name of the service. Defaults to the name of the deployed if not specified
 
 
startupType : STRING  = Automatic
Startup type is this service. Defaults to automatic
 
 
stopStartOnNoop : BOOLEAN  = false
If set to true, this service is stopped and started when another component in the same package is deployed
 
 
username : STRING
Username of the account this service should log on as
Hidden Properties
 
 
createOrder : INTEGER  = 60
Order in which a create step will be executed.
 
 
createScript : STRING  = windows/install-service.ps1
Create Script
 
 
createVerb : STRING  = Install
Create Verb
 
 
destroyOrder : INTEGER  = 40
Order in which a destroy step will be executed.
 
 
destroyScript : STRING  = windows/uninstall-service.ps1
Destroy Script
 
 
destroyVerb : STRING  = Uninstall
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.
 
 
startScript : STRING  = windows/start-service.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  = windows/stop-service.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.

windows.ServiceMsi

Type Hierarchy windows.Msi >> powershell.BasePowerShellDeployableFileArtifact >> udm.BaseDeployableFileArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FileArtifact

MSI file that installs a service

Public Properties
 
 
additionalInstallProperties : STRING
Additional install properties for this MSI (string)
 
 
additionalUninstallProperties : STRING
Additional uninstall properties for this MSI (string)
 
 
excludeFileNamesRegex : STRING
Regular expression that matches file names that must be excluded from scanning
 
 
logOptions : STRING
Options for the /L command line option, see http://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx (string)
 
 
placeholders : SET_OF_STRING
Placeholders detected in this artifact
 
 
scanPlaceholders : BOOLEAN  = true
Whether to scan this artifact for placeholders when it is imported
 
 
serviceName : STRING
Name of the service to start after this MSI has been installed and to stop before it is uninstalled (string)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
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

windows.ServiceSpec

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

Specification of a Windows service

Public Properties
 
 
binaryPathName : STRING
Path of the service binary (string)
 
 
dependsOn : LIST_OF_STRING
Services this service depends on (list_of_string)
 
 
password : STRING
Password of the account this service should log on as (string)
 
 
serviceDescription : STRING
Description of this service (string)
 
 
serviceDisplayName : STRING
Display name of this service (string)
 
 
serviceName : STRING
Name of the service. Defaults to the name of the deployed if not specified (string)
 
 
startupType : STRING
Startup type is this service. Defaults to automatic (string)
 
 
stopStartOnNoop : STRING
If set to true, this service 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.
 
 
username : STRING
Username of the account this service should log on as (string)

windows.Share

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

Windows share

Parent
 
 
container : CI<udm.Container>
The container on which this deployed runs.
Public Properties
 
 
targetPath : STRING
Target path of the share
 
 
deployable : CI<udm.Deployable>
The deployable that this deployed is derived from.
 
 
shareName : STRING
Name of the share. 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  = windows/create-share.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  = windows/delete-share.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.

windows.ShareSpec

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

Specification of a Windows share

Public Properties
 
 
shareName : STRING
Name of the share. Defaults to the name of the deployed if not specified (string)
 
 
tags : SET_OF_STRING
If set, this deployable will only be mapped automatically to containers with the same tag.
 
 
targetPath : STRING
Target path of the share (string)