如果我有两台相同的服务器,服务器A和服务器B,都是测试环境。我如何使用相同的Chef配方,但在每台服务器上使用不同的用户详细信息?
例如:
Server A
Recipe WebSite to setup IIS, but uses:
UsernameA
PasswordA ... for the application pool
和
Server B
Recipe WebSite to setup IIS, but uses:
UsernameA
PasswordB ... for the application pool
在我的环境中,我实际上有10个测试环境,我需要使用相同的配方来配置所有使用唯一用户名和密码的测试环境。
答案 0 :(得分:2)
将数据输入Chef运行的两种主要方法是节点属性和数据包项。在这种情况下,您可能需要后者,因为您要进行完整的雪花设置(即每个服务器都是唯一的)。我可能会使用节点的FQDN或可能的节点名称为每个服务器创建一个数据包项。然后,您可以从食谱代码中访问它,如下所示:
item = data_bag_item('passwords', node['fqdn'])
template '/my/iis.config' do
# Other stuff here ...
variables username: item['username'], password: item['password']
end
您可以在任何Chef教程中找到有关数据包和template
资源的更多信息。