Tor Family must be configured uniquely for the provider
Currently, the tor puppet recipe hard-codes the tor family! This is not good.
The MyFamily tor config is a list of all the other nodes in the family. Rather than use fingerprints, which would need to be gathered from each node, we can use nicknames that include a bit of randomness and are unlikely to conflict with the nicknames of other providers:
changes to services/tor.json:
"tor": {
"nickname":"= (self.name + secret(:tor_family)).sub('_','')[0..18]",
"family": "= nodes[:service => 'tor'].field('tor.nickname').join(',')"
}
this will make nickname something like "rabbitLKJYW23695JGLKJ" where rabbit is the node name. Tor nicknames must not have underscores, as i read the manual, and must be less than 19 characters.
family is set to a single string, comma separated list of node tor nicknames.
then, change site_tor puppet to use $tor['family'] value for where currently my_family is hardcoded.
(from redmine: created on 2014-02-28, closed on 2014-04-29, relates #5151 (closed))