Skip to content

Helper cmdlets which can be used to create simple Sitecore website deployment script in something like 50 lines of code.

License

Notifications You must be signed in to change notification settings

adoprog/Sitecore-PowerCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sitecore PowerShell Deployment Framework

Helper modules which can be used to create simple Sitecore website deployment script in something like 50 lines of code.

DBUtils.psm1

Basic DB operations - backup / restore / execute, etc.

  • Create-Database
  • Restore-Database
  • Backup-Database
  • Attach-Database
  • Execute-File

FileUtils.psm1

Used to download / extract / package files, etc.

  • Download-File
  • Extract-Package
  • Set-Permissions
  • Unzip-Archive
  • Add-HostFileContent

ConfigUtils.psm1

All about editing .config files - web.config, include files, ConnectionStrings.config

  • Uncomment-ConfigSection
  • Set-ConnectionString
  • Set-SitecoreSetting
  • Set-ConfigAttribute
  • Set-ExecutionTimeout

and many other cmdlets

IISUtils.psm1

Used to create Sites / AppPools in IIS

  • Create-AppPool
  • Create-Site

SvnUtils.psm1

Contains single commandlet which will Checkout / Revert / Update folder from specified SVN repository. It can be split into a few different ones, I plan to do it in future.

WebUtils.psm1

Includes single commandlet for invoking a web page

Deployment script example

Clear-Host

# Framework initialization
$scriptRoot = Split-Path (Resolve-Path $myInvocation.MyCommand.Path)
$env:PSModulePath = $env:PSModulePath + ";$scriptRoot\Framework"

Import-Module WebUtils
Import-Module ConfigUtils
Import-Module DBUtils
Import-Module IISUtils
Import-Module FileUtils

# Main variables
$siteName = "PowerCoreSample"
$licensePath = "C:\license.xml"
$sourcePath = "C:\Sitecore 6.5.0 rev. 120706.zip"
$targetFolder = "E:\inetpub\wwwroot"

# Additional variables
$packageFileName = [System.IO.Path]::GetFileNameWithoutExtension($sourcePath)
$dataFolder = "$destination\$packageFileName\Data"
$websiteFolder = "$destination\$packageFileName\Website"
$serverName = $env:COMPUTERNAME
$sqlServerName = "$serverName\SQLEXPRESS"

# Main Script
Unzip-Archive $sourcePath $targetFolder

$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $sqlServerName
$databases = "core", "master", "web"
foreach ($db in $databases)
{
 Attach-Database $server "$siteName.$db" "$targetFolder\$packageFileName\Databases\Sitecore.$db.mdf" "$destination\$packageFileName\Databases\Sitecore.$db.ldf"
 Set-ConnectionString "$websiteFolder\App_Config\ConnectionStrings.config" "$db" "Trusted_Connection=Yes;Data Source=$sqlServerName;Database=$siteName.$db"
}

Set-ConfigAttribute "$websiteFolder\web.config" "sitecore/sc.variable[@name='dataFolder']" "value" $dataFolder   

Copy-Item $licensePath $dataFolder
Create-AppPool $siteName "v4.0"
Create-Site $siteName "$siteName.local"  $targetFolder\$packageFileName
Add-HostFileContent "127.0.0.1" "$siteName.local"

About

Helper cmdlets which can be used to create simple Sitecore website deployment script in something like 50 lines of code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published