Chef:尝试添加时“节点”上未定义节点属性或方法“<<”

2023-12-06

在我的 postgresql 配方的属性文件中,我有:

default['postgresql']['pg_hba'] = {
    :comment => '# IPv4 local connections',
    :type => 'host',
    :db => 'all',
    :user => 'all',
    :addr => '127.0.0.1/32',
    :method => 'md5'
}

我希望我的食谱自动将我的服务器添加到 pg_hga 配置文件中,如下所示:

lambda {
  if Chef::Config[:solo]
    return (Array.new.push node)
  end
  search(:node, "recipes:my_server AND chef_environment:#{node.chef_environment} ")
}.call.each do |server_node|
  node['postgresql']['pg_hba'] << {
      :comment => "# Enabling for #{server_node['ipaddress']}",
      :type => 'host',
      :db => 'all',
      :user => 'all',
      :addr => "#{server_node['ipaddress']}/32",
      :method => 'trust'
  }
end

include_recipe 'postgresql'

但我收到一个错误:

NoMethodError
-------------
Undefined node attribute or method `<<' on `node'

35:    node['postgresql']['pg_hba'] << {
36:        :comment => "# Enabling for #{server_node['ipaddress']}",
37:        :type => 'host',
38:        :db => 'all',
39:        :user => 'all',
40:        :addr => "#{server_node['ipaddress']}/32",
41:        :method => 'trust'
42>>   }
43:  end
44:  
45:  include_recipe 'postgresql'

你的问题在这里:

