Java chef运行windows输入意外结束,应为关键字\u end
我正在尝试使用chef run将java jdk 8安装到ubuntu 16.04实例上。虽然当它尝试安装时,I getJava chef运行windows输入意外结束,应为关键字\u end,java,windows,chef-infra,chef-recipe,Java,Windows,Chef Infra,Chef Recipe,我正在尝试使用chef run将java jdk 8安装到ubuntu 16.04实例上。虽然当它尝试安装时,I get未能聚合目标,但当我打开日志时,我有以下信息: [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/res
未能聚合目标
,但当我打开日志时,我有以下信息:
[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
在属性/default.rb中:
default['java']['install_flavor'] = 'openjdk'
default['java']['jdk'] = '8'
include_recipe 'java'
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'
在配方/default.rb中:
default['java']['install_flavor'] = 'openjdk'
default['java']['jdk'] = '8'
include_recipe 'java'
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'
在元数据.rb的中:
default['java']['install_flavor'] = 'openjdk'
default['java']['jdk'] = '8'
include_recipe 'java'
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/keyjack@hostjdk
这是ChefDK 3.0在使用策略tarball导出时的一个错误。它将于下周在ChefDK 3.1中修复。同时,将其添加到knife.rb
config文件中:
require "mixlib/archive/lib_archive"
Mixlib::Archive::LibArchive.define_singleton_method(:new) { raise LoadError }
请确保在升级到3.1时将其删除。此问题应在最新的稳定版本0.1.139中解决。您是否在本手册的某个地方使用了windows\u share
?错误不适用于Java。@brandonmiller不,这是奇怪的事情。java cookbook依赖windows,但这是安装它的唯一原因,除了我对它不做任何操作之外。也许重新下载windows cookbook并再次上载?@BrandonMiller我自己不下载它,当我运行chef run
时,它会为我在实例上下载它。我已在实例上清除了/var/chef workstation
,并在本地计算机上清除了它~/.chef workstation
,但没有任何更改。奇怪的是,当我运行厨房测试时,它通过了。如果你使用的是厨师服务器,它会从你的服务器下载。在测试开始时,检查使用了哪个版本的windows
cookbook,然后在实例上执行相同的操作并进行检查。Test kitchen从您的服务器上获取带有Berks的烹饪书。我在~/.chef
和~/.chefdk
中创建了刀.rb
,但运气不佳。我还在服务器本身/var/chef workstation/.chef
上创建了它,之后运行了chef run
,但它们都不起作用。我仍然得到完全相同的错误,是否有什么我做得不正确?啊,对不起,我不认为chef run
使用相同的配置文件。我想你只需要等待一个固定版本。以前的版本会有相同的bug吗?Chef run是一个新的测试项目,所以我不确定他们在引入bug之前是否有任何版本仍然存在。不过,我会在早上ping该团队。0.1.139部署了此修复程序。谢谢