OctopusDSC unable to download tentacle msi

Hi There,

I’m attempting to use the OctopusDSC module to automate deployment of tentacles. It seems to be having issues downloading the msi file. I get the following error:

PowerShell DSC resource cTentacleAgent failed to execute Set-TargetResource functionality with error message: Installation of the Tentacle MSI failed; MSIEXEC exited with code: 1619. View the log at
C:\Octopus\Tentacle.msi.log
+ CategoryInfo : InvalidOperation: (:slight_smile: [], CimException
+ FullyQualifiedErrorId : ProviderOperationExecutionFailure
+ PSComputerName : localhost

I’ve attempted to run the underlying code manually, and have found the following issue with downloading the msi file itself:

Exception calling “DownloadFile” with “2” argument(s): “The request was aborted: Could not create SSL/TLS secure channel.”

Is this a common/known issue?

Hi Bobbie,

Thanks for getting in touch!

This would be because we have enable TLS on our website and PowerShell by default tries to connect using SSL3, if you could update your local OctopusDSC module with the changes in this pull request it should fix the download issue for you.

Hope that helps!

Thank you and warm regards,
Henrik

I have tried adding this and I’m still seeing issues with this. Did anyone else get this working? I’m also new to DSC so I can try to continue, but if there is a better way to do an automated install and registration that others use. Yes I can script things myself but I hate reinventing the wheel.

I never came back to update this thread, but i got it working in the end and as far as i know, it’s still working today… From memory, i had to make some changes to the module… I probably should have submitted a pull request.

I found using DSC to be the easiest way to bootstrap the installation and registration. If you post up the error you’re getting, I can probably assist.

So I’m getting the error you mentioned: Installation of the Tentacle MSI failed; MSIEXEC exited with code: 1619. Looking at the expected download location, the download didn’t seem to be there. Initially it seemed that if I manually downloaded it and placed it in the expected download location, the rest of the script would work (although I hacked at it enough that I may be wrong there).

Anyways, it was recommended in this thread, that these lines (from the link of Henrik’s) get added:

	[System.Net.ServicePointManager]::Expect100Continue = $true;
	[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
	[System.Net.ServicePointManager]::SecurityProtocol = `
	[System.Net.SecurityProtocolType]::Ssl3 -bor `
	[System.Net.SecurityProtocolType]::Tls -bor `
	[System.Net.SecurityProtocolType]::Tls11 -bor `
	[System.Net.SecurityProtocolType]::Tls12

I did this after making the changes:

` Stop-Process -Name WmiPrvSE -Force -ErrorAction SilentlyContinue | out-null

and tried again and still no download (hence why I came back and asked.)

It turns out that although there is a default for the download URL, it is not maintaining that even though I haven’t changed it from the example. I hardcoded it for now, and then had success. I’ll have to dig in why it is not being honored. Additionally I’m hoping to add a spot for a service account user for startup.

Hi

Is there any further update on this? I’ve tried both things suggested in this discussion (System.Net config from Henrik’s PR and specifying the download URL) but still see the error as described above:

PowerShell DSC resource cTentacleAgent failed to execute Set-TargetResource functionality with error message: Installation of the Tentacle MSI failed; MSIEXEC exited with code: 1619. View the log at C:\Octopus\Tentacle.msi.log

The msi is not being downloaded for some reason.

The specifics of my scenario are that the machines are VM’s in Azure and they are registered with a DSC pull server in an Azure Automation Account. Other DSC configurations have been successfully applied via this mechanism.

When I remote onto the machine and execute Set-TargetResource directly from a PowerShell prompt the msi is dowloaded successfully and the tentacle installation completes.

Any further help much appreciated

Thanks
Mark.

Just to be clear (and I don’t have the code in front of me), when I say I hard-coded the URL, I didn’t mean in the call. I mean just before I hit the download portion of the code.

Azure Automation was the way I was looking at doing this as well, however it seems that it keeps stomping on my feet. I have the issue of wanting to do it as a service account but no clean way of specifying a different service account for the different environments through variables (oh how I miss scopes like Octopus). I also have it just look at me cross-eyed when I’ve tried applying a DSC to a machine. No logs that I can find of any sorts. There are times where it does produce logs, but at least 50% of the time, it just returns nada. And then it occasionally stops applying the DSC and I have to go back and reapply it.

Sorry, doesn’t really help (other than maybe the first paragraph), but I’d love to hear of success in this area as well.

So I worked around this in the end by using the xRemoteFile resource from the module xPSDesiredStateConfiguration to download the Tentacle.msi to the path probed by the OctopusDSC resource. With the msi in place the download is not attempted and the tentacle is installed. Hope this helps others

Cheers
Mark.

Hi all,

Thanks for all the extra information and problem detail. I’ve added a GitHub Issue to track this, put it in our backlog and get the PR merged in.

Robert W

Hi all,

Just a quick note to let you know that the fix for this issue is now available on https://github.com/OctopusDeploy/OctopusDSC.

Regards,
Matt