Назад | Перейти на главную страницу

Не удается установить MS SQL Express / Management Tools с Chocolatey в службе автоматизации Azure DSC

Я пытаюсь использовать cChoco модуль для подготовки нескольких пакетов с помощью Azure Automation DSC на виртуальных машинах Windows Server 2016 (SKU: 2016-Datacenter).

Последнее действие предполагает различие между интерактивным сеансом и средой DSC (или CustomScriptExtension), однако само сообщение об ошибке не указывает четкую причину.


Вопрос:

Что именно может быть причиной сбоя этих пакетов, связанных с MSSQL Express (не всех пакетов)?

Есть ли способ (например, параметр, настройка конфигурации) разрешить установку этих пакетов?


Подробности:

Для CustomScriptExtension (сбой) и интерактивной командной строки (успешно) я использовал следующий вызов (из сценария PowerShell):

choco install -y mssqlservermanagementstudio2014express

Для Azure Automation DSC у меня есть следующие задачи в файле конфигурации (отрывок):

cChocoPackageInstaller installVCRedist201WithChoco
{
    Name                 = 'vcredist2010'
    Ensure               = 'Present'
    DependsOn            = '[cChocoInstaller]installChoco'
}

cChocoPackageInstaller installmssqlservermanagementstudio2014express
{
    Name                 = 'mssqlservermanagementstudio2014express'
    Ensure               = 'Present'
    DependsOn            = '[cChocoInstaller]installChoco'
}

Машина чистая и vcredist2010 устанавливается нормально, однако mssqlservermanagementstudio2014express выходит из строя со следующей ошибкой:

2016-11-22 08:19:34,256 [INFO ] - Downloading MsSqlServerManagementStudio2014Express 64 bit
  from 'https://download.microsoft.com/download/2/A/5/2A5260C3-4143-47D8-9823-E91BB0121F94/SQLManagementStudio_x64_ENU.exe'
2016-11-22 08:20:43,755 [INFO ] -
2016-11-22 08:20:44,986 [INFO ] - Download of SQLManagementStudio.exe (850.63 MB) completed.
2016-11-22 08:22:54,657 [INFO ] - C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio.exe
2016-11-22 08:22:54,922 [INFO ] - Extracting...
2016-11-22 08:23:01,164 [INFO ] - Installing...
2016-11-22 08:23:01,745 [INFO ] - Installing MsSqlServerManagementStudio2014Express...
2016-11-22 08:23:03,311 [WARN ] - WARNING: Unable to generate 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe.ignore'
2016-11-22 08:23:03,999 [WARN ] - WARNING: May not be able to find 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe'. Please use full path for executables.
2016-11-22 08:23:05,250 [ERROR] - ERROR: Exception calling "Start" with "0" argument(s): "The system cannot find the file specified"
2016-11-22 08:23:07,903 [ERROR] - The install of mssqlservermanagementstudio2014express was NOT successful.
2016-11-22 08:23:07,950 [ERROR] - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:10,208 [WARN ] -
Chocolatey installed 1/2 packages. 1 packages failed.
 See the log for details (c:\choco\logs\chocolatey.log).
2016-11-22 08:23:10,275 [INFO ] -
2016-11-22 08:23:10,321 [ERROR] - Failures
2016-11-22 08:23:10,364 [ERROR] -  - mssqlservermanagementstudio2014express (exited -1) - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.

Файл журнала содержит:

