【发布时间】:2018-06-23 04:00:14
【问题描述】:
我正在尝试使用 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
我的 chef-repo 中有以下结构:
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
【问题讨论】:
-
你在这本食谱的某处使用
windows_share吗?该错误不适用于 Java。 -
@brandonmiller 不,这很奇怪。 java 食谱有 windows 作为依赖项,但这是安装它的唯一原因,除了我什么都不做。
-
也许重新下载 windows 食谱并再次上传?
-
@BrandonMiller 好吧,我自己不下载它,当我运行
chef-run时,它会为我在实例上下载它。我已经清除了实例上的/var/chef-workstation并在我的本地计算机上清除了它~/.chef-workstation但没有任何变化。奇怪的是,当我运行kitchen test时它通过了。 -
如果您使用的是厨师服务器,它会从您的服务器下载它。在您的测试厨房运行开始时,检查使用了哪个版本的
windows食谱,然后在您的实例上执行相同的操作并检查。测试厨房不是从您的服务器获取 Berks 的食谱
标签: java windows chef-infra chef-recipe