问题标签 [test-kitchen]

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

integration-testing - 如何在厨房测试中设置收敛和验证之间的延迟?

我正在使用 Vagrant+Chef Solo 构建的系统上使用 Test Kitchen 运行 Serverspec 集成烟雾测试。当我运行厨房测试时,测试在成功收敛后立即开始,我的一些测试失败,因为系统第一次完全启动需要时间。

所以我想知道在收敛和验证之间插入延迟的好方法是什么,否则保留厨房测试的默认行为?目前我有以下想法:

  1. 编写一个 shell 脚本来做厨房收敛+检查收敛是否不成功,然后中止+睡眠 xx +厨房验证+如果成功则厨房销毁。但这不允许并行运行多个套件(我正在测试系统的多个版本)。
  2. 创建一个仅执行sleep xx的配方并将其附加到厨师运行列表的末尾。这似乎可行,但对我来说看起来有点“hacky”。

有谁知道更好的方法?

塔维

0 投票
1 回答
190 浏览

chef-infra - Kitchen Open Stack 给出“excon.error.response”

我一直在尝试将 Kitchen 与 Openstack 一起使用。我按照此链接中的描述进行操作https://github.com/test-kitchen/kitchen-openstack 当我做厨房列表时它显示 /root/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/fog-1.27.0/lib/fog/openstack/volume.rb:191: warning: duplicated key at line 196 ignored: :openstack_region Instance Driver Provisioner Last Action default-centos-7 Openstack ChefSolo <Not Created> 但是当我做厨房测试时它给出

请告诉我这是什么错误。

这是我的 .kitchen.yml 文件

0 投票
1 回答
1573 浏览

chef-infra - 在 CentOS 5.10 机器上禁用 SELinux in-session

我在更改看起来与 SELinux 相关的目录权限时遇到了一些问题。我试图弄清楚如何在厨师客户端会话的剩余部分中禁用 SELinux a) 和 b) 永久禁用。

资源:

错误:

环境:

看起来 SELinux 搞砸了。伟大的。让我们禁用 SELinux!

Chef's box 中的 stock config 设置为 permissive。

我可以将配置模板化并设置为禁用,但这只会在重新启动后应用。通常在当前会话中禁用 SELinux 是通过 CLI(sestatus、setenforce 等)完成的。我们的食谱(和官方的)依赖于这个功能。但是这里好像坏了……

那么如何在不重新启动机器或运行 Chef 两次的情况下禁用 SELinux?

0 投票
1 回答
24 浏览

test-kitchen - 将工具添加到已创建的厨师手册/盒子

我正在尝试学习厨房/厨师,我正在按照此处提供的教程进行操作

http://kitchen.ci/docs/getting-started/installing

现在我被困在问题而不是问题上。给定的教程创建了一个 git-cookbook。现在我想知道我们是在告诉厨房创建一个安装了“git”的盒子吗?

我重新做了整个教程,没有空metadata.rb而不是提供任何东西(根据教程),我把它留空并运行kitchen init --driver=kitchen-vagrant。正如预期的那样,它创建了没有安装 git 的食谱/盒子。

然后我添加了以下行metadata.rb

然后跑了kitchen converge default-ubuntu-1204。我期望它会更新我的食谱/盒子,上面安装了 git,但它没有。

我必须再做kitchen init一次吗?它不会覆盖我现有的 .kitchen.yml 文件以及我在其中所做的所有更改吗?在已经创建的说明书/盒子中安装工具的最佳方法是什么?

0 投票
3 回答
1787 浏览

vagrant - 厨房创建 new_box 命令不起作用

我正在运行命令kitchen create default-centos65,但我无法拉入盒子并进行配置。无论出于何种原因,它一直说 URL 路径是file:/Users/Guest/Git/chef/kitchen/.kitchen/kitchen-vagrant/default-centos65/learningchef/centos65. 我不确定为什么它认为应该从那里下载盒子而不是从vagrantcloud.com.

这是输出。

我的配置中还缺少其他东西吗?

这是我的.kitchen.yml文件中的内容。

0 投票
1 回答
142 浏览

amazon-ec2 - 测试厨房 (chefdk)、Vagrant 和 Amazon VPC

我正在尝试让 KitchenCI 在我的 Amazon VPC 中构建测试实例。我有这个工作,但是当 Vagrant 尝试连接到 ec2 实例时,它使用实例的外部(公共)IP 与它的内部(VPC)IP。有没有办法在 Vagrant 中改变这一点?

.kitchen.yml:

0 投票
1 回答
252 浏览

test-kitchen - 测试厨房,存储凭证

使用 Test Kitchen,在 yaml 配置中......存储适用于多个平台和多个套件的全局使用属性的最佳位置在哪里?

以我的 .kitchen.yml 为例:

我知道还有其他厨房文件,例如 ~/kitchen/config.yml 和 .kitchen.local.yml 但我一直无法找到适用于所有平台和套件的属性。将属性复制和粘贴到平台是最好的方法吗?

0 投票
2 回答
171 浏览

ubuntu - 厨房没有检测到流浪插件`kitchen-vagrant`

Ubuntu 14.10 全新安装

chef gem list表示还安装了 kitchen-vagrant:

为什么即使它被列为已安装,厨房也没有检测到流浪插件 kitchen-vagrant?

0 投票
1 回答
1346 浏览

amazon-ec2 - 如何从 Chef 中已执行的配方中动态获取 IP 地址

我是 Chef 的新手,我正在尝试使用 kitchen-ec2 测试 2 个 db 服务 + 2 个应用程序服务器的 AWS 集群配置,并面临以下问题:

我无法将ip_address_1 从 recipe#1(server1 的 recipe#1 已完成)动态传递给 recipe#2(这是 server2 的配置配方,正在执行)。听听您的建议会很有帮助。

我可以做的一件事是在 .kitchen.yml 中为我尝试配置的每个盒子显式设置 IP 地址,但我很好奇是否有任何方法可以即时完成,就像Ohai 节点 [' ipaddress']属性,但更通用,可能是集群中配置的所有服务器 IP 地址的列表。

recipe#1 -完成- server1已配置,AWS 分配了私有ipaddress1
recipe#2 -正在进行- server2配置正在应用,但它需要 ipaddress1

提前谢谢你,
德米特里

0 投票
2 回答
793 浏览

chef-infra - How to setup test preconditions before a ServerSpec test?

I am writing a simple cookbook that will be used to deploy an SSL proxy onto a server. This cookbook will ultimately be used by other cookbooks that deploy web services in order to set up an SSL proxy in front of them, but for the purpose of testing the proxy cookbook itself, there is no such service behind it. My basic testing strategy for this cookbook is as follows:

  1. Converge the box with test-kitchen
  2. Use ServerSpec (or possibly Bats) with test-kitchen to
    1. Setup test by starting a python SimpleHTTPServer on the box listing on the port that the proxy was configured to forward to, and create in index.html file for it to serve.
    2. Assert that when I hit https://localhost I get the file that SimpleHTTPServer is serving.
    3. Assert a few more things about the proxy (all of which require that there be a service behind it.)
  3. Teardown. No real need to tear anything down, just let test-kitchen destroy the box.

So my question is, what is the right way to set up these sort of test preconditions using test-kitchen and ServerSpec and/or bats?