请原谅,因为我不熟悉Chef&红宝石。这应该是一个简单的问题。跟随Jason Grimes's Tutorial。
如何删除 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}")
我可以代替替换
webservers = search(:node, "role:webserver AND chef_environment:#{node.chef_environment}")
因为IP_address是automatic attribute according to Opscode和StackOverflow question。
不幸的是,我不太明白我将如何测试这一点以确保否则我会进行测试。谢谢!
答案 0 :(得分:2)
是的,你是对的。
webservers = search(:node, "role:webserver AND chef_environment:#{node.chef_environment}")
然后webservers
将是一个节点数组,您将能够通过
webservers[index]['ipaddress']