Я пытаюсь установить OpenSSL с шоколадного использованием следующего Powershell DSC сценарием:Почему установка OpenSSL ведется с использованием Chocolatey/PowerShell DSC?
cChocoInstaller installChoco
{
InstallDir = "c:\choco"
}
cChocoPackageInstaller installOpenSSL
{
Name = "openssl.light"
DependsOn = "[cChocoInstaller]installChoco"
}
Этой DSC проталкивается к новой виртуальной машине в Azure с использованием расширения Powershell DSC в шаблоне ARM. Проблема заключается в том, что программа установки OpenSSL не работает и не позволяет DSC завершить работу. Ниже бревно из шоколадных:
2016-05-04 19:15:22,254 [INFO ] - Installing the following packages:
2016-05-04 19:15:22,270 [INFO ] - openssl.light
2016-05-04 19:15:22,270 [INFO ] - By installing you accept licenses for the packages.
2016-05-04 19:15:29,067 [INFO ] -
OpenSSL.Light v1.0.2.20160504 (forced)
2016-05-04 19:15:29,130 [DEBUG] - Contents of 'c:\choco\lib\OpenSSL.Light\tools\chocolateyInstall.ps1':
2016-05-04 19:15:29,161 [DEBUG] - $packageId = 'OpenSSL.Light'
#default is to plop in c:\ -- yuck!
$installDir = Join-Path $Env:ProgramFiles 'OpenSSL'
$params = @{
packageName = $packageId;
fileType = 'exe';
#InnoSetup - http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
silentArgs = '/silent', '/verysilent', '/sp-', '/suppressmsgboxes',
"/DIR=`"$installDir`"";
url = 'https://slproweb.com/download/Win32OpenSSL_Light-1_0_2h.exe'
url64bit = 'https://slproweb.com/download/Win64OpenSSL_Light-1_0_2h.exe'
}
Install-ChocolateyPackage @params
if (!$Env:OPENSSL_CONF)
{
$configPath = Join-Path $installDir 'bin\openssl.cfg'
if (Test-Path $configPath)
{
[Environment]::SetEnvironmentVariable(
'OPENSSL_CONF', $configPath, 'User')
Write-Output "Configured OPENSSL_CONF variable as $configPath"
}
}
2016-05-04 19:15:29,177 [DEBUG] - Calling command ['"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NoLogo -ExecutionPolicy Bypass -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = '';[System.Threading.Thread]::CurrentThread.CurrentUICulture = ''; & import-module -name 'c:\choco\helpers\chocolateyInstaller.psm1'; & 'c:\choco\helpers\chocolateyScriptRunner.ps1' -packageScript 'c:\choco\lib\OpenSSL.Light\tools\chocolateyInstall.ps1' -installArguments '' -packageParameters ''"']
2016-05-04 19:15:31,404 [INFO ] - Downloading OpenSSL.Light 64 bit
2016-05-04 19:15:31,404 [INFO ] - from 'https://slproweb.com/download/Win64OpenSSL_Light-1_0_2h.exe'
2016-05-04 19:15:40,526 [INFO ] - Installing OpenSSL.Light...
Я попытался взять дамп памяти процесса установки OpenSSL Light. Ниже приведен результат анализа DebugDiag:
Error
Description Recommendation
The following threads in OpenSSL.LightInstall.DMP are displaying a message box. The call to display the message box originated from OpenSSL_LightInstall+9745.
The text of the message being displayed is:
The system cannot find the path specified.
(0)
100.00% of threads blocked (1 threads)
Server-side applications should not have any UI elements since they are supposed to run without any user intervention. Moreover, service applications run in non-interactive desktops, so no one can actually see the message box and dismiss it. This causes the application to hang.
Please follow up with vendor OpenSSL Win64 Installer Team for problem resolution concerning the following file: C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Temp\chocolatey\OpenSSL.Light\1.0.2.20160504\OpenSSL.LightInstall.exe.
Любая идея, что вызывает это? Я могу запустить DSC локально на виртуальной машине, но не через расширение DSC Powershell. Есть ли обходной путь или лучший способ установки OpenSSL без использования DSC?
Заранее спасибо.