Puppet 利用 versioncmp 對兩個版本比對

2017-08-16 Puppet

最近在寫 puppet agent 的 module,為了要支援 Puppet 5 無痛升級,所以用到了 versioncmp 這個 function。

 

versioncmp 的用法是用兩個版本做比對,然後 return 1/0/-1 的值做判斷

$result = versioncmp(a, b)

 

判斷方式:

1 if version a is greater than version b
0 if the versions are equal
-1 if version a is less than version b

 

先講應用情境:

主要是 puppet-agent 的 3-4 和 5 的版本會需要不同的 repository,所以必須在 5.0.0 這個版本界線做判斷

 

以 Ubuntu 16.04 為例:

  • puppet5:https://apt.puppetlabs.com/puppet5-release-xenial.deb
  • puppet4:https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb

 

如果我想要 5.0.0 開始的版本給予 $puppet5 的話可以這樣寫

 

就可以直接拿 $repo 繼續往下做了 …

 

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: