A instalação do Web Deploy with Desired State Configuration (DSC) falha silenciosamente

2

Absolutamente novo para a DSC, estou realmente tropeçando nas coisas agora. Eu tenho uma configuração básica que garante que o IIS, o .NET 4.5 e o MSMQ estejam instalados. Eu estou trabalhando para configurar uma nova instância do Windows 2012 R2 para suportar nossos aplicativos. Atualmente, nossos aplicativos são implantados usando o powershell sobre o Web Deploy (os artefatos são criados com o PSake / MSBuild no TeamCity).

Portanto, a próxima etapa que estou tentando realizar com o DSC é instalar o Web Deploy no servidor de destino. Este é um download do MSI, e não um "recurso do Windows" que eu posso simplesmente garantir que está instalado.

Portanto, tenho um Script personalizado em meu DSC que tenta fazer uma instalação não atendida de um arquivo MSI de implantação na Web. O script

Script InstallWebDeploy
{
    GetScript =
    {
        $false
    }
    SetScript =
    {
        $cmd = "MSIEXEC /a 'C:\Temp\WebDeploy_amd64_en-US.msi' /passive" # have also tried /qn
        (Start-Process -FilePath "msiexec.exe" -ArgumentList "/a 'C:\Temp\WebDeploy_amd64_en-US.msi' /passive" -Wait -Passthru).ExitCode
    }
    TestScript =
    {
        $false
    }
}

O resultado, depois de gerar o .mof e usá-lo, me dá:

VERBOSE: [CORAPP4]: LCM:  [ Start  Resource ]  [[Script]InstallWebDeploy]
VERBOSE: [CORAPP4]: LCM:  [ Start  Test     ]  [[Script]InstallWebDeploy]
VERBOSE: [CORAPP4]: LCM:  [ End    Test     ]  [[Script]InstallWebDeploy]  in 0.0000 seconds.
VERBOSE: [CORAPP4]: LCM:  [ Start  Set      ]  [[Script]InstallWebDeploy]
VERBOSE: [CORAPP4]:                            [[Script]InstallWebDeploy] Performing the operation "Set-TargetResource"
 on target "Executing the SetScript with the user supplied credential".
VERBOSE: [CORAPP4]: LCM:  [ End    Set      ]  [[Script]InstallWebDeploy]  in 1.0430 seconds.
VERBOSE: [CORAPP4]: LCM:  [ End    Resource ]  [[Script]InstallWebDeploy]
VERBOSE: [CORAPP4]: LCM:  [ End    Set      ]    in  4.4783 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 4.214 seconds

No entanto, o Web Deploy não está no local em vista no servidor. (Eu percebo que o Get-Script e o Test-Script precisam ser elaborados, mas querem reduzir o número de variáveis envolvidas aqui)

Alguma idéia de por que isso está falhando? (mas sem erro aparente?)

    
por Matt 25.02.2016 / 06:30

1 resposta

4

Como você está usando o DSC com um arquivo msi, sugiro usar o recurso de pacote. Você pode então assegurar que está instalando em vez de usar um recurso de script personalizado. Observe que o nome e a propriedade do ID do produto devem corresponder ao pacote. Eu coloquei um exemplo com base no pacote que você deseja instalar abaixo.

Link para a documentação dos recursos do pacote: MSDN de recursos do pacote

WindowsFeature WebManagementService
{
    Ensure = "Present"
    Name = "Web-Mgmt-Service"
}

Package WebDeploy
{
     Ensure = "Present"
     Path  = "$Env:SystemDrive\TestFolder\WebDeploy_amd64_en-US.msi"
     Name = "Microsoft Web Deploy 3.5"
     LogPath = "$Env:SystemDrive\TestFolder\logoutput.txt"
     ProductId = "1A81DA24-AF0B-4406-970E-54400D6EC118"
     Arguments = "LicenseAccepted='0' ADDLOCAL=ALL"
}
    
por 26.02.2016 / 00:06