Deploy Service Fabric Application through VSTS release pipeline using Hosted Agent

3

I have set up continuous integration using Hosted Agent for service fabric by following this document https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration/

In Release pipeline after importing certificate I am getting the following error and deployment failing. I am not able to identify where the issue is enter image description here

[error]An error occurred during this operation. Please check the trace logs for more details.

Finishing task: ServiceFabricDeploy

[error]System.Exception: Task ServiceFabricDeploy failed.

This caused the job to fail. Look at the logs for the task for more details.

[error] at Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.Run(IJobContext jobContext, IJobRequest job, IJobExtension jobExtension, CancellationTokenSource tokenSource)

Under Deploy service fabric task it is showing the below error enter image description here

Imported cluster client certificate with thumbprint 'A6B32E70CFE715F608A247C1ED94AB3D0164A58E'.

Thumbprint Subject

A6B32E70CFE715F608A247C1ED94AB3D0164A58E >CN=clusternamedns.eastus.cloudapp.azure.com

[error]An error occurred during this operation. Please check the trace logs for more details.

Update

After setting system.debug to true in variables, I got the following log

    2016-08-03T05:44:31.6556865Z ##[debug]System.Fabric.FabricException: An error occurred during this operation.  Please check the trace logs for more details. ---> System.Runtime.InteropServices.COMException: No credentials are available in the security package (Exception from HRESULT: 0x8009030E)

2016-08-03T05:44:31.6566887Z ##[debug]   at System.Fabric.Interop.NativeClient.IFabricClientSettings2.SetSecurityCredentials(FABRIC_SECURITY_CREDENTIALS credentials)

2016-08-03T05:44:31.6577063Z ##[debug]   at System.Fabric.FabricClient.SetSecurityCredentialsInternal(SecurityCredentials credentials)

2016-08-03T05:44:31.6587072Z ##[debug]   at System.Fabric.Interop.Utility.WrapNativeSyncInvoke[TResult](Func`1 func, String functionTag, String functionArgs)

2016-08-03T05:44:31.6597111Z ##[debug]   --- End of inner exception stack trace ---

2016-08-03T05:44:31.6606871Z ##[debug]   at System.Fabric.Interop.Utility.RunInMTA[TResult](Func`1 func)

2016-08-03T05:44:31.6647953Z ##[debug]   at System.Fabric.FabricClient.InitializeFabricClient(SecurityCredentials credentialArg, FabricClientSettings newSettings, String[] hostEndpointsArg)

2016-08-03T05:44:31.6656886Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ClusterConnection.FabricClientBuilder.Build()

2016-08-03T05:44:31.6666879Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ClusterConnection..ctor(FabricClientBuilder fabricClientBuilder, Boolean getMetadata)

2016-08-03T05:44:31.6676869Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ConnectCluster.ProcessRecord()

2016-08-03T05:44:31.6770225Z ##[debug]Leaving C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1.

2016-08-03T05:44:31.6850322Z ##[debug]Caught exception from task script.

2016-08-03T05:44:31.6890370Z ##[debug]Error record:

2016-08-03T05:44:31.7380329Z ##[debug]Connect-ServiceFabricCluster : An error occurred during this operation.  Please check the trace logs for more details.

2016-08-03T05:44:31.7390333Z ##[debug]At C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1:73 char:12

2016-08-03T05:44:31.7410325Z ##[debug]+     [void](Connect-ServiceFabricCluster @clusterConnectionParameters)

2016-08-03T05:44:31.7420325Z ##[debug]+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2016-08-03T05:44:31.7430323Z ##[debug]    + CategoryInfo          : InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricException

2016-08-03T05:44:31.7440363Z ##[debug]    + FullyQualifiedErrorId : CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster

2016-08-03T05:44:31.7450426Z ##[debug] 

2016-08-03T05:44:31.7470318Z ##[debug]Script stack trace:

2016-08-03T05:44:31.7500512Z ##[debug]at <ScriptBlock>, C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1: line 73

2016-08-03T05:44:31.7910331Z ##[debug]at <ScriptBlock>, <No file>: line 1

2016-08-03T05:44:31.7920318Z ##[debug]at <ScriptBlock>, <No file>: line 22

2016-08-03T05:44:31.7930364Z ##[debug]at <ScriptBlock>, <No file>: line 18

2016-08-03T05:44:31.7940315Z ##[debug]at <ScriptBlock>, <No file>: line 1

2016-08-03T05:44:31.7960349Z ##[debug]Exception:

2016-08-03T05:44:31.8000522Z ##[debug]System.Fabric.FabricException: An error occurred during this operation.  Please check the trace logs for more details. ---> System.Runtime.InteropServices.COMException: No credentials are available in the security package (Exception from HRESULT: 0x8009030E)

2016-08-03T05:44:31.8010571Z ##[debug]   at System.Fabric.Interop.NativeClient.IFabricClientSettings2.SetSecurityCredentials(FABRIC_SECURITY_CREDENTIALS credentials)

2016-08-03T05:44:31.8020684Z ##[debug]   at System.Fabric.FabricClient.SetSecurityCredentialsInternal(SecurityCredentials credentials)

2016-08-03T05:44:31.8030335Z ##[debug]   at System.Fabric.Interop.Utility.WrapNativeSyncInvoke[TResult](Func`1 func, String functionTag, String functionArgs)

2016-08-03T05:44:31.8040334Z ##[debug]   --- End of inner exception stack trace ---

2016-08-03T05:44:31.8060326Z ##[debug]   at System.Fabric.Interop.Utility.RunInMTA[TResult](Func`1 func)

2016-08-03T05:44:31.8070343Z ##[debug]   at System.Fabric.FabricClient.InitializeFabricClient(SecurityCredentials credentialArg, FabricClientSettings newSettings, String[] hostEndpointsArg)

2016-08-03T05:44:31.8080330Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ClusterConnection.FabricClientBuilder.Build()

2016-08-03T05:44:31.8090325Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ClusterConnection..ctor(FabricClientBuilder fabricClientBuilder, Boolean getMetadata)

2016-08-03T05:44:31.8100358Z ##[debug]   at Microsoft.ServiceFabric.Powershell.ConnectCluster.ProcessRecord()

2016-08-03T05:44:31.8340330Z ##[error]An error occurred during this operation.  Please check the trace logs for more details.
azure
azure-devops
microservices
azure-service-fabric
azure-pipelines-release-pipeline
asked on Stack Overflow Aug 2, 2016 by narendramacha • edited Aug 3, 2016 by narendramacha

2 Answers

4

narendramacha

I think the problem here could be that you are using the Base64 of the cer certificate file on the SF endpoint, rather than Base64 of the PFX file (which is normally protected by a password).

answered on Stack Overflow Jun 19, 2018 by ossentoo
3

The below PowerShell scripts help in converting the PFX file to Base64 string. It outputs the string to a text file.

$fileContentBytes = get-content 'C:\<your-certificate>.pfx' -Encoding Byte

[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\pfx-bytes.txt'

However, when you open the file (that contains Base64 string) in notepad and do a select all (CTRL + A) operation, an extra line (break) at the end of the file gets copied. This extra line gets pasted while adding the Client certificate during the creation of Cluster Service Connection for the task Service Fabric Application Deployment.

Delete that extra line and it should work. I hope this answer helps as well.

Line break while creating Cluster Service Connection

answered on Stack Overflow Jan 31, 2019 by Darshan Sudhakar • edited Feb 3, 2019 by Darshan Sudhakar

User contributions licensed under CC BY-SA 3.0