Hi,I have in my infrastructure a topology where there's one master node and many slave nodes.What I want to do is to automatically detect if a node is a master or a slave. The rule is:1) If there is no master node yet, the next node will be the master2) If there is a master, the next node will be slave and its master will be the already existing master.The problem occurs when I have an empty infrastructure (zero nodes) and I try to create the first 2 nodes simultaneously.When both nodes get provisioned, both check that there is no master and both are set to be master, which is a wrong configuration.This is a very common synchronization problem, but I don't know how to deal with it in the Chef environment.Here's the recipe to configure a node:@@master = nodesearch(:node, 'role:myrole') do |n|if n['myrole']['container_type'] == "master"@@master = nnode.set['myrole']['container_type'] = "slave"endendendif @@master == nodenode.set['myrole']['container_type'] = "master"endtemplate "#{node['myrole']['install_dir']}/#{ZIP_FILE.gsub('.zip', '')}/conf/topology.xml" dosource "topology.xml.erb"owner "root"group "root"mode "0644"variables({:master => @@master})endHow can I avoid this problem?Thanks a lotDaniel Cukier
Archive powered by MHonArc 2.6.16.