Chef infra 厨师烹饪书名称中允许的字符(带有LWRP)
我在我的食谱中定义了LWRP资源-如上所述 因此,让我们假设我的烹饪书名称是某个名称,所以我有文件(正如您可以猜到的,这个LWRP是基于代码的): 文件/some name/recipes/some-kind.rb的内容包括: 在调用knife cookbook时,我上传了一些名称: 问题是我的食谱包含破折号(“-”)字符。若我并没有在食谱上写破折号,那个么一切都没问题Chef infra 厨师烹饪书名称中允许的字符(带有LWRP),chef-infra,Chef Infra,我在我的食谱中定义了LWRP资源-如上所述 因此,让我们假设我的烹饪书名称是某个名称,所以我有文件(正如您可以猜到的,这个LWRP是基于代码的): 文件/some name/recipes/some-kind.rb的内容包括: 在调用knife cookbook时,我上传了一些名称: 问题是我的食谱包含破折号(“-”)字符。若我并没有在食谱上写破折号,那个么一切都没问题 所以问题是:如果愿意使用LWRPs,有没有办法在烹饪书名称中使用破折号字符?某种类型的转义?连字符在资源名称中变成下划线,因此
所以问题是:如果愿意使用LWRPs,有没有办法在烹饪书名称中使用破折号字符?某种类型的转义?连字符在资源名称中变成下划线,因此这应该是
一些\u name\u manage
。这是因为在Ruby方法名称中不允许使用连字符。如果您想知道一个名称是否有效,请尝试用该名称定义一个Ruby方法,如果Ruby允许您这样做,它是一个ok名称。
./some-name/recipes/default.rb
./some-name/recipes/some-kind.rb
./some-name/providers/manage.rb
./some-name/resources/manage.rb
some-name_manage "some-kind" do
data_bag "some-kind"
end
FATAL: Cookbook file recipes/some-kind.rb has a ruby syntax error:
FATAL: /path/to/chef-repo/cookbooks/some-name/recipes/some-kind.rb:2: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
FATAL: some-name_manage "some-kind" do
FATAL: ^
FATAL: /path/to/chef-repo/cookbooks/some-name/recipes/some-kind.rb:2: syntax error, unexpected keyword_do, expecting keyword_end
FATAL: /path/to/chef-repo/cookbooks/some-name/recipes/some-kind.rb:8: syntax error, unexpected keyword_end, expecting $end