Chef infra 如何在CHEF recipe中的shell脚本中使用节点属性

Chef infra 如何在CHEF recipe中的shell脚本中使用节点属性,chef-infra,chef-recipe,cookbook,Chef Infra,Chef Recipe,Cookbook,我创建了一本新的厨师烹饪书,在attributes文件夹中,我将以下值添加到default attribute.rb文件中 ******** node.default['main']['a2']=“你好,世界” ******** 在厨师食谱中,我想回显或创建一个名为“hello world”的新文件 配方有以下几行: 食谱名称::a2 #配方::默认值 # #作者版权所有,保留所有权利。 执行“just_test”do 命令“touch/tmp/a2345” 结束 执行“just_test1

我创建了一本新的厨师烹饪书,在attributes文件夹中,我将以下值添加到default attribute.rb文件中

********
node.default['main']['a2']=“你好,世界”
********
在厨师食谱中,我想回显或创建一个名为“hello world”的新文件

配方有以下几行:

食谱名称::a2
#配方::默认值
#
#作者版权所有,保留所有权利。
执行“just_test”do
命令“touch/tmp/a2345”
结束
执行“just_test1”do
命令“touch/tmp/node['main']['a2']”
结束
执行“just_test2”do
命令“echo node['main']['a2']”
结束
虽然配方很成功,但我没有看到包含“hello world”的文件

配方:a2::默认值

*执行[just_test]操作运行

-执行touch/tmp/a2345

*执行[just_test1]操作运行

-执行touch/tmp/node['main']['a2']

*执行[just_test2]操作运行

-执行echo节点['main']['a2']

[2018-04-03T15:52:18+00:00]警告:跳过最终节点保存,因为提供了覆盖运行列表

在tmp目录中创建以下文件

a2345节点[主][a2]

如何在厨师配方中进行属性替换??? 是否有替代方案来实现此功能

多谢各位

  • 不应使用execute创建空文件,请使用
  • 《厨师长》是用红宝石写的。因此,在您的例子中,它应该是
    “touch/tmp/#{node['main']['a2']}”
    -外部双引号很重要
  • 你试过通过我们的考试吗。你可以在那里了解这个和其他有用的“案例”
  • 不应使用execute创建空文件,请使用
  • 《厨师长》是用红宝石写的。因此,在您的例子中,它应该是
    “touch/tmp/#{node['main']['a2']}”
    -外部双引号很重要
  • 你试过通过我们的考试吗。你可以在那里了解这个和其他有用的“案例”
  • # Recipe:: default<br>
    #<br>
    # Copyright (c) 2018 The Authors, All Rights Reserved.<br>
    execute 'just_test' do <br>
    command 'touch /tmp/a2345' <br>
    end <br>
    execute 'just_test1' do <br>
    command "touch /tmp/node['main']['a2']" <br>
    end <br>
    execute 'just_test2' do <br>
    command "echo node['main']['a2']" <br>
    end <br>