2

请原谅,因为我对 Chef 和 Ruby 都是新手。这应该是一个简单的问题。跟随Jason Grimes 的教程

如何删除localhost并在下面的代码中使用 Chef 节点的特定 IP 地址?

# Get a list of web servers
webservers = node['roles'].include?('webserver') ? [{'ipaddress' => 'localhost'}] : search(:node, "role:webserver AND chef_environment:#{node.chef_environment}")

我可以代替,因为根据 Opscode和这个StackOverflow question
webservers = search(:node, "role:webserver AND chef_environment:#{node.chef_environment}")
IP_address 是一个自动属性。

不幸的是,我不太明白我将如何测试它以确保否则我会运行测试。谢谢!

4

1 回答 1

2

是的你是对的。

webservers = search(:node, "role:webserver AND chef_environment:#{node.chef_environment}")

然后webservers将是一个节点数组,您将能够通过

webservers[index]['ipaddress']
于 2013-01-16T18:55:53.440 回答