在Chef cookbook中使用搜索

时间:2017-06-01 04:29:46

标签: chef

我正在尝试使用Chef cookbook中的搜索方法从远程节点检索IP地址属性,然后IP地址将用于配置本地节点上的DNS服务器设置。

在我的测试中,我有一个域控制器“DC1”,我想从头开始启动另一台服务器。在新服务器加入我的测试域之前,它需要具有正确的DNS条目。

作为实验室环境,我正在创建的是在AWS中旋转并拆除DNS服务器的IP地址并不总是相同。

我希望能够获取IP地址并将其存储在变量中,以便在食谱中使用。

我正在尝试使用的代码片段是

search(:node, 'name:dc1',
  :filter_result => { 'ip' => [ 'ipaddress' ] }
      ).each do |result|
        ipaddr = result['ip']
end

我尝试过使用attributes / default.rb中的代码,但是我收到的错误是搜索不是有效的方法。另外,我尝试了my_var = search ....但是这也没有用。

1 个答案:

答案 0 :(得分:1)

将变量置于前面并删除过滤器后的所有内容后,我停止收到错误“unidentified method'search'”。

似乎正在运作的代码是

ipaddr = search(:node, 'name:dc1')

dnsserver = ipaddr[0]['ipaddress']

我现在应该可以在配方中使用dnsserver来设置dns服务器。