问题标签 [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.

0 投票
1 回答
63 浏览

vagrant - Vagrant Provision AWS 问题

我正在关注Rails App Cookbook,并且在涉及配置 AWS 实例的步骤 6 中遇到问题。我收到以下错误作为输出。

如指南中所述,在观察到配置失败后,我执行vagrant up --provider=aws并收到以下错误

以下是观察到错误的依赖文件内核 gem 文件berks 文件的输出。

在检查错误和 berks 文件后,我尝试将第 11 行修改为version = "3.2.0",但这没有任何区别,因为我可以看到相同的错误

这是Vagrantfile的输出。

我进一步调查并发现Berkshelf Github页面报告了以下问题。我尝试了建议的解决方案 - 通过应用以下命令确保 Chef-DK 目录位于我的 $PATH 的前面$ PATH=$HOME/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/bin:$PATH

我在我的系统上观察到以下输出。

有人可以建议可能是什么问题吗?

0 投票
2 回答
2383 浏览

berkshelf - gem install berkshelf 失败,无法在 Centos 6 中构建 gecode 库

gem install berkshelf在 Centos 6 中失败Failed to build gecode library。它失败并显示以下输出。

0 投票
2 回答
428 浏览

git - 如何在 Windows 上以 Unix 格式下载厨师食谱?

我正在使用 Vagrant、Chef solo 和 berkshelf 在 Windows 7 上使用 VirtualBox 运行 Linux VM。

食谱是从 git 下载的,并以 windows 行结尾。其中之一是 Perl 脚本,然后将其上传到 vm 并执行。但是它失败了,因为第一行是

Linux VM 将其视为命令

如何配置需要它的任何工具(可能是 Chef?)以下载 Unix 格式的 .pl 文件?

0 投票
1 回答
952 浏览

apache - 对资源“执行 [为 apache-tomcat 绑定启用 mod_proxy]”执行操作“运行”时出错

我正在使用这个 github存储库来了解 Berkshelf 与 Amazon Opsworks 一起使用时的工作原理。我正在尝试的基本思想是,如果我在berksfile 中提到apache2 作为我的phpapp 配方的依赖项,那么它将自动管理apache2 的依赖项,而apache2本身就是phpapp 的依赖项。当我使用 AWS opsworks 尝试此操作时,我收到以下错误。

0 投票
1 回答
369 浏览

chef-infra - 刀单警告本地食谱路径

使用knife-solo 时,我收到此警告:“Local cookbook_path '/Users/username/chef-test/cookbooks' 不存在”,并且在我知道之前就删除了cookbooks 目录。删除 Berksfile,我没有警告消息。

$ 刀 -v
厨师:12.0.0
$ 宝石列表 | grep 刀
刀独奏(0.4.2)
$刀独奏初始化。
创建厨房...
在厨房创建knife.rb...
创建橱柜...
设置Berkshelf...
$ ls -al
total 32
drwxr-xr-x 13 username staff 442 12 7 19:11 。
drwxr-xr-x+ 26 用户名员工 884 12 7 19:09 ..
drwxr-xr-x 3 用户名员工 102 12 6 22:04 .chef
-rw-r--r-- 1 用户名员工 12 12 7 19:11 .gitignore
drwxr-xr-x 3 用户名员工 102 12 6 21:52 .vagrant
-rw-r--r-- 1 用户名员工 41 12 7 00:34 Berksfile
-rw-r--r-- 1 用户名员工 4818 12 6 21:52 Vagrantfile
drwxr-xr-x 3 用户名员工 102 12 7 19:11 食谱
drwxr-xr-x 3 用户名员工 102 12 6 22:04 data_bags
drwxr -xr-x 3 用户名员工 102 12 6 22:04 环境
drwxr-xr-x 4 用户名员工 136 12 7 19:09 节点
drwxr-xr-x 3 用户名员工 102 12 6 22:04 角色
drwxr-xr-x 6用户名 staff 204 12 7 01:48 site-cookbooks
$ knife solo cook webdb
在 webdb 上运行 Chef ...
检查 Chef 版本...
将 Berkshelf 食谱安装到“cookbooks”...
解决食谱依赖项...
上传厨房.. .
警告:本地 cookbook_path '/Users/username/chef-test/cookbooks' 不存在正在
生成单独的配置...正在
运行 Chef...正在
启动 Chef Client,版本 12.0.0正在
编译 Cookbooks...
融合 4 个资源
配方:apache: :default
* yum_package[httpd] action install (最新)
* service[httpd] action enable (最新)
* service[httpd] action start (up to date)
Recipe: mysql::default
* yum_package[mysql-server ] action install (最新)
* service[mysqld] action enable (最新)
* service[mysqld] action start (最新) Running handlers:
Running handlers complete
Chef 客户端完成,0/6 资源在 3.239891356 秒内更新
$ ls -al
total 32
drwxr-xr-x 12 username staff 408 12 7 19:12 。
drwxr-xr-x+ 26 用户名员工 884 12 7 19:09 ..
drwxr-xr-x 3 用户名员工 102 12 6 22:04 .chef
-rw-r--r-- 1 用户名员工 12 12 7 19:11 .gitignore
drwxr-xr-x 3 用户名员工 102 12 6 21:52 .vagrant
-rw-r--r-- 1 用户名员工 41 12 7 00:34 Berksfile
-rw-r--r-- 1 用户名员工 4818 12 6 21:52 Vagrantfile
drwxr-xr-x 3 用户名员工 102 12 6 22:04 data_bags
drwxr-xr-x 3 用户名员工 102 12 6 22:04 环境
drwxr-xr-x 4 用户名员工 136 12 7 19:09节点
drwxr-xr-x 3 用户名员工 102 12 6 22:04 角色
drwxr-xr-x 6 用户名员工 204 12 7 01:48 网站食谱
$

很高兴知道厨师需要什么样的设置来解决这个问题。

0 投票
1 回答
387 浏览

vagrant - 厨师用户食谱 - 用户未在 Vagrant 上创建

我正在同时学习 Chef 和 berkshelf.com。Berkshelf 让学习 Chef 变得更加容易,我使用 vagrant VM 来测试我的食谱。

我能够很好地配置我的 Vagrant VM,但是在配置期间没有创建用户(来自刀数据包)和 sysadmin 组。

以下是我采取的步骤:

这是json:

这是我的 default.rb 配方:

这是我的 Vagrantfile(我删除了我的私人信息并替换为 xxx):

然后运行:

我还验证了我的主厨服务器上的数据包,并将 vagrant 作为:chef_client 运行。运行成功有什么想法我可能会错过吗?

注意:我制作了 Chef用户说明书的包装说明书,以添加我自己的用户逻辑/配置。

0 投票
1 回答
263 浏览

vagrant - Chef Server:设置开发环境的策略

我开始对 Berkshelf 感到满意(顺便说一句,这是学习厨师的好方法),现在我想知道我应该如何为我想要提供本地/VM 环境的 PHP 开发人员管理/推出开发环境从厨师食谱中提供的。

我想弄清楚对于 Chef 开发人员和应用程序开发人员(在我的例子中是 PHP 开发人员)来说,理想的环境是什么。我需要为使用我的食谱的 PHP 开发人员提供可重复的本地(或 VM)环境。

我正在考虑使用 Vagrantfile,以便开发人员可以使用他或她的证书配置厨师服务器,配置它,然后开始使用环境。我不确定的是:每个开发人员是否应该在 Chef Server 中为每个应用程序列出他或她自己的 Vagrant 节点?或者有没有办法在不注册 vagrant 节点的情况下使用 Chef 客户端配置程序?

基本上,我并不真正关心本地机器上的节点,但如果开发人员可以从 Chef 服务器提供 Vagrant 以匹配其他环境,那就太棒了。

其次,我所有的 Berkshelf 生成的存储库都使用 Chef Client 进行配置。这是一种好的做法,还是我应该仅将 chef-solo 用于开发/测试食谱作为开发操作?

0 投票
4 回答
1356 浏览

ruby - 厨房/berkshelf 想要旧宝石?

我想测试对食谱的一些更改,所以我做了我以前做的事情,但结果远非正常:

这台机器正在运行 debian Jessie,自从我上次接触这本食谱以来,已经更新了很多包(我不知道其中是否有任何与 ruby​​ 相关的东西)。

如何让厨房再次工作?

0 投票
3 回答
1549 浏览

vagrant - Chefdk berkshelf 和 vagrant “在食谱路径中找到目录食谱,但它不包含食谱文件。跳过”

主要问题 为什么厨师看不到食谱路径中的食谱文件?我该如何解决?

已安装

  • rbenv
  • 厨师长
  • vagrant-berkshelf 插件

我已经做过的事情

把它放在我的 .zshrc

还安装了一个berks,它可以工作!

流浪规定(错误):

如果您想了解更多信息,请询问。

更新添加流浪文件:

添加了更新 metadata.rb

0 投票
1 回答
491 浏览

design-patterns - Chef:我应该使用环境说明书模式部署多节点应用程序吗?

遵循环境说明书模式(特别是使用app.rb 部署配方),如果我有一个由前端客户端、后端 API 和一些服务组成的应用程序(每个不同的 Visual Studio 项目和可能在不同的节点)每个组件应该是整个环境食谱中的一个食谱还是每个组件都有自己的食谱?

我认为每个组件本身就是一个不同的应用程序,因此应该有自己的环境手册。

否则,考虑到有多个节点,我无法想象环境的 app.rb 配方将如何部署应用程序。

我是否正确地考虑了这一点?其他人如何使用 Chef 实现分布式应用程序?

编辑:在考虑了几天之后,我正在退后并确定一个环境食谱模式:

思维练习——“MyApp”

“MyApp”由两个分别编译并驻留在不同节点上的软件组件组成:

  1. 网络应用
  2. REST API

当前的食谱设置:

这是合乎逻辑的还是每个软件组件都应该是它自己的食谱?

在当前系统中,发布工件看起来像(每个配方都知道如何部署其工件):

当前版本:
  • 1.0.0 - 初步开发
  • 1.0.1 - webapp 中的错误修复
  • 1.1.0 - 添加到 API 的新功能和 webapp 中的错误修复
当前环境

“我们需要将 1.1.0 中的 webapp 修复升级到 prod,但我们还没有完成对新 API 功能的测试。” -经理

问题:“MyApp”生产环境要求与位于开发和测试环境的 v1.1.0 说明书不同。

可能的解决方案
  1. 删除没有 API 功能的 1.0.2 版本,并在环境中升级它。然后将 1.1.0 推广回 dev 和 test;现在我们回到了我们开始的地方,但是错误修复是根据需要在生产中的。
  2. 重新架构说明书:使 webapp 和 API 组件成为单独的说明书。
    • 每个都有自己的版本(API 1.0.0 可以与产品中的 webapp 1.0.1 一起使用)
    • 他们像以前一样生成自己的部署工件,但工件被发布到特定于应用程序的存储库(例如 myapp-webapp)而不是“MyApp”工件存储库。
    • 新的“myapp”环境将只定义它需要的每个应用程序组件说明书的版本。
    • 结果:API v1.0.0 将与 webapp v1.0.1 一起部署在生产环境中。
    • 问题:
      • 即使这些软件是同一个逻辑分布式应用程序的一部分,它们的共享数据也没有在逻辑上组合在一起。例如:两者都可能需要在属性中定义 API 端点(default[:myapp][:api][:endpoint])。
      • 可能很难跟踪交叉兼容性。“webapp 的 1.0.1 版本是否与 API 的 v1.2.0 兼容?”

似乎有很多方法可以给这只猫剥皮,但如果你看不出来,我更喜欢选项#1。在决定答案之前,我很想获得更多反馈。这有意义吗?