Java Chef配方没有安装Java

时间:2016-06-14 09:51:01

标签: chef

我对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"

metadata.rb 如下所示:

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-client节点并执行此配方:

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>

有人可以让我知道我在这里缺少什么吗?

2 个答案:

答案 0 :(得分:2)

你创建了一个名为“java”的食谱,它取决于另一本名为“java”的食谱。我怀疑你要做的是消费社区“java”食谱:

我强烈建议您在本地安装Chefdk并开始使用test kitchen等工具在本地测试您的食谱,并Berkshelf管理您的食谱及其所有依赖项上传到您的厨师服务器

以下是安装Java的示例:

答案 1 :(得分:0)

要比其他答案更具体一点:您需要重命名您的包装食谱,如mycompany-java