Передать переменную марионетке в командной строке

Я пытаюсь заставить TeamCity инициировать развертывание с помощью puppet через командную строку, используя puppet.bat в Windows.

В Teamcity я вызываю это с помощью запуска командной строки с исполняемым файлом команды: C:\Program Files (x86)\Puppet Labs\Puppet\bin\puppet.bat Параметры команды: применить myexample.pp

Я хотел бы также передать номер сборки из TeamCity, чтобы я мог использовать его в myexample.pp.

Это возможно?

ОБНОВЛЕНИЕ: код, используемый для пользовательского факта, который был принятым ответом ниже.

require 'open-uri'

$uri = URI.parse("http://teamcity/guestAuth/app/rest/buildTypes/id:    <BUILDID>/builds/status:SUCCESS/number")
$version = $uri.read

Facter.add("latestbuildversion") do
  setcode do    
    $version
  end
end

person Grant Trevor    schedule 09.04.2013    source источник


Ответы (2)


Я думаю, вы захотите сделать это с помощью пользовательских фактов, которые адреса этого диалога.

person Kyle Campos    schedule 09.04.2013
comment
Пользовательские факты были подходом, который я применил. - person Grant Trevor; 16.04.2013

Чтобы передать значение через командную строку, оно должно быть переменной среды с префиксом FACTER_.

Итак, FACTER_foo превратится в $::foo.

person Marga Manterola    schedule 09.04.2013