模板路径中出现意外的tIDENTIFIER

时间:2013-03-21 15:38:16

标签: ruby chef chef-recipe chef-solo

我会先说明我知道一点Ruby但不是很好,所以这可能是一个常见的Ruby错误(但我似乎无法找到答案!)

我有这个厨师食谱(使用Vagrant运行):

package "php5-fpm" do
  action :install
end

template "/etc/php5-fpm/pool.d/site" do
  source "php-fpm.erb"
  owner "root"
  group "root"
  mode 0644
  action :create
  only_if "dpkg --get-selections | grep php5-fpm"
end

service "php5-fpm" do
  action :restart
end

此操作失败,并显示以下消息:

================================================================================
Recipe Compile Error in /tmp/.../cookbooks/site/recipes/php-fpm.rb
================================================================================

SyntaxError
-----------
compile error
/tmp/.../cookbooks/site/recipes/php-fpm.rb:1: syntax error, unexpected
tIDENTIFIER, expecting $end
    template "/etc/php5-fpm/pool.d/site" d...
                                  ^
Cookbook Trace:
---------------
  /tmp/.../cookbooks/dosos/recipes/php-fpm.rb:1:in `from_file'

Relevant File Content:
----------------------
    /tmp/.../cookbooks/dosos/recipes/php-fpm.rb:

end  2:  :restart" do-selections | grep php5-fpm"

这对我来说没有多大意义,因为“相关文件内容”似乎来自文件的不同部分。

Ruby是否有关于在字符串中提出斜杠的内容(如果是这样,为什么不在前3个斜杠上出现错误,除非它从右向左运行?)

1 个答案:

答案 0 :(得分:2)

我正在使用Vagrant使用Chef脚本配置我的服务器。 Chef脚本在Windows上编辑,可通过共享文件夹在Linux VM上使用。

错误在于我的Windows编辑器没有配置使用Unix线路结尾,这让Ruby感到困惑。剥离回车符(^M)允许脚本正常运行。