在puppet中如果已经在伪造模块中声明了类,则如何覆盖类变量

时间:2016-03-30 07:22:10

标签: java jenkins puppet

我正在使用来自puppetlabs的jenkins puppet模块,并希望在我的jenkins机器中安装一个特定的java包。这个jenkins木偶模块使用java木偶模块进行Java安装。我想在我的jenkins节点中安装一个特定的java包。所以我想我需要在puppet模块中覆盖伪造java模块的java::package变量。像这样的东西 -

class {'java':
      package => $my_jdk_package,
    }

但是java :: init类已经在jenkins::init.pp中被覆盖了。因此我不能在我的puppet模块中重新声明java类。 知道怎么做吗?

1 个答案:

答案 0 :(得分:3)

您可以在jenkins类中将install_java参数设置为false:

class { 'jenkins':
  install_java => false,
  require      => Class['java'],
}

require参数是确保在jenkins之前安装java。通过将install_java参数设置为false,jenkins模块将不再包含java类。这将允许您根据需要在jenkins节点中声明java类:

class { 'java':
  package => $my_jdk_package,
}

如果您使用hiera,则可以覆盖以下参数:

---
java::package: 'packageyouwant' 

您不需要将install_java设置为false,也不需要在jenkins节点中定义java类。