我正在测试Chef Java Cookbook 以将我们的 JDK 安装置于 Chef 管理之下,我想知道如何在安装后使用 Chef Java Cookbook 升级 JDK。
背景
为了指定使用哪种 Java 风格以及版本,我编写了一个包装 Cookbook,我们将其称为“java-wrapper”这个问题,并放置属性来指定哪个 JDK 以及从哪里下载它. 所以,在“java-wrapper/attributes/default.rb”我们有
node.normal["java"]["jdk_version"] = "7"
node.normal["java"]["install_flavor"] = "oracle"
node.normal['java']['jdk']['7']['x86_64']['url'] = "http://localmirror/jdk-7u21-linux-x64.tar.gz"
node.normal['java']['jdk']['7']['x86_64']['checksum'] = "thechecksum"
这将成功安装 JDK 7 更新 21。
问题
如果我随后更新上述属性以使用 JDK 7 update 25,则节点属性会在 Chef 运行后更新,但 Chef Java 食谱不会“注意到”这一点,旧的 JDK 仍然存在。
其他人如何通过 Chef 管理 JDK 并推出更新?我正在考虑的另一种方法是创建一个 RPM(我们在 RHEL 上)并仅使用具有 :upgrade 操作的包资源。
谢谢,
弗雷德。
原来我忘记在包装食谱中使用“include_recipe java”。一旦我这样做了,它就会按预期工作。