내가 자식을 설치하고현재 Puppet 세션에서 Windows 환경 경로를 어떻게 설정합니까?
package { 'git':
ensure => latest,
provider => 'chocolatey',
}
vcsrepo { 'C:/':
provider => git,
source => 'github etc...',
}
그러나 같은 꼭두각시 스크립트에서 사용하기 위해 노력하고있어, 내가 받고 있어요 :
제공자 자식이 호스트에서 작동하지 않습니다
환경 변수에 정확한 경로가 포함되어있어 환경 변수가 업데이트되지 않았기 때문에 오류가 발생한 것으로 생각됩니다. 내가 명령 줄이나 내가 명령 프롬프트를 다시 시작하면 refreshenv
또는 set "PATH=%PATH%;C:\Program Files\Git\cmd"
를 사용하는 경우
오류는 사라지지만 는 수동 개입없이 동일한 꼭두각시 스크립트를 업데이트하는 방법은 무엇입니까?
내가 (물론, 한 번에 하나씩)하여 .PP 파일에 다음과 같은 추가 시도했다 :
#1
windows_env { 'PATH=C:\Program Files\Git\cmd': }
#2 (I've also tried different variations of quotes)
exec { 'temporary env var':
path => 'C:/Windows/System32',
command => 'cmd.exe /c "set \"PATH=$PATH%;C:\\Program Files\\Git\\cmd\""',
}
#3
exec { 'C:/ProgramData/chocolatey/bin/refreshEnv.cmd': }
난 당신이 내 질문에 Puppet agent: provider git is not functional on this host의 확장 말할 수도 있겠죠.
이 문서는 PATH와 같은 환경 업데이트를 자동으로 보거나 업데이트하지 않으므로 모든 Windows 프로세스의 제한 사항입니다. 하위 프로세스는 상위 프로세스를 업데이트 할 수 없습니다 (다른 옵션이 모두 실패하는 이유입니다). 꼭두각시가 자동으로 환경을보고 새로 고칠 수있을 때까지이 작업을 수행하는 유일한 방법을 결정했다고 생각합니다. https://tickets.puppetlabs.com/browse/PUP-4708 – ferventcoder
@ferventcoder 고마워, 나는 아직 실제로 가능하지 않다는 것을 몰랐다! –
"refreshenv"로 보셨을 가능성이 있습니다. 경로를 무시할 수 없다면'vcsrepo'로 할 수있는 일이 아닙니다 ('exec'에서 할 수 있습니다). 따라서 인형극을 사용하면 자동으로 도움이됩니다. 그것이 티켓에 관한 것입니다. – ferventcoder