厨师运行的Windows意外输入结束,期望keyword_end

时间:2018-06-21 19:32:52

标签: java windows chef chef-recipe

我正在尝试使用Chef-run将Java jdk 8安装到ubuntu 16.04实例上。尽管在尝试安装时会显示Failed to converge target,但在打开日志时却显示以下内容:

[2018-06-21T20:24:34+01:00] ERROR: Remote chef-client error follows:
[2018-06-21T20:24:34+01:00] ERROR: SyntaxError: /var/chef-workstation/cache/cookbooks/windows/resources/share.rb:275: syntax error, unexpected end-of-input, expecting keyword_end

我的厨师仓库中具有以下结构:

cookbooks
 -- jdk
  -- attributes
   -- default.rb
  -- recipes
   -- default.rb
  metadata.rb

attributes/default.rb内:

default['java']['install_flavor'] = 'openjdk'
default['java']['jdk'] = '8'

recipes/default.rb内:

include_recipe 'java'

metadata.rb内:

name 'name'
maintainer 'maintainer'
maintainer_email 'maintainer_email@email.com'
license 'MIT'
description 'Installs/Configures java'
long_description 'Installs/Configures java'
version '0.1.0'
chef_version '>= 12.14' if respond_to?(:chef_version)

depends 'java', '~> 2.1.0'

我看不到错误是由什么引起的。任何帮助,将不胜感激。

编辑:

如果它可以帮助我与参数一起使用的命令如下: chef-run -i ~/.ssh/key jack@host jdk

2 个答案:

答案 0 :(得分:1)

此问题应在最新的稳定版本0.1.139中解决。

答案 1 :(得分:0)

在使用策略压缩包导出时,这是ChefDK 3.0中的错误。下周将在ChefDK 3.1中修复该问题。同时,将其添加到您的knife.rb配置文件中:

require "mixlib/archive/lib_archive"
Mixlib::Archive::LibArchive.define_singleton_method(:new) { raise LoadError }

请确保在升级到3.1时将其删除。