- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下节点定义:
{
"prestashop_sites" : {
"site1": { "username": "dave", "password" :"password123", "URL":"www.madeup.com" },
"site2": { "username": "dave2", "password" :"password12", "URL":"www.madeup2.com" }
},
"run_list": [
"recipe[prestashop]"
]
}
还有 Recipe :
node["prestashop_sites"].each do |site|
username site['username']
Chef::Log.debug("Found a server: #{site['username']}")
end
remote_file "/tmp/prestashop152.zip" do
source "http://www.prestashop.com/download/old/prestashop_1.5.2.0.zip"
mode "0644"
checksum "37aee9ef5388376e4377aeb240ab027e"
backup false
not_if "test -f /tmp/prestashop152.zip"
end
execute "unzip -o /tmp/prestashop152.zip -d #{node[:prestashop][:location]}" do
not_if "test -f /var/www/#{node[:prestashop][:user]}/prestashop/index.php"
end
所以我的目标是安装几个 prestashop 实例(在我完成脚本之后)。
但我卡住了:
10: node["prestashop_sites"].each do |site|
11>> Chef::Log.debug("Found a server: #{site['username']}")
12: end
Mon, 12 Nov 2012 21:26:14 +0100] DEBUG: Re-raising exception:
TypeError - can't convert String into Integer
知道为什么吗?!
最佳答案
您有一个散列作为 *node["prestashop_sites"]* 的子元素,而不是数组。所以你必须为 each 方法提供 2 个变量。 1 是键,另一个是值:
10>>! node["prestashop_sites"].each do |key, site|
11: Chef::Log.debug("Found a server: name: #{key}, #{site['username']}")
12: end
将为第一个站点打印“找到服务器:名称:site1,dave”。
您遇到的“奇怪”错误:TypeError - 无法将 String 转换为 Integer,是因为当您仅向 each 方法提供 1 个变量时,ruby 会尝试将键和值都放入那个变量。这结束了分配的 [key, value] 的值,在您的情况下意味着
网站 == ["site", { "username": "dave", "password":"password123", "URL":"www.madeup.com"}]
实际上是一个数组,并且您尝试访问具有字符串索引而非整数的数组元素。
关于chef-infra - Chef Recipe 输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13351036/
我正在使用来自 chef 的软件包开发自定义 Recipe 。 我在 recipes 文件夹下创建了一个名为 apache.rb 的文件。 然后我通过 berks 上传了菜谱,并在一个节点上用 rec
I like to create a single Openrewrite migration jar that includes custom recipes and rewrite.yml
我正在尝试对一个模型进行 k 折交叉验证,该模型根据卫星图像预测树种断面积比例的联合分布。这需要使用 DiricihletReg::DirichReg() 函数,这反过来又需要使用 Dirichlet
在一本 Recipe 中,我有一个图书馆( client_helper.rb )。在其中定义了一个模块。模块名称为 客户 helper .这是模块代码。 module Client_helper #
我的 nginx Recipe 中有两个 Chef Recipe 。一个名为 default.rb,另一个名为 sites.rb。当我用 运行网站 Recipe 时 RUN_LIST=recipe[n
我有 Recipe base 和 Recipe myapp base 有 2 个配方 - my_java 和 java_with_custom_stuff 在 java_with_custom_stu
所以我使用以下配方: include_recipe "build-essential" node_packages = value_for_platform( [ "debian", "ubunt
我正在尝试使用 Vagrant 创建我的第一个 Chef Recipe ,但在第一步就遇到了问题。我的 Recipe 的第一行是: include_recipe "apt" 但是当我尝试 vagran
我已经下载了 Recipe “chef-jira”,现在我正在尝试在 Ubuntu 12.04 上使用 chef-solo/vagrant 运行它。 经过大量的谷歌搜索和 stackoverflow
我们有一个测试环境,由一台服务器、一台客户端和另一台作为工作站的客户端组成。 我知道命令 # knife cookbook site install apache2 但是这个命令会产生错误,因为我什至
我使用knife solo 使用.chef/knife.rb 定义的自定义模板创建了一个新文件夹和一个带有默认食谱的食谱。我的问题是我应该使用什么命令让刀使用该模板而不是使用 cp 创建新食谱? 类似
我是 Chef 的初学者。任何人都可以告诉我是否有一种方法可以将 Cookbook 的 files/default 目录中的目录复制到其他位置。 例如我在 files/ 目录中有一个包含文件 a.tx
我有一本包含 2 个食谱的食谱。 属性/default.rb default['vpn']['crt'] = 'nocrt' 默认配方具有创建通用 crt 文件的文件资源 file 'cert' do
我的情况是我有三本 Recipe ,每本都有一个写入/etc/hosts 文件的模板资源。 与其覆盖,我想附加: 第一本 Recipe 创建/etc/hosts 文件并写入第 1、2、3 行。 第二本
从我当前正在执行的食谱中,我想访问它在我的执行机器上的“当前”位置。 我需要它来访问它的缓存目录结构。 我有一种感觉,它位于“node[]”内的某个地方,但我根本找不到有关其结构的任何文档。 有什么建
z3c.recipe.scripts 和 zc.recipe.egg 似乎都在积极开发中。 z3c.recipe.scripts 描述为: The script recipe installs egg
我对 ModelMommy 有一段时间的烦恼,但我不知道如何正确地做到这一点。 让我们假设一个简单的关系: class Organization(models.Model): label =
我将一个 zip 文件放入 Recipe 中,然后将其上传到服务器后,我发现了这个错误。有人可以建议我解决此错误的正确解决方案吗... ERROR: Failed to upload ~/chef-r
我第一次使用 Chef,试图了解 Recipe 和 Recipe 。 我在配置我目前在我的角色文件中执行的标准 php 说明书后收到错误“mysql::client”失败: run_list( "
Glpk 需要使用configure make install 命令构建。所以我使用 zc.recipe.cmmi 配方来构建 glpk 包。它在 bin 目录中生成 glpsol 命令。我需要能够在
我是一名优秀的程序员,十分优秀!