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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
class site_shorewall::couchdb::bigcouch {
include site_shorewall::defaults
$stunnel = hiera('stunnel')
# Erlang Port Mapper Daemon (epmd) stunnel server/clients
$epmd_clients = $stunnel['epmd_clients']
$epmd_server = $stunnel['epmd_server']
$epmd_server_port = $epmd_server['accept']
$epmd_server_connect = $epmd_server['connect']
# Erlang Distributed Node Protocol (ednp) stunnel server/clients
$ednp_clients = $stunnel['ednp_clients']
$ednp_server = $stunnel['ednp_server']
$ednp_server_port = $ednp_server['accept']
$ednp_server_connect = $ednp_server['connect']
# define macro for incoming services
file { '/etc/shorewall/macro.leap_bigcouch':
content => "PARAM - - tcp ${epmd_server_port},${ednp_server_port}",
notify => Service['shorewall'],
require => Package['shorewall']
}
shorewall::rule {
'net2fw-bigcouch':
source => 'net',
destination => '$FW',
action => 'leap_bigcouch(ACCEPT)',
order => 300;
}
# setup DNAT rules for each epmd
$epmd_shorewall_dnat_defaults = {
'source' => '$FW',
'proto' => 'tcp',
'destinationport' => regsubst($epmd_server_connect, '^([0-9.]+:)([0-9]+)$', '\2')
}
create_resources(site_shorewall::couchdb::dnat, $epmd_clients, $epmd_shorewall_dnat_defaults)
# setup DNAT rules for each ednp
$ednp_shorewall_dnat_defaults = {
'source' => '$FW',
'proto' => 'tcp',
'destinationport' => regsubst($ednp_server_connect, '^([0-9.]+:)([0-9]+)$', '\2')
}
create_resources(site_shorewall::couchdb::dnat, $ednp_clients, $ednp_shorewall_dnat_defaults)
}
|