Using skipAppData msdeploy flag during ARM template deployment errors

0

Attempting to design multi-package ARM deployment via MSDeploy site extension and addOnPackage syntax for Sitecore continuous deployment.

{
            "type": "Microsoft.Web/sites/extensions",
            "apiVersion": "[variables('webApiVersion')]",
            "name": "[concat(variables('cmWebAppNameTidy'), '/', 'MSDeploy')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites/config', variables('siWebAppNameTidy'),'appsettings')]"
            ],
            "properties": {
                "packageUri": "[parameters('emptyMsDeployPackageUrl')]",
                "AppOffline": true,
                "SkipAppData": true,
                "dbType": "None",
                "setParameters": {
                    "Application Path": "[variables('cmWebAppNameTidy')]"
                },
                "addOnPackages": [
                    {
                        "packageUri": "[parameters('setCompatibilityLevelMsDeployPackageUrl')]",
                        "dbType": "SQL",
                        "connectionString": "[concat('Data Source=tcp:', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=master;User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                        "setParameters": {
                            "Application Path": "[variables('cmWebAppNameTidy')]",
                            "Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=master;User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]"
                        }
                    },
                    {
                        "packageUri": "[parameters('cmMsDeployPackageUrl')]",
                        "dbType": "SQL",
                        "connectionString": "[concat('Data Source=tcp:', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=master;User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                        "setParameters": {
                            "Application Path": "[variables('cmWebAppNameTidy')]",
                            "Sitecore Admin New Password": "[parameters('sitecoreAdminPassword')]",
                            "Core DB User Name": "[parameters('coreSqlDatabaseUserName')]",
                            "Core DB Password": "[parameters('coreSqlDatabasePassword')]",
                            "Core Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('coreSqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "Core Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('coreSqlDatabaseNameTidy'),';User Id=', parameters('coreSqlDatabaseUserName'), ';Password=', parameters('coreSqlDatabasePassword'), ';')]",
                            "Security DB User Name": "[parameters('securitySqlDatabaseUserName')]",
                            "Security DB Password": "[parameters('securitySqlDatabasePassword')]",
                            "Security Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('securitySqlDatabaseNameTidy'),';User Id=', parameters('securitySqlDatabaseUserName'), ';Password=', parameters('securitySqlDatabasePassword'), ';')]",
                            "Security Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('securitySqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "Master DB User Name": "[parameters('masterSqlDatabaseUserName')]",
                            "Master DB Password": "[parameters('masterSqlDatabasePassword')]",
                            "Master Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('masterSqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "Master Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('masterSqlDatabaseNameTidy'),';User Id=', parameters('masterSqlDatabaseUserName'), ';Password=', parameters('masterSqlDatabasePassword'), ';')]",
                            "Web DB User Name": "[parameters('webSqlDatabaseUserName')]",
                            "Web DB Password": "[parameters('webSqlDatabasePassword')]",
                            "Web Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('webSqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "Web Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('webSqlDatabaseNameTidy'),';User Id=', parameters('webSqlDatabaseUserName'), ';Password=', parameters('webSqlDatabasePassword'), ';')]",
                            "XDB Reference Data Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('refDataSqlDatabaseNameTidy'),';User Id=', parameters('xcRefDataSqlDatabaseUserName'), ';Password=', parameters('xcRefDataSqlDatabasePassword'), ';')]",
                            "Experience Forms DB User Name": "[parameters('formsSqlDatabaseUserName')]",
                            "Experience Forms DB Password": "[parameters('formsSqlDatabasePassword')]",
                            "Experience Forms Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('formsSqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "Experience Forms Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('formsSqlDatabaseNameTidy'),';User Id=', parameters('formsSqlDatabaseUserName'), ';Password=', parameters('formsSqlDatabasePassword'), ';')]",
                            "EXM Master DB User Name": "[parameters('exmMasterSqlDatabaseUserName')]",
                            "EXM Master DB Password": "[parameters('exmMasterSqlDatabasePassword')]",
                            "EXM Master Admin Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('exmMasterSqlDatabaseNameTidy'),';User Id=', parameters('sqlServerLogin'), ';Password=', parameters('sqlServerPassword'), ';')]",
                            "EXM Master Connection String": "[concat('Encrypt=True;TrustServerCertificate=False;Data Source=', variables('sqlServerFqdnTidy'), ',1433;Initial Catalog=',variables('exmMasterSqlDatabaseNameTidy'),';User Id=', parameters('exmMasterSqlDatabaseUserName'), ';Password=', parameters('exmMasterSqlDatabasePassword'), ';')]",
                            "Processing Service Url": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('prcWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "Reporting Service Url": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('repWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "Reporting Service Api Key": "[parameters('repAuthenticationApiKey')]",
                            "XConnect Collection": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('xcSearchWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "XDB Reference Data Client": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('xcRefDataWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "XDB MA Reporting Client": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('maRepWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "XDB MA Ops Client": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('maOpsWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "Cortex Reporting Client": "[concat('https://', reference(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.Web/sites', variables('cortexReportingWebAppNameTidy')), variables('webApiVersion')).hostNames[0])]",
                            "Search Provider": "[variables('searchProvider')]",
                            "Cloud Search Connection String": "[if(equals(variables('searchProvider'), 'Azure'), concat('serviceUrl=https://', variables('searchServiceNameTidy'), '.search.windows.net;apiVersion=', variables('searchRestApiVersion'), ';apiKey=', listAdminKeys(resourceId('Microsoft.Search/searchServices', variables('searchServiceNameTidy')), variables('searchApiVersion')).primaryKey), '')]",
                            "SOLR Connection String": "[parameters('solrConnectionString')]",
                            "Messaging Connection String": "[listkeys(resourceId(subscription().subscriptionId, resourceGroup().name, 'Microsoft.ServiceBus/namespaces/authorizationRules', variables('azureServiceBusNamespaceNameTidy'), parameters('azureServiceBusAccessKeyName')), variables('azureServiceBusVersion')).primaryConnectionString]",
                            "Application Insights Instrumentation Key": "[if(parameters('useApplicationInsights'), reference(resourceId('Microsoft.Insights/Components', variables('appInsightsNameTidy')), variables('appInsightsApiVersion')).InstrumentationKey, '')]",
                            "Application Insights Role": "[if(parameters('useApplicationInsights'), 'CM', '')]",
                            "Store Sitecore Counters In Application Insights": "[if(parameters('useApplicationInsights'), string(parameters('storeSitecoreCountersInApplicationInsights')), 'false')]",
                            "Use Application Insights": "[string(parameters('useApplicationInsights'))]",
                            "IP Security Client IP": "[parameters('securityClientIp')]",
                            "IP Security Client IP Mask": "[parameters('securityClientIpMask')]",
                            "Sitecore Identity Authority": "[concat('https://', parameters('siWebAppHostName'))]",
                            "Sitecore Identity Secret": "[parameters('siClientSecret')]",
                            "EXM Cryptographic Key": "[parameters('exmCryptographicKey')]",
                            "EXM Authentication Key": "[parameters('exmAuthenticationKey')]",
                            "Telerik Encryption Key": "[parameters('telerikEncryptionKey')]",
                            "EXM EDS Provider": "[parameters('exmEdsProvider')]",
                            "XConnect Collection Certificate": "[concat('StoreName=My;StoreLocation=CurrentUser;FindType=FindByThumbprint;FindValue=', parameters('authCertificateThumbprint'))]",
                            "XDB Reference Data Client Certificate": "[concat('StoreName=My;StoreLocation=CurrentUser;FindType=FindByThumbprint;FindValue=', parameters('authCertificateThumbprint'))]",
                            "XDB MA Reporting Client Certificate": "[concat('StoreName=My;StoreLocation=CurrentUser;FindType=FindByThumbprint;FindValue=', parameters('authCertificateThumbprint'))]",
                            "XDB MA Ops Client Certificate": "[concat('StoreName=My;StoreLocation=CurrentUser;FindType=FindByThumbprint;FindValue=', parameters('authCertificateThumbprint'))]",
                            "Cortex Reporting Client Certificate": "[concat('StoreName=My;StoreLocation=CurrentUser;FindType=FindByThumbprint;FindValue=', parameters('authCertificateThumbprint'))]",
                            "Allow Invalid Client Certificates": "[parameters('allowInvalidClientCertificates')]",
                            "License Xml": "[parameters('licenseXml')]"
                        }
                    }
                ]
            }
        }

