标签: berkshelf

Berksfile中的厨师'cookbook'与metadata.rb中的'depends'相对应

使用'cookbook'将烹饪书添加到Berksfile并使用'depends'将cookbook添加到metadata.rb之间有什么区别?例如,如果我添加到metadata.rb

depends 'nginx'
Run Code Online (Sandbox Code Playgroud)

我需要使用它将它添加到Berksfile吗?

cookbook 'nginx'
Run Code Online (Sandbox Code Playgroud)

chef-infra berkshelf berksfile

59
推荐指数
2
解决办法
1万
查看次数

Vagrant:网络类型'bridged'无效.请使用有效的网络类型

任何人都可以解释为什么我收到以下错误

"Vagrant:网络类型'桥接'无效.请使用有效的网络类型."

当我尝试使用以下Vagrantfile将虚拟框带到虚拟框时

# -*- mode: ruby -*-    
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.hostname = "gitserver"
  config.berkshelf.enabled = true
  config.vm.box = "centos57"
  config.vm.box_url = "http://xx.xx.xx.xx/os/centos-5.7-x86_64.box"
  config.vm.network :bridged, :bridge => 'eth0'

  # Provision VM using chef
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = "cookbooks"
    chef.add_recipe "mysqlserver"
  end

  config.vm.customize ["modifyvm", :id, "--memory", 1024]
end
Run Code Online (Sandbox Code Playgroud)

我已尝试过所有可能的桥接配置组合,但它根本不喜欢它.我找不到有关原因的任何其他信息.这里的任何帮助将非常感激.

virtualbox vagrant berkshelf

20
推荐指数
3
解决办法
2万
查看次数

为什么厨师不能解决我的食谱?

简介 我正在学习厨师在工作中自动化服务器管理.我从这里下载了chefdk 3.0 ,现在我正在尝试用厨师制作我的第一本食谱.

重要 我在Windows环境中使用它进行测试,我确实认为它失败了,因为Windows没有iptables,但我不认为它会失败,说它找不到食谱.我尝试过使用Windows cookbook,但它确实有效.

问题 我能够创建菜谱并运行它,但我无法引用超市的依赖关系.

我尝试过两种选择:

备选方案1

我使用以下命令来创建cookbook

chef generate cookbook learn_chef_httpd
Run Code Online (Sandbox Code Playgroud)

(来自本教程)

我能够完成教程,现在我想测试引用另一本食谱,所以我选择了simple_iptables

我添加了这一行

cookbook 'simple_iptables', '~> 0.7.0'
Run Code Online (Sandbox Code Playgroud)

对于我的Berksfile,如超市中所述.

然后我将这些行添加到我的default.rb文件中:

include_recipe 'simple_iptables'

# Allow HTTP, HTTPS
simple_iptables_rule "http" do
  rule [ "--proto tcp --dport 80",
         "--proto tcp --dport 443" ]
  jump "ACCEPT"
end
Run Code Online (Sandbox Code Playgroud)

我使用以下方法运行食谱:

chef-client --local-mode --runlist 'recipe[learn_chef_httpd]'
Run Code Online (Sandbox Code Playgroud)

问题是厨师找不到食谱

Chef::Exceptions::CookbookNotFound
----------------------------------
Cookbook simple_iptables not found. If you're loading simple_iptables from anoth er cookbook, make sure you configure the …
Run Code Online (Sandbox Code Playgroud)

chef-infra chef-recipe berkshelf

16
推荐指数
1
解决办法
3万
查看次数

chef-client找不到使用berkshelf的食谱

我是厨师的新手,遇到了berkshelf和chef-client的问题.我想拥有自己的食谱与依赖并应用它.我最初的食谱看起来像这样:

.
??? Berksfile
??? Berksfile.lock
??? chefignore
??? client.rb
??? Gemfile
??? Gemfile.lock
??? metadata.rb
??? README.md
??? recipes
    ??? default.rb

#./Berksfile
source 'https://supermarket.getchef.com'

metadata

cookbook 'znc'


#./client.rb
cookbook_path '~/.berkshelf/cookbooks'
Run Code Online (Sandbox Code Playgroud)

当我经营sudo bundle exec chef-client -z -o znc --config=client.rb厨师时,客户找不到食谱:

Starting Chef Client, version 11.16.4
[2014-10-25T15:34:59+02:00] WARN: Run List override has been provided.
[2014-10-25T15:34:59+02:00] WARN: Original Run List: []
[2014-10-25T15:34:59+02:00] WARN: Overridden Run List: [recipe[znc]]
resolving cookbooks for run list: ["znc"]

================================================================================
Error Resolving Cookbooks for Run List:
================================================================================ …
Run Code Online (Sandbox Code Playgroud)

chef-infra berkshelf

15
推荐指数
1
解决办法
7752
查看次数

在厨师使用berkshelf时如何使用手写食谱?

我正在使用流浪汉+厨师.我的厨师食谱非常完美.然后我安装了vagrant-berkshelf插件,从那一刻起我无法使用自己的烹饪书.Berkshelf覆盖了cookbook目录,当我使用它时,厨师看不到我的食谱.我的配置是这样的:

config.berkshelf.enabled = true

config.vm.provision :chef_solo do |chef|
   chef.add_recipe "qbaka-frontend"
end
Run Code Online (Sandbox Code Playgroud)

使用此配置,Chef只能使用指定的cookbook,Berksfile但无法在cookbooks目录中查看我的cookbook .

