【问题标题】:chef-run windows unexpected end-of-input, expecting keyword_end厨师运行窗口意外的输入结束,期待keyword_end
【发布时间】: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


【解决方案1】:

这个问题应该在最新的稳定版本 0.1.139 中得到解决。

【讨论】:

  • 0.1.139 部署了此修复程序。谢谢。
【解决方案2】:

这是使用策略 tarball 导出时 ChefDK 3.0 中的一个错误。它将在下周的 ChefDK 3.1 中修复。同时,将此添加到您的 knife.rb 配置文件中:

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

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

【讨论】:

  • 我在~/.chef~/.chefdk 中创建了knife.rb,但没有成功。我还在服务器本身上创建了它/var/chef-workstation/.chef,然后运行chef-run,但它们都不起作用。我仍然得到完全相同的错误,是我做错了什么吗?
  • 啊抱歉,我不认为chef-run 使用相同的配置文件。我认为你只需要等待一个固定版本。
  • 之前的版本会有同样的bug吗?
  • Chef run 是一个新的 beta 项目,所以我不确定他们在引入错误之前是否有任何版本仍然存在。不过,我会在早上 ping 那个团队。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多