Java 厨师食谱未安装 Java
Java Chef recipe not installing Java
我对 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>
有人可以告诉我我在这里缺少什么吗?
您创建了一本名为 "java" 的食谱,它依赖于另一本名为 "java" 的食谱。我怀疑你想做的是消费社区 "java" 食谱:
我强烈建议您安装 Chefdk locally and start using tools like test kitchen to test your cookbook locally and Berkshelf 来管理将您的食谱及其所有依赖项上传到您的 Chef 服务器中。
下面是安装的例子Java:
比其他答案更具体一点:您需要将包装食谱重命名为 mycompany-java
。
我对 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>
有人可以告诉我我在这里缺少什么吗?
您创建了一本名为 "java" 的食谱,它依赖于另一本名为 "java" 的食谱。我怀疑你想做的是消费社区 "java" 食谱:
我强烈建议您安装 Chefdk locally and start using tools like test kitchen to test your cookbook locally and Berkshelf 来管理将您的食谱及其所有依赖项上传到您的 Chef 服务器中。
下面是安装的例子Java:
比其他答案更具体一点:您需要将包装食谱重命名为 mycompany-java
。