我正在尝试使用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
答案 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时将其删除。