node['postgresql']['pg_hba'] << {

这样您就可以访问该属性以进行读取。

假设您想保持默认级别,您必须使用如下默认方法:

node.default['postgresql']['pg_hba'] << { ... }

这将调用默认方法(如属性文件中)来添加条目。

为此,第一个属性声明应该是一个数组(或散列的散列),如下所示:

default['postgresql']['pg_hba'] = [{ # notice the [ opening an array
    :comment => '# IPv4 local connections',
    :type => 'host',
    :db => 'all',
    :user => 'all',
    :addr => '127.0.0.1/32',
    :method => 'md5'
}] # Same here to close the array
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chef:尝试添加时“节点”上未定义节点属性或方法“<<” 的相关文章

  • ruby 的 String .hash 方法如何工作?

    我只是红宝石的新手 我见过一个字符串方法 String hash 例如 在irb 我试过了 gt gt mgpyone hash returns gt 144611910 这个方法是如何工作的 The hash方法是为所有对象定义的 看文档
  • Ruby 可选参数和多个参数

    我试图将方法的第一个参数设置为可选 后跟任意数量的参数 例如 def dothis value 0 args 我遇到的问题是 这似乎实际上不可能 当我打电话时dothis hey how are you good 我希望它将值设置为默认值
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不
  • ruby 2.0.0p247 的分段错误导致 Rails 服务器崩溃

    在 OS X Mavericks 1 9 上运行 Rails 4 0 Ruby 2 0 0p247 我今天遇到了一个我从未遇到过的错误 我不明白 当尝试在我的项目中启动 Rails 服务器时 服务器崩溃了 我确实尝试重新安装并重新编译一次
  • 随机采样数组的唯一子集

    如果我有一个数组 a 1 2 3 如何随机选择数组的子集 以使每个子集的元素都是唯一的 也就是说 对于a可能的子集是 1 2 3 1 2 2 3 1 2 3 我无法生成所有可能的子集 因为 a 的实际大小非常大 因此有很多很多子集 目前 我
  • 将“Authorization Bearer”哈希添加到 Net::HTTP post 请求 (Ruby)

    我怎样才能添加Authorization Bearer到 POST 请求Net HTTP 我只能在文档中找到 基本身份验证 的帮助 req basic auth user pass Source https docs ruby lang o
  • 从 Jekyll 插件向页面添加属性

    假设我想要一个包含如下内容的页面 h1 page comment count Comment s h1 for c in page comment list div strong c title strong br c content di
  • 如何加载 UrlHelper 和 Rails 中的路线?

    我想包括路线和link toPORO 中的方法 在控制台中测试这个时 我遇到了这个 如果我在没有路由助手的情况下包含 UrlHelper 一切似乎都工作正常 ruby 1 9 3 rc1 001 gt Rails version gt 3
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • 使用 Mechanize (Ruby) 进行基本身份验证和表单身份验证

    我正在尝试登录公司内部网上的一个站点 该站点具有基本身份验证弹出对话框和基于表单的身份验证 这是我正在使用的代码 导致 401 gt Net HTTPUnauthorized 错误 require rubygems require mech
  • Ruby 在 Windows 上找不到 sqlite3 驱动程序

    我正在尝试在 Windows 上设置 Ruby on Rails 我正在使用看起来不错的 Flash Rails 发行版 但是 sqlite3 有一个问题 我发现线程告诉我安装版本 1 2 3 安装得很好 我使用的是 ruby 1 9 0
  • 如何在 Ruby 中动态调用访问器方法[重复]

    这个问题在这里已经有答案了 不管这是否是好的做法 我如何在 Ruby 中动态调用访问器方法 这是一个示例类 class Test Class attr accessor a b end 我可以使用 Object send 方法来读取变量 i
  • 为什么包含此模块不会覆盖动态生成的方法?

    我试图通过包含一个模块来覆盖动态生成的方法 在下面的示例中 Ripple 关联添加了rows 方法表 我想调用该方法 但之后还要做一些额外的事情 我创建了一个模块来重写该方法 认为该模块的row 可以打电话super使用现有的方法 clas
  • 通过 SO_RCVTIMEO 套接字选项在 Ruby 中设置套接字超时

    我试图通过 SO RCVTIMEO 套接字选项在 Ruby 中设置套接字超时 但它似乎对任何最近的 nix 操作系统都没有影响 使用 Ruby 的 Timeout 模块不是一个选择 因为它需要为每个超时生成和连接线程 这可能会变得昂贵 在需
  • 对范围值进行排序

    我想对表示数值范围的字符串数组进行排序 如下所示 b 0 5 100 250 5 25 50 100 250 500 25 50 使用sort我得到的方法 b sort gt 0 5 100 250 25 50 250 500 5 25 5
  • 自动加载常量时检测到循环依赖

    我将 Rails 从版本 3 1 2 运行良好 升级到 4 0 并遇到以下错误 circular dependency detected while autoloading constant Foo 我创建了一个类ProductFactor
  • Rails 4 可安装引擎,找不到文件“jquery”

    我正在创建一个 Rails 可安装引擎插件 它使用 gem jquery rails 我在 gemspec 文件中添加了这段代码 s add dependency jquery rails gt 3 0 1 and run bundle i

随机推荐

  • 更改无 DSN Access 前端的 SQL 连接信息

    我使用 Microsoft SQL Server 数据库迁移助手 SSMA 软件将任务关键型 Access 2003 数据库从本地 MDB 更改为 MDB 前端 后端位于 MS SQL Server 2005 上 现在 我需要永久更改表链接
  • 如何传递具有多个可能参数列表的回调函数

    下面是两个回调函数 function callback a alert a function callback b p alert b says p 如果我想使用callback a function test callback if co
  • Android 中音频和视频文件的压缩(减小大小)

    我需要减小 Android 应用程序中音频和视频文件的大小 我可以为此使用 FFMPEG 库吗 如果是 请帮助提供代码或一些教程链接 或者如果有其他方法可以实现这一点 请提出建议 是的 您可以使用 FFMPEG 来做到这一点 快速谷歌搜索
  • 异步函数返回未定义而不是数据

    我正在向 API 服务器发出请求来验证用户身份 这不是问题 问题是我不知道为什么我的异步函数不返回任何内容 并且我收到错误 因为我想要从此函数获得的数据未定义 如果错误管理很丑陋 请不要担心 一般来说我可以做得更好 解决这个问题后我会这样做
  • AutoCompleteTextView 中的自定义过滤不起作用

    我正在扩展阵列适配器 如下所示 但我仍然得到旧结果 您能告诉我问题是什么吗 public class Adaptor extends ArrayAdapter
  • HTML 列表样式类型破折号

    有没有办法在 HTML 中使用破折号创建列表样式 即 或 ndash or mdash i e ul li abc li ul 输出 abc 我想到用类似的东西来做这件事li before content 尽管我不知道该选项的缺点 并且非常
  • 无法在 Android 地图上添加标记

    我在启动 mapActivity 时遇到此异常 GooglePlayServicesUtil Google Play 服务已过时 需要 8298000 但找到 6599036 和应用程序在以下行崩溃 final Marker marker
  • ltrim 仅修剪数字而不修剪字符串中的字母

    我正在尝试编写一个函数 该函数将修剪从字符串开头到它命中的字母的所有数字 不确定我是否应该使用正则表达式或 is numeric 或其他什么 string ltrim string 0 9 http php net ltrim
  • #pragma omp parallel 和 #pragma omp parallel for 之间的区别

    我是新来的OpenMP我一直在尝试运行一个使用 OpenMP 添加两个数组的程序 在 OpenMP 教程中 我了解到我们需要使用 pragma omp 并行 for在使用 OpenMP 时for环形 但我也尝试过同样的事情 pragma o
  • Java:如何从本机安装程序创建工作 .exe?

    我有一个程序 希望任何用户都能轻松安装 我认为创建本机安装程序是正确的方法 我使用了 Netbeans 8 0 的功能 项目属性 gt 启用本机打包和打包为 我能够创建一个可用的本机安装程序 安装后 我有以下文件树 Project app
  • 如果知道变量地址,如何在 C++ 中检索变量值

    问候 我最近开始编码C 并且遇到了一个我无法找到答案的问题 所以我想也许其他人可能知道答案 如果您知道变量地址 是否可以从另一个程序检索变量值 想象一下 我在程序中显示了一个内存地址 如下所示 0x7fff5fbff758我想 在我自己的程
  • 将 .NET 对象从 VB6 传递到 .NET 时出现问题

    我们有一个由第三方创建的 NET dll A 它通过 tlb 向我们的 VB6 exe 应用程序公开类 我们还有自己的 NET dll B 它引用 NET dll A B 还通过 tlb 向我们的 VB6 exe 应用程序公开类 现在 VB
  • Jquery 文件验证

    HTML 形式
  • 将数据从 WPF 窗口发送到 C# 类文件

    我正在尝试为我编写的用于将图像导入数据库的控制台应用程序制作一个简单的 GUI 我有一个 xml 文件 其中包含图像所属的不同研究 我正在用这些研究的名称填充列表框 我有一个名为 DirectoryNavigator cs 的类文件 根据从
  • 如何删除带有约束的列?

    如何删除 SQL Server 2008 中具有默认约束的列 我的查询是 alter table tbloffers drop column checkin 我遇到以下错误 ALTER TABLE DROP COLUMN 签入失败 因为一个
  • Minicom 黑色背景颜色不受尊重 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果我在终端中使用颜色和选项 c on 启动 minicom 黑色背景实际上是灰色的 minicom c on 如果我在设置中设置任何颜色 例如红色 则会尊重背景颜色 minicom
  • 如何使用 php/ajax 自动更新内容而不重新加载网页?

    我正在尝试使用 PHP 创建一个拍卖工具 我遇到的问题 我很欣赏这是一个基本问题 但我需要澄清 是我不明白如何在每个用户屏幕上自动更新 拍卖价格 而无需他们采取任何操作或不会导致页面完全重新加载 到目前为止 我知道 Ajax 是用来执行此操
  • Mac、Linux 和 PC (Redux) 上的 Mono 的 Winforms

    我问了这个问题用另一种方式 并得到了一些有趣的回应 但我不太相信 Mono 的 GtkSharp 真的是跨平台的吗 它似乎是基于 Gnome 的 它如何在 PC 和 Mac 上运行 有人可以给我一个使用 Microsoft Net 中的单个
  • 如何将特征 FFT 与 MatrixXf 结合使用?

    我是 Eigen 图书馆的新手 我想计算特征矩阵的 FFT 然而 我的尝试表明 不受支持的 Eigen FFT 模块不能与 MatrixXf 一起使用 我想要完成类似的事情 include
  • Chef:尝试添加时“节点”上未定义节点属性或方法“<<”

    在我的 postgresql 配方的属性文件中 我有 default postgresql pg hba comment gt IPv4 local connections type gt host db gt all user gt al