Hen*_*ijo 10 cookbook chef-infra knife
假设我想使用社区食谱(即http://community.opscode.com/cookbooks/gerrit).所以我将使用'knife cookbook site download'下载并上传到我当地的厨师服务器.我需要为每个直接和瞬态依赖重复此步骤.
是否有单个命令或工具来解析/下载食谱的所有直接和瞬态依赖性?
kra*_*mfs 13
只是为了扩展这里关于使用ChefDk中包含的Berkshelf的答案.指针使用Bershelf是伟大的,但缺少的是如何组成部分,所以希望有人可能会觉得这个答案有帮助.
以wordpress cookbook 为例,它具有依赖关系:https: //supermarket.chef.io/cookbooks/wordpress
为了将其上传到您的厨师服务器,您可以创建一个Berks文件,Berkshelf将使用该文件作为配置,以查找要检索的Cookbook以及从何处获取它们.只需从超市berkshelf部分复制单线
chef-dev]$ cat Berksfile
source "https://supermarket.chef.io"
cookbook 'wordpress', '~> 3.0.0'
Run Code Online (Sandbox Code Playgroud)
然后做一个berks安装
[chef-dev]$ berks install
Resolving cookbook dependencies...
Fetching cookbook index from https://supermarket.chef.io...
Installing 7-zip (1.0.2)
Installing apache2 (3.2.2)
Installing apt (2.9.2)
Installing bluepill (2.4.3)
Installing build-essential (2.4.0)
Installing chef-sugar (3.3.0)
Installing chef_handler (1.4.0)
Installing compat_resource (12.10.6)
Installing database (5.1.2)
Installing iis (4.1.10)
Installing mariadb (0.3.1)
Installing mysql (7.2.0)
Installing mysql2_chef_gem (1.0.1)
Installing nginx (2.7.6)
Installing ohai (2.1.0)
Installing openssl (4.4.0)
Installing packagecloud (0.2.4)
Installing php (1.9.0)
Installing php-fpm (0.6.10)
Installing postgresql (4.0.6)
Installing rbac (1.0.3)
Installing rsyslog (4.0.0)
Installing runit (1.7.8)
Installing selinux (0.9.0)
Installing smf (2.2.8)
Installing tar (0.7.0)
Installing windows (1.44.1)
Installing wordpress (3.0.0)
Installing xml (2.0.0)
Installing yum (3.11.0)
Installing yum-epel (0.7.0)
Installing yum-mysql-community (0.2.0)
Run Code Online (Sandbox Code Playgroud)
一旦烹饪书在本地可用,您就可以使用berks上传来上传食谱及其依赖项.在上传期间,它还将负责解决类似于下载的依赖性.
[chef-dev]$ berks upload
Run Code Online (Sandbox Code Playgroud)
另外,仅供参考,烹饪书将下载并提供
~/.berkshelf/cookbooks/
Run Code Online (Sandbox Code Playgroud)
事情现在有点过渡。Berkshelf可能是将来要走的路,但是如果您需要现在可以工作的东西(或者您在ChefDK尚不支持的平台上),则应该可以执行以下操作:
knife cookbook site install gerrit
knife cookbook upload gerrit --include-dependencies
Run Code Online (Sandbox Code Playgroud)
就个人而言,我发现创建包装食谱和通过berkshelf管理依赖项是最方便的。但是我已经使用上面的方法对新的食谱进行了一些一次性测试。