问题标签 [chefdk]

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 回答
46 浏览

chef-infra - 在 WINDOWS 中为 berk 上传启用 SSL

最近,我发现我在使用 berks 上传时遇到了问题,并在这里找到了Tensibai提供的解决方案,它是针对 *nix 系统的,我希望有一个命令可以解决使用 windows 来使用 chefdk 开发的人。具体来说,如何做到这一点:

openssl s_client -showcerts -connect :443 /dev/null|openssl x509 -outform PEM >> /opt/chefdk/embedded/ssl/certs/cacert.pem

在窗户下工作。

0 投票
0 回答
56 浏览

chef-infra - 向刀添加子命令,ChefDK 如何在食谱中使用它们?

扩展一个刀插件,因为一个特定的服务有一些预定义和优化的数据库服务器,带有一个 API 来启动它们、添加用户等,我开始想:

如果我确实向刀添加了更多子命令,例如“数据库实例创建”以创建特定预配置数据库服务器设备的实例,我如何在 ChefDK 中编写将调用这些命令的配置配方?

虽然我想知道这个问题的答案,但如果事实证明你更感兴趣警告我如果我这样做会损害食谱/食谱的可移植性,也请告诉我另一种利用预建的方法,由您认可的提供商提供的经过优化的专用设备。(“你做错了”是一个无用的答案,除非它包含对如何正确操作的解释/指针。)

(目前尝试使用“厨师供应”完全在 ChefDK 内部工作;想要在我开始扩展之前解决简单的问题。)

扩张:

显然我没有很好地表达这个问题,可能表明我自己对这个话题一无所知。所以让我稍微扩展一下,看看是否有帮助。

在 ChefDK 中工作,期望使用“chef provision”(传递给 chef-provisioning,是的)来创建一个 Web 应用程序,其中至少包含一个 Web 服务器实例、数据库服务器实例(特定应用程序所需的其他点点滴滴,但它们)都至少使用这些组件)。

我修改了一个刀插件,使其能够创建云服务供应商提供的数据库服务器的实例,而不是自己用这个脚本创建和优化一个。这样做之后,我突然想到,我没有从我为应用程序设置的 chefDK 供应食谱中看到我将如何使用它。

感谢@tensibai 要求提供配方伪代码,因为当我坐下来在这里添加它时,我意识到我什至不知道创建实例的伪代码是什么样的。我修改的刀插件也可以在服务器上创建数据库和用户,并且伪代码很清楚,但实例化服务器本身不是,所以我显然比我最初想象的更完全无知(总是两者有用和谦卑地意识到你知道的甚至比你认为自己知道的少)。

虽然实例化后的伪代码很清楚,但机制却不是,因为我的 chefdk 系统无法直接看到数据库服务器,因此可以从中创建数据库、用户等的唯一方法是通过供应商的 API,刀插件知道如何使用。(是的,另一种方法是让同一云中的厨师服务器为此直接操作数据库,但目前该服务器不存在。)它将遵循以下原则:

using a given set of attributes: create the named database assign the users listed for that database set the schema for the db load any required initialization data repeat if necessary -- if, for example, the particular app the attributes described accesses more than one db

这有帮助吗?还是我设置的约束使它变得不可能?

0 投票
1 回答
483 浏览

ruby - Knife 命令适用于一个特定目录,但不适用于其他目录。为什么?

我在 Chef 服务器上创建了一个名为“kaushikinc”的组织,并具有一个目录结构“C:/x/y/z/kaushikinc”。

当我从 kaushikinc 文件夹执行命令时,它们工作正常,但是当我从父文件夹或子文件夹执行时,它们不起作用。我究竟做错了什么?

例如:来自子文件夹:没有成功或错误消息: 在此处输入图像描述

但是当我从 kaushikinc 文件夹尝试时成功了在此处输入图像描述

编辑:添加新图像以显示即使我传递了knife.rb 配置文件的位置也存在问题

在此处输入图像描述

Edit2:只有在“文件中的刀具数据包”命令上使用“--all”选项时,我才会遇到这个问题。我可以从启用 -c 的任何目录执行任何其他命令。

0 投票
1 回答
9468 浏览

chef-infra - 由于缺少节点名称,厨师提供命令失败

我正在尝试使用“厨师供应”,这是 ChefDK 的一部分。我一直在尝试关注这篇文章,但在运行“厨师供应”命令时遇到错误。

http://jtimberman.housepub.org/blog/2015/05/15/quick-tip-chefdk-provision/

我错过了什么?任何指针都非常感谢!

0 投票
1 回答
563 浏览

chef-infra - Berkshelf 在将食谱上传到 Chef-Server 时遇到问题

