如何在运行时为我的厨师食谱中的变量赋值

时间:2014-08-07 15:58:02

标签: chef chef-solo

在shell / perl等脚本语言中,我可以使用变量在运行时获取特定的目录名,该名称可以在脚本中使用。但是在厨师食谱中如何使用变量而不将它们作为参数传递

我想将shell命令行的输出分配给变量 - 如何在厨师食谱中实现它。我正在使用厨师独奏。

Shell示例:

install_dir=`grep install /tmp/my_info.txt | cut -d"/" -f4`
cd /dev/install_dir

1 个答案:

答案 0 :(得分:0)

你测试了你的食谱吗?语法已经正确。例如,如果我有一个文件/tmp/my_info.txt,并且所述文件的内容类似于:

install is here
but not here

我运行以下厨师食谱:

install_dir = `grep install /tmp/my_info.txt`
Chef::Log.error("Result of grep is: #{install_dir}")

然后,来自chef-client的输出将是:

ERROR: Result of grep is: install is here

如果你需要在某些资源中使用install_dir(你还没有真正展示过),它可能就像这样简单:

directory "#{install_dir}" do
  owner "root"
  group "root"
  mode 00644
  action :create
end