The error we are getting based on /api/vfs/LogFiles/SiteExtensions/MSDeploy/appManagerLog.xml

<entry time="2020-05-20T21:17:31.0377086+00:00" type="Warning">
<message>
An error was encountered when processing operation 'Delete Directory' on 'wwwroot'. Retrying operation 'Delete' on object dirPath (bh-dbt-sbx-sc-cm). Attempt 11 of 11.
</message>
</entry>
<entry time="2020-05-20T21:17:31.0377086+00:00" type="Error">
<message>Package deployment failed</message>
</entry>
<entry time="2020-05-20T21:17:31.0532696+00:00" type="Error">
  <message>
AppGallery Deploy Failed: 'Microsoft.Web.Deployment.DeploymentClientServerException: An error was encountered when processing operation 'Delete Directory' on 'wwwroot'. ---&gt; Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070091. ---&gt; System.IO.IOException: The directory is not empty. at Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath) at Microsoft.Web.Deployment.DirectoryEx.Delete(String path) at Microsoft.Web.Deployment.DirPathProviderBase.Delete(Boolean whatIf) --- End of inner exception stack trace --- --- End of inner exception stack trace --- at Microsoft.Web.Deployment.DeploymentObject.HandleRetryException(DeploymentSyncContext syncContext, Int32&amp; attempts, Boolean&amp; retry, DeploymentRetryException ex, DeploymentOperationKind operationKind) at Microsoft.Web.Deployment.DeploymentObject.DeleteOperation(DeploymentSyncContext syncContext) at Microsoft.Web.Deployment.DeploymentSyncContext.HandleDelete(DeploymentObject destObject, DeploymentObject sourceParentObject) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions) at Microsoft.Web.Deployment.WebApi.AppGalleryPackage.Deploy(String deploymentSite, String siteSlotId, Boolean doNotDelete) at Microsoft.Web.Deployment.WebApi.DeploymentController.&lt;DownloadAndDeployPackage&gt;d__24.MoveNext()'
</message>
</entry>

There are no entries for wiping the App_Data folder contents, so I am unsure why it's attempting to delete the root folder.

Our goal is to preserve App_Data but also find a way to remove folder with in App_Data/unicorn.

It's a bit hard to find any solid info on Microsoft regarding MSDeploy behavior inside site extension.

azure
sitecore
msdeploy
arm-template
asked on Stack Overflow May 21, 2020 by Roman

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0