2013-04-09 5 views
7

Ich versuche TeamCity zu veranlassen, eine Deployment mit Puppet über die Kommandozeile mit puppet.bat unter Windows auszulösen.Variable an Marionette auf Kommandozeile übergeben

In Teamcity Ich rufe dies ein Command Line Läufer, mit Befehl ausführbar mit: C: \ Program Files (x86) \ Puppet Labs \ Puppet \ bin \ puppet.bat Befehlsparameter: Anwendung myexample.pp

Was ich möchte, ist auch die Build-Nummer von Teamcity als auch passieren zu tun, so dass ich dies innerhalb myexample.pp

kann

ist das möglich?

UPDATE: Code für benutzerdefinierte Tatsache verwendet, die die angenommene Antwort unten war.

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 

Antwort

10

Um einen Wert über die Befehlszeile zu übergeben, muss es eine Umgebungsvariable mit dem Präfix FACTER_ sein.

Also wird FACTER_foo in $ :: foo verwandeln.