2016-11-22 08:23:01,164 [INFO ] - Installing...
2016-11-22 08:23:01,665 [DEBUG] - Running Install-ChocolateyInstallPackage -validExitCodes '0 3010' -packageName 'MsSqlServerManagementStudio2014Express' -fileType 'EXE' -silentArgs '/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE' -file 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe' 
2016-11-22 08:23:01,745 [INFO ] - Installing MsSqlServerManagementStudio2014Express...
2016-11-22 08:23:03,311 [WARN ] - WARNING: Unable to generate 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe.ignore'
2016-11-22 08:23:03,734 [DEBUG] - Running Start-ChocolateyProcessAsAdmin -validExitCodes '0 3010' -workingDirectory 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio' -statements '/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE ' -exeToRun 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe' 
2016-11-22 08:23:03,953 [DEBUG] - Elevating Permissions and running ["C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe" /IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE ]. This may take a while, depending on the statements.
2016-11-22 08:23:03,999 [WARN ] - WARNING: May not be able to find 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe'. Please use full path for executables.
2016-11-22 08:23:04,781 [DEBUG] - Setting RunAs for elevation
2016-11-22 08:23:05,250 [ERROR] - ERROR: Exception calling "Start" with "0" argument(s): "The system cannot find the file specified"
2016-11-22 08:23:05,509 [DEBUG] - Built-in PowerShell host called with ['[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\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1' -installArguments '' -packageParameters '''] exited with '-1'.
2016-11-22 08:23:05,557 [DEBUG] - Calling command ['"C:\Windows\System32\shutdown.exe" /a']
2016-11-22 08:23:07,369 [DEBUG] - Command ['"C:\Windows\System32\shutdown.exe" /a'] exited with '1116'
2016-11-22 08:23:07,385 [DEBUG] - Capturing package files in 'c:\choco\lib\MsSqlServerManagementStudio2014Express'
2016-11-22 08:23:07,432 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\MsSqlServerManagementStudio2014Express.nupkg'
  with checksum 'AD996F040E8828374737D274BC5EF15D'
2016-11-22 08:23:07,573 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\MsSqlServerManagementStudio2014Express.nuspec'
  with checksum 'D7BE143BDF795902EAEE640DFCE85D15'
2016-11-22 08:23:07,619 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'
  with checksum 'E60A57F683AB9A3A4D9C28ED78E09081'
2016-11-22 08:23:07,650 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyUninstall.ps1'
  with checksum '4F30E08CD2C8D4E13C3AE84AA94FBE00'
2016-11-22 08:23:07,682 [DEBUG] - Attempting to create directory "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110".
2016-11-22 08:23:07,749 [DEBUG] - Attempting to copy "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files.update"
 to "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files".
2016-11-22 08:23:07,838 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files.update".
2016-11-22 08:23:07,854 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.sxs".
2016-11-22 08:23:07,871 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.pin".
2016-11-22 08:23:07,885 [DEBUG] - Sending message 'HandlePackageResultCompletedMessage' out if there are subscribers...
2016-11-22 08:23:07,903 [ERROR] - The install of mssqlservermanagementstudio2014express was NOT successful.
2016-11-22 08:23:07,950 [ERROR] - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:07,994 [DEBUG] - Moving 'c:\choco\lib\MsSqlServerManagementStudio2014Express'
 to 'c:\choco\lib-bad\MsSqlServerManagementStudio2014Express'
2016-11-22 08:23:10,053 [DEBUG] - Attempting to delete file "C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache\MsSqlServerManagementStudio2014Express.12.2.5000.20161110.nupkg".
2016-11-22 08:23:10,208 [WARN ] - 
Chocolatey installed 1/2 packages. 1 packages failed.
 See the log for details (c:\choco\logs\chocolatey.log).
2016-11-22 08:23:10,275 [INFO ] - 
2016-11-22 08:23:10,321 [ERROR] - Failures
2016-11-22 08:23:10,364 [ERROR] -  - mssqlservermanagementstudio2014express (exited -1) - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:10,396 [DEBUG] - Sending message 'PostRunMessage' out if there are subscribers...
2016-11-22 08:23:10,431 [DEBUG] - Exiting with -1

Поздно на вечеринку, но из-за того, что я столкнулся с этой проблемой (хотя более новая версия SQL Server Express), Я нашел (с Прокмон), что был создан дополнительный файл журнала в C:\Windows\temp\chocolatey, в моем случае называется SQLEXPR_decompression_log.txt. Установщик SQLEXPR отказывается расширять установщик из системной папки:

[2020-01-30T10:27:15.014+10:00]: === Logging started: 2020/01/30 10:27:15 ===
[2020-01-30T10:27:15.014+10:00]: Executable: C:\Windows\TEMP\chocolatey\sql-server-express\2017.20190916\SQLEXPR.exe v14.0.1000.169
[2020-01-30T10:27:15.014+10:00]: Computer  : BA-MD-2
[2020-01-30T10:27:15.014+10:00]: --- logging level: standard ---
[2020-01-30T10:27:15.030+10:00]: Successfully bound to the ClusApi.dll
[2020-01-30T10:27:15.030+10:00]: Cannot open the current cluster
[2020-01-30T10:27:15.030+10:00]: Cluster drive map: ''
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: The application cannot be decompressed to a system directory.
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Unsupported directory 
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to validate directory for extraction
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to select the directory to extract to
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to select and/or prepare the directory for extraction
[2020-01-30T10:27:15.030+10:00]: The application cannot be decompressed to a system directory. Please select a different location.
[2020-01-30T10:27:15.030+10:00]: Exiting with result code: 0x80070150
[2020-01-30T10:27:15.030+10:00]: === Logging stopped: 2020/01/30 10:27:15 ===

Чтобы решить эту проблему, я использовал учетные данные учетной записи администратора для моей шоколадной установки и шоколадных ресурсов DSC, поэтому затем он запускался из временного режима этой учетной записи, а не из системного времени:

        User localadminUser {
            Ensure                   = "Present"
            UserName                 = "localadmin"
            Password                 = $localadmin_credential
            PasswordChangeNotAllowed = $true
            PasswordChangeRequired   = $false
            PasswordNeverExpires     = $true
        }

        Group localadminUserAsAdmin {
            GroupName        = 'Administrators'
            Ensure           = 'Present'
            MembersToInclude = "localadmin"
            DependsOn        = "[User]localadminUser"
        }
        cChocoInstaller installChoco
        {
            InstallDir           = 'C:\choco'
            PsDscRunAsCredential = $localadmin_credential
            DependsOn            = "[Group]localadminUserAsAdmin"
        }

        cChocoPackageInstaller installSqlExpress
        {
            Ensure               = "Present"
            Name                 = "sql-server-express"
            Version              = "2017.20190916"
            PsDscRunAsCredential = $localadmin_credential
            DependsOn            = "[cChocoInstaller]installChoco"
        }