まったく新しいDSCなので、今は本当につまずきます。 IIS、.NET 4.5、およびMSMQがインストールされていることを確認する基本構成があります。アプリケーションをサポートするために、新しいWindows 2012R2インスタンスの構成に取り組んでいます。現在、アプリケーションはPowerShell over Web Deployを使用してデプロイされています(アーティファクトはTeamCityのPSake/MSBuildでビルドされます)。
したがって、DSCで実行しようとしている次のステップは、ターゲットサーバーにWeb配置をインストールすることです。これはMSIのダウンロードであり、単にインストールされていることを確認できる「Windows機能」ではありません。
そのため、DSCにカスタムScript
があり、Web配置MSIファイルの無人インストールを実行しようとしています。スクリプト
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
}
}
.mofを生成して使用した後の結果は、次のようになります。
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
ただし、WebDeployはサーバーのどこにも見えません。 (Get-ScriptとTest-Scriptを具体化する必要があることはわかっていますが、ここに含まれる変数の数を減らしたいと思っていました)
なぜこれが失敗しているのか考えはありますか? (しかし、明らかなエラーはありませんか?)
MsiファイルでDSCを使用しているので、パッケージリソースを使用することをお勧めします。その後、カスタムスクリプトリソースを使用する代わりに、インストールされていることを確認できます。名前と製品IDプロパティはパッケージと一致する必要があることに注意してください。インストールしたいパッケージに基づいた例を以下に示します。
パッケージリソースのドキュメントへのリンク: パッケージリソースMSDN
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"
}