我正在测试厨师 JavaCookbook 将我们的 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 update 21。
问题
如果我随后更新上述属性以使用 JDK 7 update 25,则节点属性会在 Chef 运行后更新,但 Chef Java cookbook 不会“注意到”这一点,并且旧的 JDK 仍然存在。
其他人如何通过 chef 管理 JDK 并推出更新?我正在考虑的另一种方法是创建一个 RPM(我们在 RHEL 上)并仅使用带有 :upgrade 操作的包资源。
谢谢,
弗雷德。
答案1
原来我忘记在包装器食谱中使用“include_recipe java”。一旦我这样做了,它就按预期工作了。