问题标签 [berkshelf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 用 rvm 切换 ruby 会破坏 Chef 11.4.4 刀命令
我有安装了 ruby 1.9.1 的厨师 11.4.4。我想安装 berkshelf 但它需要 ruby 1.9.2 或更高版本。我用 rvm 安装了 ruby 2.0.0-p247(最新稳定版)。当我运行刀命令时,我得到...
如果我将它切换回系统版本,即嵌入厨师的 ruby 版本,它会再次工作。
我在谷歌上搜索了将 ruby 升级到 2.0.0x for chef 的方法,但没有运气。我喜欢如此轻松地切换 ruby 版本的能力。如果厨师也能做到这一点,那就太好了,但让它与最新的稳定版甚至 1.9.2 版的 ruby 一起工作会很棒。谢谢!
design-patterns - 如何以 Berkshelf 方式管理环境属性?
我们想开始采用 Berkshelf(和 Berskshelf 方式)来支持使用更好的开发模式。我们已经使用了“Application Coobook”和“Wrapper Cookbook”模式,但是大量使用了 Databags 而不是 Attributes。如果我们想使用属性,我们必须如何使用 Berkshelf 在环境级别上配置我们的应用程序?环境没有被打包到说明书中,它们处于 chef-repo 级别,并且受到与 Roles 和 DataBags 相同的限制,或者不是?
我是否必须在我的属性目录中创建多个属性文件(每个环境 1 个:QA、PROD)到食谱中?
还是我必须在同一个属性文件中创建多个部分(每个环境 1 个:QA、PROD)?
或者我是否必须在“Enviroments”chef-repo 目录下创建多个环境文件(每个环境 1 个:QA.json、PROD.json),在其中定义所有将被覆盖的属性?
但是在最后一种情况下,如果我有 100 个应用程序(即 100 个应用程序说明书,这是我们的用例),我最终不会有 2 个巨大的、不可维护的 env 文件吗?
chef-infra - 创建客户端时出现 vagrant up 错误?chef-stacktrace:OpenSSL::PKey::RSAError:需要私钥
我目前正在将 Vagrant 与 Chef-solo 一起使用,并且效果很好。我想将流浪魔法扩展到厨师服务器。我已将 Vagrantfile 中的配置器从 chef-solo 切换到 chef-client 并添加了必要的代码:
我的问题是如何自动创建客户端,这样我就不必发出刀命令来创建客户端和相应的 client.pem 键。然后稍后我必须在完成后发出刀命令来删除客户端。
我希望这是 Vagrant 可以做的事情,我所需要的只是向 Vagrantfile 添加一些代码,然后“vagrant up”“vagrant destroy”命令将处理这一切。不幸的是,我的谷歌搜索没有发现任何东西。我看过有关如何使用 vagrant 设置厨师服务器的帖子,但我对厨师客户感兴趣。也许是 vagrant 或 berkshelf 的插件?
还有一个问题.. 现在,当我生成 client.pem 密钥时,我将它放在共享目录中:/vagrant 以便 VM 可以访问它。有没有更好的办法?
谢谢!
这是输出vagrant up
:
以下是 chef-stacktrace.out 文件的内容在 failed 时的样子vagrant up
:
为了更好的衡量......这是当前的 Vagrantfile 减去所有注释行:
ruby - rbenv vagrant 全局 ruby 版本不变
我正在使用带有 Berkshelf 插件的 Vagrant 创建一个 Ubuntu 12.04 机器,默认使用 Ruby 2.0.0-p247。机器加载时,ruby -v
返回ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
,表示 rbenv 没有安装正确的版本。
另外,如果我尝试rbenv global 2.0.0-p247
收到错误rbenv: version
2.0.0-p247' not installed`
任何想法我做错了什么?
谢谢
流浪文件:
伯克斯文件:
plugins - Vagrant Berkshelf - 货架路径?
是否可以设置 berkshelf 插件放置它安装的食谱的路径?(如在 .berkshelf 文件夹中)
我正在运行 Windows 7。
我目前正在尝试使用操作码说明书将 mysql 服务器安装到 vm,并且在工作中他们将 %HOMEDRIVE% 系统变量设置为网络驱动器。因此,当 .berkshelf 从 Vagrantfile 的开头开始时,它会将食谱推送到网络驱动器,这会导致它很慢而且很好,而不是它应该在的地方。有解决办法吗?
VirtualBox 也这样做了,但我通过更改设置来修复它。我尝试为 berkshelf 寻找某种等效设置,但我得到的最接近的是标准 berkshelf(那不是流浪插件),看来你可以设置这个环境变量:
ENV['BERKSHELF_PATH']
在这里找到:
http://www.rubydoc.info/github/RiotGames/berkshelf/Berkshelf#berkshelf_path-class_method
我需要能够将它从 berksfile 存储中读取的说明书保存到我的笔记本电脑本地驱动器中,因为在我的场景中,由于存储在网络上的文件,我不能将 VM 的移动性限制在建筑物中。
任何煽动将不胜感激。
也许使用实际的 berkshelf 而不是 vagrant 插件更好?
谢谢。
github - 来自 github 食谱的 Berkshelf 目录名称
我的自定义食谱存储在私人 github 存储库中。将它们添加到 Berkshelf 项目时,它们被添加到.berkshelf/cookbooks
ascustom-cookbook-commit-number
而不是custom-cookbook-version-number
我的 github repo 有带有版本的标签。“Releases”列出了所有的版本标签。
我需要改变什么才能使食谱变成
.berkshelf/cookbooks/custom-cookbook-version-number
?
chef-infra - Berkshelf 食谱没有被复制到 Vagrant 目录
我正在尝试使用 Chef-solo、Berkshelf 和 vagrant-berkshelf 插件来配置 Vagrant 机器。但是,配置失败并出现以下错误:
Berkshelf::CookbookNotFound: Cookbook <cookbook name> not found in any of the default locations
berks install
成功将所有内容安装到~/.berkshelf/cookbooks/
,但永远不会将食谱复制到~./berkshelf/default/vagrant/berkshelf-20131017-8441-pqghfq-default
Berkshelf 报告它正在更新的位置,就在跟踪之前:
[Berkshelf] Updating Vagrant's berkshelf: '/Users/<me>/.berkshelf/default/vagrant/berkshelf-20131017-8441-pqghfq-default'
所以,我想我的问题是:
- 谁负责将食谱复制到特定的 Vagrant 文件夹(Berkshelf、vagrant-berkshelf 插件或 Vagrant)?今晚我浏览了每个 repo 的来源,但无法确定应该在哪里发生这种情况。
- 我可以提供更多信息来帮助回答问题 #1 吗?:)
环境细节:
Mac OSX 10.8 红宝石 1.9.3
vagrant -v: 1.3.5
berks -v : Berkshelf (2.0.10)
$: vagrant plugin list
buff-config (0.2.0)
mini_portile (0.5.1)
nugrant (1.1.0)
vagrant-berkshelf (1.3.4)
vagrant-cachier (0.1.0)
vagrant-omnibus (1.1.1)
vagrant-rackspace (0.1.3)
deployment - Nginx 食谱 v 2.0.0:未找到食谱 http_gzip_static_module
我正在使用 berkshelf 管理食谱、厨师 11.6.2 和 nginx 食谱 v 2.0.0
我从源代码编译 nginx 的设置:
配置给了我错误:
它是来自 nginx 食谱的错误吗?你如何解决它?一切都适用于 nginx 食谱 v 1.7.0
非常感谢。
ruby - 如何让 Berkshelf 使用本地路径作为默认站点,或取消设置默认站点?
我有一个包含许多食谱的厨师存储库,以及一个包含以下内容的 Berksfile:
这包括来自存储库的每本说明书,以及来自 github 存储库的外部说明书。默认情况下,Berkshelf 会在 opscode 社区站点中搜索任何未列出的说明书。
而不是这个,我想:
- 禁用此默认设置,并且永远不要在外部站点中搜索缺少的依赖项。
- 将此默认值替换为本地路径,以便我可以删除
Dir.glob
添加我的每个本地食谱的路径。
作为旁注,我完全意识到将食谱保存在 chef 存储库中被认为是一种反模式。在这种情况下,这不是我可以改变的,虽然 Berkshelf 不是为处理这个问题而设计的,但能够关闭默认站点以便不会从用户无法控制的源中隐式提取任何食谱仍然很有用。
chef-infra - chef-solo 运行列表未扩展以包含与 vagrant 和 berkshelf 的依赖关系
我正在将 vagrant 与 chef-solo 和 berkshelf 一起使用。老实说,我对他们三个都是新手,所以可能在这里咬得比我能咀嚼的还多,但我正在尝试制作一个非常简单的食谱,它安装了一个 postgres 数据库。
首先遇到的错误是:“ Chef::Exceptions::Exec: package[postgresql-client] (postgresql::client line 36) had an error: Chef::Exceptions::Exec: apt-get -q -y install postgresql-client=9.1+129 returned 100, expected 0
”
这是cookbooks/transportapi/recipes/default.rb的内容
我试图指定对“数据库”和“postgresql”的依赖。我还有一个 metadata.rb 文件(两者都需要?)
这些都是 berkshelf 从 opscode repos 获取的食谱。我的 Berksfile 看起来像这样:
这是我尝试“vagrant up”时的完整输出
也许“apt”没有正确包含。我想知道厨师运行列表是否应该显示扩展以包含依赖项。它只是说“运行列表扩展为 [transportapi]”,这是我在 vagrant 文件中添加的唯一配方。