Environment.xml file

This file is used to define different deployment configurations that you can then call from PowerShell like this...

. ( Join-Path -Path (Split-Path -Path $MyInvocation.MyCommand.Definition -Parent) -ChildPath "Deploy.ps1" );

Deploy-CommerceServer -ConfigurationIdentity "Domain.Dev.Unpup" -PreCompile;

Each configuration block in the environment.xml should look something like this. The identity attribute should be unique in the and it is a good idea to name it based on use e.g. ServerType.UserType.ActionName.

<Configuration identity="Domain.Dev.CSConfig">
		<Variable identity="PROJECT_NAME" value="SolutionStorefrontSite" />
		<Variable identity="DOMAIN_NAME" value="$($Env:COMPUTERNAME)" />
		<Variable identity="SOLUTION_BASE_DIRECTORY" value="$(Split-Path -Path $DEPLOYMENT_DIRECTORY -Parent)" />
		<Variable identity="CS_SQL_Server" value="$($Env:COMPUTERNAME)" />
		<UserAccount identity="CSStagingServiceUser" fullName="Commerce Server Staging Service User for $($PROJECT_NAME)" domain="$($DOMAIN_NAME)" username="CSStagingUser" password="MyPassword" email="" />
	<CommerceServer identity="$($PROJECT_NAME)">
		<Configure stagingUser="CSStagingServiceUser"/>

Each configuration will consist of some variables that you then use in conjunction with some actions, the order of the actions does not matter and the Deploy.ps1 will execute everything in its own specific order. Below is a list of actions and the order they are executed in...
  1. Variables - allows you to define variables that can then be used in other actions. You can add PowerShell variables into any attribute and they will be evaluated, there is a limitation with this though. If you add a PowerShell command into an attribute, do not mix it in with other text, PowerShell can't parse out the command and evaluate it separately. More information on specific variables.
  2. UserAccounts - Consolidates user info into one place so that it can be used in other actions
  3. Registry - Runs registry files i.e. *.reg files
  4. UserGroups - Adds users into local windows accounts, if users do not exist in the domain they will be created locally
  5. Events - Registers event sources with the windows event log service
  6. Folders - Creates folders and assigns users permissions to the folder
  7. Files - Assigns users permissions on a file
  8. IIS\ApplicationPools - Creates app pools with the associated info
  9. IIS\WebSites - Creates web sites and virtual directories in IIS and assigns app pools
  10. IIS\Certificates - Registers an existing cert with IIS or creates a self signed cert and registers it with IIS
  11. IIS\WebBindings - Creates bindings for web sites and associates certs when requried
  12. IIS\WAMREG - Gives app pool users launch permissions on the IIS WAMREG admin service
  13. CommerceServer\Pup - un-pups the specified pup using the associated ini for configuration
  14. CommerceServer\ProfileKeys - Creates profile keys and sets them up in the registry
  15. CommerceServer\Databases - Runs the listed sql files against the associated database
  16. CommerceServer\Piplines - Registers the listed pipeline components
  17. CommerceServer\AzMan - Grants the list users permissions in the associated AzMan files
  18. CommerceServer\Schemas\CatalogSchema - Imports the referenced catalog schema
  19. CommerceServer\Schemas\CatalogInventorySchema - Imports the referenced catalog inventory schema
  20. CommerceServer\Schemas\ProfilesSchema - Imports the referenced profiles schema
  21. CommerceServer\Schemas\...\Azman - Updates the referenced AzMan file with any new properties that may of been added to with the subsystem schema

Last edited Apr 29, 2013 at 2:25 PM by bthubbard, version 12


No comments yet.