Chef infra Java厨师配方未安装Java

Chef infra Java厨师配方未安装Java,chef-infra,Chef Infra,我对厨师还很陌生。我想通过recipes在我的Chef节点上安装Java。这就是我所尝试的: default.rb如下所示: root@user:/chef-repo/cookbooks/java/recipes#cat default.rb # # Cookbook Name:: java # Recipe:: default # # Copyright 2016, YOUR_COMPANY_NAME

我对厨师还很陌生。我想通过recipes在我的Chef节点上安装Java。这就是我所尝试的:

default.rb如下所示:

root@user:/chef-repo/cookbooks/java/recipes#cat default.rb 
        #
        # Cookbook Name:: java
        # Recipe:: default
        #
        # Copyright 2016, YOUR_COMPANY_NAME
        #
        # All rights reserved - Do Not Redistribute
        #

        include_recipe "java"
root@user:~/chef-repo/cookbooks/java# cat metadata.rb 
name             'java'
maintainer       'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license          'All rights reserved'
description      'Installs/Configures java'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version          '0.1.0'

depends "java",     "~> 1.39.0"
metadata.rb如下所示:

root@user:/chef-repo/cookbooks/java/recipes#cat default.rb 
        #
        # Cookbook Name:: java
        # Recipe:: default
        #
        # Copyright 2016, YOUR_COMPANY_NAME
        #
        # All rights reserved - Do Not Redistribute
        #

        include_recipe "java"
root@user:~/chef-repo/cookbooks/java# cat metadata.rb 
name             'java'
maintainer       'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license          'All rights reserved'
description      'Installs/Configures java'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version          '0.1.0'

depends "java",     "~> 1.39.0"
然后我通过以下命令上传这本食谱:

root@user:~/chef-repo/cookbooks/java/recipes# knife cookbook upload java
WARN: Ignoring self-dependency in cookbook java, please remove it (in the future this will be fatal).
Uploading java           [0.1.0]
Uploaded 1 cookbook.
然后我登录到我的Chef客户端节点并执行以下菜谱:

root@client:/usr/share/java# sudo chef-client
Starting Chef Client, version 12.11.18
resolving cookbooks for run list: ["java"]
Synchronizing Cookbooks:
  - java (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 0 resources

Running handlers:
Running handlers complete
Chef Client finished, 0/0 resources updated in 02 seconds
看起来这没有安装任何东西。 我试着检查java版本,结果一无所获

root@client:~# java -version
The program 'java' can be found in the following packages:
 * default-jre
 * gcj-4.8-jre-headless
 * openjdk-7-jre-headless
 * gcj-4.6-jre-headless
 * openjdk-6-jre-headless
Try: apt-get install <selected package>
root@client:~#java-版本
程序“java”可在以下软件包中找到:
*默认jre
*gcj-4.8-jre-headless
*openjdk-7-jre-headless
*gcj-4.6-jre-无头
*openjdk-6-jre-headless
Try:apt-get-install

有人能告诉我我缺少了什么吗?

您创建了一本名为“java”的食谱,它依赖于另一本名为“java”的食谱。我怀疑你想做的是消费社区“java”食谱:

我强烈建议您在本地安装并开始使用一些工具,例如在本地测试您的烹饪书,以及管理将您的烹饪书及其所有依赖项上传到您的chef服务器

以下是安装Java的示例:


您创建了一本名为“java”的食谱,它依赖于另一本名为“java”的食谱。我怀疑你想做的是消费社区“java”食谱:

我强烈建议您在本地安装并开始使用一些工具,例如在本地测试您的烹饪书,以及管理将您的烹饪书及其所有依赖项上传到您的chef服务器

以下是安装Java的示例:


比其他答案更具体一点:你需要重命名你的包装器烹饪书,类似于
mycompany java
比其他答案更具体一点:你需要重命名你的包装器烹饪书,类似于
mycompany java
在default.rb文件中包含“java”,你们有并没有检查其他配方的名称是java,你们应该写java,我检查了,配方的名称是“java”。链接位于此处:
knife cookbook list
能否在chef server中列出所有烹饪书,请确保已正确上载java cookbook。您不应将您的烹饪书命名为您尝试使用的社区烹饪书。选择一个前缀,如
foo
并命名你的烹饪书
foo\u java
,以避免冲突。
在default.rb文件中包含“java”
,你是否检查了其他菜谱的名称为java,你应该写java RecipeEyes,我检查了,菜谱名称为“java”。链接位于此处:
knife cookbook list
能否在chef server中列出所有烹饪书,请确保已正确上载java cookbook。您不应将您的烹饪书命名为您尝试使用的社区烹饪书。选择像
foo
这样的前缀,并将您的烹饪书命名为
foo\u java
,以避免冲突。非常感谢@Mark。你分享的那些链接真的帮助了Hanks@Mark。你分享的那些链接真的很有帮助