blob: 148e5988f85be7f1b56826412de9bddd9707bed2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
$tinc_hosts = lookup("groups.tinc")
$tinc_other_hosts = $tinc_hosts.filter |$host_name| { $host_name != $facts["networking"]["fqdn"] }
$tinc_locations = Hash($tinc_hosts.map |$host_name| { [
lookup("hostvars.'$host_name'.network.tinc.location"),
{
subnet => lookup("hostvars.'$host_name'.network.self_internal_network"),
address => lookup("hostvars.'$host_name'.network.public_hostname"),
}
] })
$tinc_connect_to = $tinc_other_hosts.map |$host_name| { lookup("hostvars.'$host_name'.network.tinc.location") }
$tinc_other_networks = $tinc_other_hosts.map |$host_name| { lookup("hostvars.'$host_name'.network.self_internal_network") }
if 'tinc' in lookup("group_names") {
class {'tinc':
tinc_name => lookup("tinc_global.name"),
tinc_location => lookup("network.tinc.location"),
tinc_connect_to => $tinc_connect_to,
tinc_locations => $tinc_locations,
tinc_ip => lookup("network.self_internal_ip"),
tinc_netmask => lookup("network.self_internal_netmask"),
tinc_other_networks => $tinc_other_networks,
}
}
|