Public/Install-SingleDeveloper.ps1
#Set-StrictMode -Version Latest ##################################################### # Install-SingleDeveloper ##################################################### <#PSScriptInfo .VERSION 0.0 .GUID 602bc07e-a621-4738-8c27-0edf4a4cea8e .AUTHOR David Walker, Sitecore Dave, Radical Dave .COMPANYNAME David Walker, Sitecore Dave, Radical Dave .COPYRIGHT David Walker, Sitecore Dave, Radical Dave .TAGS sitecore powershell local install iis solr .LICENSEURI https://github.com/SitecoreDave/SharedSitecore.SitecoreLocal/blob/main/LICENSE .PROJECTURI https://github.com/SitecoreDave/SharedSitecore.SitecoreLocal .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES #> <# .SYNOPSIS @@synoposis@@ .DESCRIPTION @@description@@ .EXAMPLE PS> .\Install-SingleDeveloper 'name' .EXAMPLE PS> .\Install-SingleDeveloper 'name' 'template' .EXAMPLE PS> .\Install-SingleDeveloper 'name' 'template' 'd:\repos' .EXAMPLE PS> .\Install-SingleDeveloper 'name' 'template' 'd:\repos' -Persist User .Link https://github.com/SitecoreDave/SharedSitecore.SitecoreLocal .OUTPUTS System.String #> Function Install-SingleDeveloper { [CmdletBinding()] Param( [Parameter(Mandatory=$false)] [ValidateScript({Test-Path $_ -PathType 'Leaf'})] [string] $ConfigurationFile = "" ) # Turning off progress bar to (greatly) speed up installation $Global:ProgressPreference = "SilentlyContinue" $PSScriptName = ($MyInvocation.MyCommand.Name.Replace(".ps1","")) $parametersResults = Get-Parameters $MyInvocation.MyCommand.Parameters $PSBoundParameters "$($PSScriptName):start" -Show -Stamp -StartWatch Write-Host $parametersResults.output -ForegroundColor Green $config = Get-Content -Raw $ConfigurationFile -Encoding Ascii | ConvertFrom-Json $site = $config.settings.site $xConnect = $config.settings.xConnect $sql = $config.settings.sql # $singleDeveloperParams = @{ # Path = $sitecore.singleDeveloperConfigurationPath # SqlServer = $sql.server # SqlAdminUser = $sql.adminUser # SqlAdminPassword = $sql.adminPassword # SqlCollectionPassword = $sql.collectionPassword # SqlReferenceDataPassword = $sql.referenceDataPassword # SqlMarketingAutomationPassword = $sql.marketingAutomationPassword # SqlMessagingPassword = $sql.messagingPassword # SqlProcessingEnginePassword = $sql.processingEnginePassword # SqlReportingPassword = $sql.reportingPassword # SqlCorePassword = $sql.corePassword # SqlSecurityPassword = $sql.securityPassword # SqlMasterPassword = $sql.masterPassword # SqlWebPassword = $sql.webPassword # SqlProcessingTasksPassword = $sql.processingTasksPassword # SqlFormsPassword = $sql.formsPassword # SqlExmMasterPassword = $sql.exmMasterPassword # SitecoreAdminPassword = $sitecore.adminPassword # SolrUrl = $solr.url # SolrRoot = $solr.root # SolrService = $solr.serviceName # Prefix = $site.prefix # XConnectCertificateName = $xconnect.siteName # IdentityServerCertificateName = $identityServer.name # IdentityServerSiteName = $identityServer.name # LicenseFile = $assets.licenseFilePath # XConnectPackage = $xConnect.packagePath # SitecorePackage = $sitecore.packagePath # IdentityServerPackage = $identityServer.packagePath # XConnectSiteName = $xConnect.siteName # SitecoreSitename = $site.hostName # PasswordRecoveryUrl = "https://" + $site.hostName # SitecoreIdentityAuthority = "https://" + $identityServer.name # XConnectCollectionService = "https://" + $xConnect.siteName # ClientSecret = $identityServer.clientSecret # AllowedCorsOrigins = ("https://{0}|https://{1}" -f $site.hostName, "habitathomebasic.dev.local") # Need to add to proper config # WebRoot = $site.webRoot # } $singleDeveloperParams = @{ Path = $ConfigurationFile SqlServer = $sql.server SqlAdminUser = $sql.adminUser SqlAdminPassword = $sql.adminPassword SitecoreAdminPassword = $sitecore.adminPassword SolrUrl = $solr.url SolrRoot = $solr.root SolrService = $solr.serviceName Prefix = $site.prefix XConnectCertificateName = $xconnect.siteName IdentityServerCertificateName = $identityServer.name IdentityServerSiteName = $identityServer.name LicenseFile = $licenseFile # $assets.licenseFile XConnectPackage = $xconnect.packagePath SitecorePackage = $sitecore.packagePath IdentityServerPackage = $identityServer.packagePath XConnectSiteName = $xconnect.siteName SitecoreSitename = $hostName SitecoreIdentityAuthority = "https://" + $identityServer.name XConnectCollectionService = "https://" + $xconnect.siteName ClientSecret = $identityServer.clientSecret AllowedCorsOrigins = ("https://{0}|https://{1}" -f $site.hostName, "habitathomebasic.dev.local") # Need to add to proper config SitePhysicalRoot = $site.webRoot } Write-Host "singleDeveloperParams:$($singleDeveloperParams | Out-String)" #Write-Host $singleDeveloperParams | Out-String #Write-Host "sqlAdminPassword:$sqlAdminPassword" $configRoot = Split-Path $ConfigurationFile -Parent Push-Location $configRoot #(Join-Path $resourcePath "XP0") try { Install-SitecoreConfiguration @singleDeveloperParams $results = 'end' } catch { $results = "ERROR:$_" } Pop-Location $parametersResults = Get-Parameters $MyInvocation.MyCommand.Parameters $PSBoundParameters "$($PSScriptName):$results" -Show -StopWatch -Started $parametersResults.started Write-Host $parametersResults.output -ForegroundColor Green } |