我正在使用应用程序说明书来部署 java 战争文件。我想做的是从外部位置(在本例中为我们的本地 nexus 存储库)加载 WAR md5。使用 chef 从外部位置加载值(例如运行一些 bash 将字符串输出到 STDOUT 并将该值用于 chef 变量)。
像这样的 bash:
export CHEF_VARIABLE = `wget -O - $/URL/WHICH/RETURNS/TEXT/STRING`
我正在使用应用程序说明书来部署 java 战争文件。我想做的是从外部位置(在本例中为我们的本地 nexus 存储库)加载 WAR md5。使用 chef 从外部位置加载值(例如运行一些 bash 将字符串输出到 STDOUT 并将该值用于 chef 变量)。
像这样的 bash:
export CHEF_VARIABLE = `wget -O - $/URL/WHICH/RETURNS/TEXT/STRING`
使用 ruby 的 open-uri。例如,我在用于安装 VirtualBox 的说明书中执行此操作。VirtualBox 下载站点有一个带有校验和 (sha256sum) 的文本文件。
require 'open-uri'
sha256sum = "" # retrieve the sha256sums from the virtualbox mirror
open("#{node['virtualbox']['urlbase']}/SHA256SUMS").each do |line|
sha256sum = line.split(" ")[0] if line =~ /#{distfile}/
end
您可以在 github的源代码中查看整个配方。我可能会将该值设置为应用程序食谱之外的食谱中的属性,然后再将其设置为节点的运行列表中。