我已经在 get started (OS redhat 6.5) 中配置了 this step 工作站。我启动了一个节点。我这样修改了一本 Recipe :
myCookbook/metadata.rb
name 'myCookbook'
maintainer 'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license 'All rights reserved'
description 'Installs/Configures myCookbook'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.0'
depends 'maven'
例如仅在执行 knife cookbook create myCookbook
后添加了 depends 'maven'
字符串。
myCookbook/recipes/default.rb
maven 'spring-context' do
group_id 'org.springframework'
version '4.0.4.RELEASE'
dest '/root/chef-repo/'
repositories ['http://repo.maven.apache.org/maven2/']
end
然后我运行:
knife cookbook upload myCookbook
现在我正在尝试:
knife bootstrap 192.168.1.37 --ssh-user root --ssh-password '123456' --sudo --use-sudo-password --node-name node-with-maven-run --run-list 'recipe[myCookbook]'
并得到:
ERROR: Cookbook myCookbook depends on cookbooks which are not currently
ERROR: being uploaded and cannot be found on the server.
ERROR: The missing cookbook(s) are: 'maven' version '>= 0.0.0'
如何从那个 mtCookbook 将所有 Recipe 安装到 Chef 服务器取决于?
最佳答案
或者只需键入 knife cookbook upload --help
,它会向您显示以下行(以及其他行):
--include-dependencies 同时上传 cookbook 依赖项
所以 knife cookbook upload myCookbook --include-dependencies
就是你的答案
您还需要在您的工作站上安装maven
cookbook,通过knife cookbook site install maven
或任何其他方式来拥有一个名为maven 的目录
在您的本地 cookbook_path
中,其中包含一个 Recipe ,其中 metatada.rb
文件作为键 name
,值为 maven
关于java - 如何在 Chef 中运行具有依赖关系的 Recipe ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27420956/