Step by Step installation of Sitecore 10.3 on Azure PaaS

 


In this document we will learn how to setup Sitecore 10.3 XP on Azure PaaS. We shall briefly cover the step by step process and overview of Sitecore 10.3 XP setup.

While doing the installation, I follow Deploying a new Sitecore environment to the Microsoft Azure App service. Thanks, Sitecore Team!

Prerequisites:

To setup Sitecore 10.3 on Azure PaaS, we shall need the following:

 Deployment Topologies

We will do the setup for Sitecore 10.3 XP. Sitecore XP product edition is the full Sitecore Experience Platform, which includes all Sitecore roles and services, including xConnect.

This is a Sitecore Experience Platform configuration that runs:

  • Three Sitecore roles: Content Delivery, Content Management, and Processing, as a single WebApp instance.
  • All XP roles: XConnect Search, XConnect Collection, xDB Reference Data, xDB Marketing Automation, xDB Marketing Automation Reporting, Sitecore Cortex™ ProcessingSitecore Cortex™ Reporting, Each role runs as a single WebApp instance.


Image Credit: Sitecore

Installation Step:

Step 1: Create a new folder E:\Sitecore1030

Step 2: Please copy License file in E:\license\license.xml

Step 3: Download options for Azure AppService for Sitecore 10.3 in Sitecore1030 folder. Please download XP Scaled.

Step 4: Download Sitecore.IdentityServer.7.0.325.scwdp in Sitecore1030 folder.

Step 5: Create Azure Storage AccountLogin to Azure portal and create a storage account. Ensure to select “Blob Storage”.

Step 6: Upload all of the WDP’s zips included in the chosen zip file that we downloaded.

Step 7: Now, in Azure to access these files publicly, we must enable a Shared Access Signature. This can be achieved using Azure Storage Explorer. Please select the expire date as per your convenient. Also make sure to copy the token generated for Blob.

Step 8: Use PowerShell to create self-signed certificate in .pfx format, which we will use in setup configuration file. Please note the certificate password.

Step 9: Select and download Sitecore Azure Quick Strat template. This is important because the templates are what Azure will utilize to actually build out the resources based on the chosen topology. We can find the link to the GitHub to the Sitecore Azure ARM Templates on the Sitecore Azure Toolkit page. Here we need to select the proper Sitecore version to download the file. In our case we will download Sitecore 10.2.0 version, which is compatible for both 10.2 and 10.3.

I am going to choose XP-

Find the azuredeploy.parameters.json file and click on it.

Now copy the URL without the trailing Slash and note it down. We will use it in configuration. For my case this is-
https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates/blob/master/Sitecore%2010.2.0/XP
Now that we have the raw file in your browser, I'll save that file into Now E:\Sitecore1030 directory as azuredeploy.parameters.json file. We will be configuring this file next.

Step 10: Now open the azuredeploy.parameters.json file using Visual Code and set the below parameter as instructed.
The deploymentId and licenseXml parameters in azuredeploy.parameters.json are filled in by the PowerShell script using Name and LicenseXmlPath parameters respectively.

 

Parameter Description
locationThe geographical region of the current deployment.
sqlServerLoginThe name of the administrator account for Azure SQL server that will be created.
sqlServerPasswordThe password for the administrator account for Azure SQL server.
sitecoreAdminPasswordThe new password for the Sitecore admin account.
repAuthenticationApiKeyA unique value (e.g. a GUID) that will be used as authentication key for communication between Content Management and the Processing Web App. Note: The minimal required length is 32 symbols
siMsDeployPackageUrlThe HTTP(s) URL to a Sitecore Identity Server Web Deploy package.
cmMsDeployPackageUrlThe HTTP(s) URL to a Sitecore XP Content Management Web Deploy package.
cdMsDeployPackageUrlThe HTTP(s) URL to a Sitecore XP Content Delivery Web Deploy package.
prcMsDeployPackageUrlThe HTTP(s) URL to a Sitecore XP Processing Web Deploy package.
xcRefDataMsDeployPackageUrlThe HTTP(s) URL to a XConnect Reference Data service Web Deploy package.
xcCollectMsDeployPackageUrlThe HTTP(s) URL to a XConnect Collection service Web Deploy package.
xcSearchMsDeployPackageUrlThe HTTP(s) URL to a XConnect Search service Web Deploy package.
maOpsMsDeployPackageUrlThe HTTP(s) URL to a Marketing Automation service Web Deploy package.
maRepMsDeployPackageUrlThe HTTP(s) URL to a Marketing Automation Reporting service Web Deploy package.
cortexProcessingMsDeployPackageUrlThe HTTP(s) URL to a Cortex Processing service Web Deploy package.
cortexReportingMsDeployPackageUrlThe HTTP(s) URL to a Cortex Reporting service Web Deploy package.
authCertificateBlobA Base64-encoded blob of the authentication certificate in PKCS #12 format.
authCertificatePasswordA password to the authentication certificate.

 