我正在尝试使用Berkshelf将具有一些依赖项的食谱上传到我的 Chef-Server。当我使用chef exec berks upload时,我会遇到一堆不同的错误。我当前的设置使用具有以下文件结构的 chef_repo 使用最新或接近的 ChefDK 版本。我为不同的 Chef-Servers 挂钩的多个不同的组织有多个存储库。我没有任何东西$HOME/.chef/,或者在 Windows 上,C:\chef\甚至不存在。我在我的 Windows、CentOS 7 VM 和我的 Docker 容器之间共享同一个 chef_repo,所以这没有改变。chef_repo 是使用chef generate repo命令生成的。

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_repo_setup

我的knife.rb的内容如下

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-00-knife-rb

当我尝试使用Berkshelf.

CMD,使用Cmder

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_cmder_berks-rb

正如你在这个 Gist 中看到的,我能够做 achef exec knife ssl check并且它成功了。

Cygwin

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_cygwin_berks-rb

在 CentOS 7 上,

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_centos7_berks-rb

在使用 Docker 的 CentOS 7 映像的 CentOS 7 上,

https://gist.github.com/predatorian3/24ba83bd7e98ac7300bf#file-chefdk_docker_centos7_berks-rb

使用纯 Ruby 安装,并安装 Chef RubyGem 和 Berkshelf gem,产生了相同的错误,除了一些 webagent cookie 的部分,我认为这很好。

--编辑2016-02-27--

作为临时工作,我必须使用--no-ssl-verify才能让 berks 上传食谱。但是,这似乎是一个错误ridley-4.3.2。然后berks 也没有“尊重”我的knife.rb 中的ENV[SSL_CERTS_DIR]or语句。已经为它提交了一个错误。我想这个错误是一个突出的错误。ENV[SSL_CERTS_FILE]

0 投票
0 回答
178 浏览

chef-infra - Chefdk 0.10.0 引导时未通过 ssh-key

我使用 chefkdk 0.10.0 并尝试使用我的 ssh-key 引导一些 rhel 节点..我将其复制到所有服务器并验证我可以 ssh 而无需它要求输入密码。但是,当我使用 chefdk 引导节点时,它仍然要求我输入密码。我还尝试使用 -i 标志来指定我的身份文件,但仍然没有运气。这可能是厨师的错误吗?

0 投票
1 回答
149 浏览

chef-infra - 自动安装丢失的食谱?

当我将一些食谱上传到我的厨师服务器时,它说我缺少食谱。它允许我将食谱上传到服务器并没有在我假设的服务器中显示它,因为它缺少一些它所依赖的食谱。当我选择要上传的食谱时,有没有办法自动安装它所依赖的食谱?因此,如果我将 MongoDB 上传到我的主厨服务器,它会自动将其所有依赖项带入其中,因此我不必手动上传每个依赖项。

0 投票
1 回答
762 浏览

chef-infra - 将 berkshelf 与 ChefDK 和 Chef Supermarket 一起使用

我是 Chef 和 linux 的新手,所以如果这个问题很明显或者我做错了,请原谅我。到目前为止,我已经设法在我的网络中运行的 Ubuntu 14.04 实例上设置了一个基本的独立 Chef 服务器。我在我的计算机上运行的 VM 上设置了一个 Ubuntu 桌面。我一直在学习教程,到目前为止,我用来从 Chef 超市获取食谱到我的 Chef 服务器的过程是将它们下载到我在 ubuntu 桌面上的厨师工作站,然后上传相应的需求。但是,我有一个问题是,对于一些更强大的食谱,例如 Node.js 或 MongoDB,当我将它们下载到我的工作站然后尝试将它们上传到我的厨师服务器时,它会失败。它说它无法正确上传,因为它缺少某些依赖项。我知道这是 berkshelf 的确切用例。但是,我不知道如何将它与我从超市买的食谱联系起来。我试图 cd 到我下载的食谱所在的目录并运行 berks install 但它给了我错误。我做错了还是我应该研究其他整个过程?抱歉,可能语法不好,如果这个问题非常简单。

0 投票
1 回答
258 浏览

chef-infra - 我应该在服务器或 chefdk 上安装来自厨师超市的食谱的食谱吗?

我应该将 Chef Supermarket 的食谱安装到我的 ChefDK 工作站,然后将它们上传到我的 Chef 服务器,还是应该将超市食谱安装到我的 Chef 服务器?全新的厨师只是在我的环境中玩弄它。

0 投票
0 回答
474 浏览

chef-infra - Berks 安装后 Berkshelf 无法正常工作

我在我的食谱中运行 Berks Install。因此,例如,假设我将 Jenkins 克隆到我的计算机并导航到我的 chef-repo 中的那本食谱,我得到了一个错误。所以在我运行它之后,我看到所有的依赖项都被下载了,但是当我把它上传到我的厨师服务器时,它说我缺少依赖项。奇怪的是,它缺少的所有依赖项都是 0.0.0 版说明书。

然后我运行厨师上传,我得到了这个

Berks 文件内容