我是一名厨师新手,正在研究一个新的网络节点"从头开始创建服务器的配方,并在达到所需状态之前对其执行许多操作。我得到了这个部分,到目前为止一切都很好,但我还需要做另一项任务,而且我在使用厨师时感到很困惑。 每当我创建新的Web节点时,我还需要在另一台服务器上编辑php .conf文件,方法是将新的web节点的ip地址添加到该php conf文件的变量字符串中。
这就是我目前的做法:
# knife rackspace server create --server-name chef-node1 --node-name chef-node1 --flavor performance1-2 --image 042395fc-728c-4763-86f9-9b0cacb00701
创建服务器后,我将配方添加到它并在新节点上运行chef客户端
# knife node run_list add chef-node1 recipe[new-web-node::default]
# knife ssh -a ipaddress 'name:chef-node1' 'chef-client'
我的问题是我如何在其他服务器上编辑php .conf文件,而不创建我必须在其他服务器上手动运行的新配方? 如何一次完成?
答案 0 :(得分:1)
使用search搜索"其他"基于某个角色,配方或属性的节点。然后将该其他节点的IP地址放在模板中,创建您的php配置文件。
想象一下,您的网络节点具有web
角色,然后此代码在您的"其他" node会为您提供第一个Web节点的IP地址:
web = search(:node, "role:web")
ip = web.first[:ipaddress]
然后可以将其解析为模板。