There are a series of Package URL parameters for mapping to the WDP’s that are in the Azure Storage Container. Each MsDeployPackageUrl maps to a role WDP.
To obtain the full Uri, open up Azure Storage Explorer and navigate to the specific file, right click on it, and choose Properties.

Next, after we have pasted the Uri for the specific file into the parameters, paste the Token in the Query String of the Uri, that we saved from step 7

Step 11: In the event we’re using a self-signed certificate, so need to add allowInvalidClientCertificate parameter to your parameter JSON

file."allowInvalidClientCertificates": {
"value": true
}
,

Step 12:  The following script can be utilized directly by copy/pasting and changing the values to suit your need. I named this script DeploySitecore1030.ps1 but you can call it whatever you like.

$SCSDK="E:\Sitecore1030\ToolKit\Sitecore Azure Toolkit 2.8.0-r02542.1366\tools"
$SCTemplates=https://raw.githubusercontent.com/Sitecore/Sitecore-Azure-Quickstart-Templates/master/Sitecore%2010.2.0/XP
$DeploymentId = "sitecore1030"
$ResourceGroup = "sitecore1030"
$LicenseFile = "E:\license\license.xml"
$CertificateFile = "E:\sitecore10cert\58ACD57D7D788E890E08C4F168A93C0BE8D1F97D.pfx"
$SubscriptionId = "5777ffac-35e1-4e61-803d-2a259813e503"
$Location="East US"
$ParamFile="E:\Sitecore1030\azuredeploy.parameters.json"
$Parameters = @{"deploymentId"=$DeploymentId;"authCertificateBlob" = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes($CertificateFile))}
Import-Module $SCSDK\Sitecore.Cloud.Cmdlets.psm1
Add-AzAccount
Connect-AzAccount -SubscriptionId $SubscriptionId
Start-SitecoreAzureDeployment -Name $ResourceGroup -Location $Location -ArmTemplateUrl "$SCTemplates/azuredeploy.json" -ArmParametersPath $ParamFile -LicenseXmlPath $LicenseFile -SetKeyValue $Parameters -Verbose

$SCSDK – Point this to the tools directory that was added by the Sitecore Azure Toolkit.
$SCTemplates – Point this to the ARM Template URL saved in point 9
$DeploymentId – Can be anything up to 60 characters. I used same as Azure Resource group name.
$ResourceGroup – The name of the Azure Resource Group to install the services in.
$LicenseFile – the location of your license.xml.
$CertificateFile – the location of your client certificate.
$Location – Azure Geographical Location.
$ParamFile – the location of your azuredeploy.parameters.json file.

Step 13: After all the steps previously are complete, now it's time to Run our PowerShell script!
Open PowerShell as Administrator and change directory to E:\Sitecore1030 (Where we have the PS1 file) and run the PS1 file.

Step 14: This will prompt Azure portal credential. Please provide proper credential.

Azure Credential

Step 15: Deployment Status
It will take 20-30 minutes to complete the deployment depending on the bandwidth. We can view the deployment status from PowerShell-

Azure Deployment

We can also observe the deployment progress in the Azure Portal, by clicking on the Resource Group and choosing Deployments.

Post-Deployment Steps

Once the deployment is complete, there are a few steps that we should follow.

  • Rebuild All Indexes from Control Panel
  • Rebuild the Link Databases from Control Panel
  • From Control Panel, Deploy all Marketing Data

Conclusion

In closing, Sitecore has become a very complex and highly scalable platform. The possibilities are endless with Sitecore on Azure. Azure PaaS provides less expensive deployment solution and easy to manage most of the standard deployment instances. And Sitecore is also recommending this.

FAQ

Which search engines available?

Azure PaaS provide Azure Search engine to be used for your Sitecore implementation. We can use Solr search on with custom integration.
Sitecore Solr PaaS deployment requires the following parameters to be specified in azuredeploy.parameters.json:
solrConnectionString- Connection string to existing Solr server that will be passed to Sitecore Platform Roles.
xcSolrConnectionString- Not mandatory. Connection string to existing Solr server that will be passed to XConnect Roles. If the parameter is not specified, the default value equals to solrConnectionString.
xcSearchMsDeployPackageUrl - The HTTP(s) URL to a Solr XConnect Search Web Deploy package.

What all Sitecore modules Azure PaaS supports?
You can review this article. https://kb.sitecore.net/articles/201557 .

Error: Both AZ and AzureRM modules are detected in your system. How to fix that?

I encountered the below issue while doing the deployment. To fix this I need to uninstall AzureRM as AZ is the latest one used for Azure deployment.

Thank you!

Comments

Post a Comment

Popular posts from this blog

Setup New Project in Sitecore XMCloud – Part 1

Step by Step installation of Sitecore 10.3 on Docker