我正在尝试使用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 ....但是这也没有用。
答案 0 :(得分:1)
将变量置于前面并删除过滤器后的所有内容后,我停止收到错误“unidentified method'search'”。
似乎正在运作的代码是
ipaddr = search(:node, 'name:dc1')
dnsserver = ipaddr[0]['ipaddress']
我现在应该可以在配方中使用dnsserver来设置dns服务器。