Я пытаюсь установить git и использовать его в том же скрипте puppet.
package { 'git':
ensure => latest,
provider => 'chocolatey',
}
vcsrepo { 'C:/':
provider => git,
source => 'github etc...',
}
Однако я получаю:
Git провайдера не работает на этом хосте
Правильный путь включен в переменные среды, что наводит меня на мысль, что ошибка связана с тем, что переменные среды не обновляются.
Ошибка исчезает, если я использую refreshenv
или set "PATH=%PATH%;C:\Program Files\Git\cmd"
в командной строке или перезапускаю командную строку, но есть ли способ обновить их в том же сценарии puppet без ручного вмешательства?
Я попытался добавить в файл .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': }
Думаю, вы могли бы сказать, что мой вопрос является расширением кукольного агента. : Git провайдера не работает на этом хосте.
refreshenv
. Это просто не то, что вы можете сделать сvcsrepo
, если вы не можете переопределить путь (вы можете вexec
). Так что если Puppet делает это автоматически, это поможет. Вот что касается билета. - person ferventcoder   schedule 09.11.2016