如果条件不满足,如何让make puppet模块中断。

时间:2013-09-16 05:56:20

标签: puppet

假设您有一个必须满足的任意要求才能运行木偶模块。 你会如何使木偶模块优雅地退出?

例如,假设我的模块需要puppet 3.2或更高版本才能成功运行。如果模块尝试在3.1.x上运行,它将失败(非正常)。

我可以发出通知,noticealertwarning

http://docs.puppetlabs.com/references/latest/function.html#warning

2 个答案:

答案 0 :(得分:3)

由于无法使用普通的木偶比较运算符将字符串与整数进行比较,因此需要使用versioncmp()function

if versioncmp("${::puppetversion}", '3.0.0') < 0 {
  fail("foo requires foo 3.0.0 or greater, found: \'$::puppetversion\'")
}
来自木偶irc chanel的ramindk也指出你可以使用正则表达式:

if $::puppetversion =~ /^3/  {
    fail("foo requires foo 3.0.0 or greater, found: \'$::puppetversion\'")
}

答案 1 :(得分:1)

package { "puppet" :
   version => "3.2.0",
   ensure => present,
}

class arbitrary {
 file { "random_file":
    require => Package["puppet"],
 }
}