We can use the same port multiple times if they are on a different hosts.
def get_mons(roles, ips):
mons = {}
+ mon_ports = {}
mon_id = 0
for idx, roles in enumerate(roles):
for role in roles:
if not role.startswith('mon.'):
continue
+ if ips[idx] not in mon_ports:
+ mon_ports[ips[idx]] = 6789
+ else:
+ mon_ports[ips[idx]] += 1
addr = '{ip}:{port}'.format(
ip=ips[idx],
- port=6789+mon_id,
+ port=mon_ports[ips[idx]],
)
mon_id += 1
mons[role] = addr