我如何与我的&Berkshelf的烹饪书同时工作?

chef-infra vagrant berkshelf

14
推荐指数
1
解决办法
1万
查看次数

"berks update <cookbook-name>"到底是做什么的?

根据"berks help update",该命令应该是:

"更新Berksfile中指定的cookbook(和依赖项)"

(是的......这就是它所说的!).

但究竟是什么意思呢?

这会如何随着Berksfile中不同类型的"cookbook"规范而变化?

chef-infra berkshelf berksfile

14
推荐指数
1
解决办法
6570
查看次数

如何以编程方式查询Vagrant的配置状态?

目标

我试图有条件地运行vagrant-berkshelf插件.默认情况下,vagrant up即使当前的流浪者操作不是配置运行,启用插件也会导致Berkshelf在每一个上解析和供应烹饪书(这是一个相对昂贵的操作).例如,我希望Berkshelf在我运行时运行:

  • vagrant up 第一次,或
  • 当我执行vagrant reload --provision.

来源暗示应该有一种方法来查询Vagrant本身以确定它是否是供应运行.具体来说,应该有一种方法可以挂钩@env[:provision_enabled]或者vagrant.actions.vm.provision,但我无法弄清楚如何在Vagrantfile本身内执行此操作.

这个方法实际上是绑定到Vagrant对象吗?如果没有,那么在哪里?我怎么能反省呢?

软件版本

  • 流浪者1.8.1
  • vagrant-berkshelf 4.1.0

我试过的

作为一种解决方法,我尝试在Chef块中移动Berkshelf插件,意图它只在Chef配置器执行时运行.例如:

Vagrant.configure(2) do |config|
  config.berkshelf.enabled = false

  config.vm.provision :chef_solo do |chef|
    config.berkshelf.enabled = true
  end
end
Run Code Online (Sandbox Code Playgroud)

然而,Berkshelf仍然运行每次我vagrant up还是vagrant reload,这是不期望的行为.每次运行时,烹饪书仍然可以解决和销售.考虑以下省略的输出:

==>默认:更新Vagrant的Berkshelf ...
==>默认:解决cookbook依赖...
==>默认:使用karaf(0.2.1)
==>默认:将karaf(0.2.1)提供给/ Users /富/ .berkshelf /游民,berkshelf /货架/ berkshelf20160215-19428-unzcx1默认/ karaf

与这一问题不重复的问题

有一个模糊的相关问题,其中接受的答案是一个丑陋的黑客,它寻找.vagrant/machines/default/virtualbox/action_provision或类似的存在,但它不是这个问题的完全重复,因为它没有解决如何以编程方式通过运行时对象或API Vagrant公开查询Vagrant的内部状态.它可能包含基于文件系统信号量的实用(如果是kludgey)答案,但它没有回答我实际问的问题.

ruby vagrant chef-solo berkshelf vagrant-plugin

7
推荐指数
1
解决办法
712
查看次数

有没有办法使用私有git存储库与Berkshelf

我创建了一个名为的食谱foo,并希望与之配合使用Berkshelf.

我写的是这样的Berksfile:

cookbook 'foo', git: 'https://bitbucket.org/ironsand/cookbook-foo.git'
Run Code Online (Sandbox Code Playgroud)

然后将cookbook提供给cookbooks目录,但它失败并出现如下错误:

berks vendor cookbooks
Resolving cookbook dependencies...
Fetching 'foo' from https://bitbucket.org/ironsand/cookbook-foo.git (at master)
Username for 'https://bitbucket.org':
Run Code Online (Sandbox Code Playgroud)

如何告诉ssh用户名和密钥Berkshelf?当然我的用户有权访问git存储库.

git chef-infra berkshelf

6
推荐指数
1
解决办法
3324
查看次数

我已经安装了chef-dk并开始使用berkshelf,但是berks上传失败了

我已经安装了厨师客户端12.0.3,除此之外我已经安装了chef-dk版本,0.3.5但为什么chef-dk正在安装厨师客户端版本Chef: 11.18.0.rc.1

  1. 无法将cookbook上传到厨师服务器
  2. berks shelf list正在运行,但是berks上传失败了

错误:

E, [2015-01-08T04:58:36.707534 #22533] ERROR -- : Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
E, [2015-01-08T04:58:36.708931 #22533] ERROR -- : /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/responses.rb:29:in `value'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/celluloid-0.16.0/lib/celluloid/proxies/cell_proxy.rb:17:in `_send_

    There was an error connecting to the Chef Server
Run Code Online (Sandbox Code Playgroud)

chef-infra berkshelf chefdk

6
推荐指数
1
解决办法
4405
查看次数

Nginx cookbook v 2.0.0:未找到Cookbook http_gzip_static_module

我正在使用berkshelf管理食谱,厨师11.6.2和nginx cookbook v 2.0.0

我从源代码编译nginx的设置:

set[:nginx][:source][:modules] = ["http_gzip_static_module", "http_ssl_module"]
Run Code Online (Sandbox Code Playgroud)

配置给了我错误:

Cookbook http_gzip_static_module not found. If you're loading http_gzip_static_module from another cookbook, make sure you configure the dependency in your metadata
Run Code Online (Sandbox Code Playgroud)

这是nginx cookbook的一个bug,你是如何解决的?一切都适用于nginx cookbook v 1.7.0

非常感谢.

deployment nginx cookbook chef-infra berkshelf

5
推荐指数
1
解决办法
983
查看次数