2016-05-04 4 views
2

Я пытаюсь установить 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?

Заранее спасибо.

ответ

1

Поскольку Powershell DSC запускался локальным менеджером конфигурации под учетной записью SYSTEM, возникла проблема с доступом к каталогу кэша по умолчанию. Я смог решить эту проблему, установив собственный путь кэша choco. Более подробная информация здесь: https://github.com/chocolatey/choco/wiki/How-To-Change-Cache

0

Возможно, вы сталкиваетесь с проблемами памяти? Происходит ли этот вызов при удалении WinRM и/или PowerShell?

Смежные вопросы