Team City 및 Powershell Inline Script를 사용하여 Windows 용 Puppet Client를 원격으로 설치하려고합니다.MsiExec 및 Powershell을 사용하여 원격으로 Windows 용 Puppet 설치
Invoke-command –computername %Machine Host Name% –ScriptBlock {Param($options) Start-Process -FilePath "msiexec.exe $options" -ArgumentList "/i C:\Temp\puppet-3.0.0.msi PUPPET_MASTER_SERVER=%Puppet Master Server% /l*v C:\Temp\puppet-3.0.0.log /qn" -Wait –Passthru}
내 로컬 컴퓨터에서 실행할 때 제대로 작동하지만 TeamCity에 따옴표가있는 문제가있는 것으로 보입니다.
**[Step 2/2] Invoke-Command : A positional parameter cannot be found that accepts argument '
[09:08:08][Step 2/2] –ScriptBlock'.
[09:08:08][Step 2/2] At line:1 char:15
[09:08:08][Step 2/2] + Invoke-command <<<< –computername vavp-pmo-agt08 –ScriptBlock {Param($option
[09:08:08][Step 2/2] s) Start-Process -FilePath msiexec.exe $options -ArgumentList /i C:\Temp\puppet
[09:08:08][Step 2/2] -3.0.0.msi PUPPET_MASTER_SERVER=vavt-pmo-sbx23.company.com /l*v C:\Temp\puppet
[09:08:08][Step 2/2] -3.0.0.log /qn -Wait –Passthru}
[09:08:08][Step 2/2] + CategoryInfo : InvalidArgument: (:) [Invoke-Command], Parameter
[09:08:08][Step 2/2] BindingException
[09:08:08][Step 2/2] + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
[09:08:08][Step 2/2] .Commands.InvokeCommandCommand
[09:08:08][Step 2/2]
[09:08:08][Step 2/2] Process exited with code 1**
스크립트 실행 모드 스위치에도 문제가 없습니다.
이 일이 내 일을 구했습니다. Invoke-command -computername % puppet.client.host % -ScriptBlock {Param ($ options) 시작 프로세스 -Wait -Passthru -FilePath "msiexec.exe $ options"-ArgumentList "/ i C : \ Temp \ puppet-3.0 .0.msi PUPPET_MASTER_SERVER = % env.puppet.master %/l * v C : \ Temp \ puppet-3.0.0.log/qn "} – Maverick