2017-03-02 40 views
0

的Git參考在我們複雜的木偶環境,我們用大Puppetfile,它總是爲每個模塊列出了它的Git URL(:git)和引用(:ref):查找Puppetfile

(...) 

mod 'foobar', 
    :git => 'ssh://[email protected]:7777/pup/puppet-foobar.git', 
    :ref => 'puppet-foobar-3.14' 

(...) 

模塊的版本更新了所有時間,所以:ref的值經常變化。

當我們通過命令行運行Puppet代理時,有沒有辦法知道哪個:ref被應用於特定的運行?

回答

2

Puppet master在您生成的每個目錄中都包含一個版本號,您可以通過config_version環境設置進行定製。

這被記錄和顯示在代理運行並應用目錄:

Info: Applying configuration version '1488468780' 

(示出了默認編譯的Unix /紀元時間戳)

這可以是任何數據包括時間戳,SCM修訂號(例如git SHA)或更人性化的東西。

如果你有很多模塊,最好使用Puppetfile本身的版本,假設它在源代碼管理中被跟蹤。如果使用git,則可以使用git rev-parse HEAD來獲取當前修訂版。

配置config_version參數在environment.conf(docs,如/etc/puppetlabs/code/environments/production/environment.conf)指向一個腳本:

config_version = '/usr/bin/git --git-dir $confdir/environments/$environment/.git rev-parse HEAD' 

(從R10k + Directory Environments - Gary Larizza

R10K還具有良好的基礎混帳腳本你可能會發現有用的:config_version.sh,其中包括最新的提交消息和SHA。