summaryrefslogtreecommitdiff
path: root/puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2013-07-09 16:43:39 +0100
committerMicah Anderson <micah@riseup.net>2013-07-09 16:43:39 +0100
commitb4077083b971377636754b2988668a6ddd384da5 (patch)
treeb8e358b5f0f6dfa882d31d7446266111bc0d201b /puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp
parent625aaa11138bba365958391664299692402f8da4 (diff)
parent672154a8322901b86c9882854234eae53221a38e (diff)
Merge remote-tracking branch 'origin/develop'0.2.2
Conflicts: provider_base/services/webapp.json
Diffstat (limited to 'puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp')
-rw-r--r--puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp51
1 files changed, 51 insertions, 0 deletions
diff --git a/puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp b/puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp
new file mode 100644
index 00000000..20740650
--- /dev/null
+++ b/puppet/modules/site_shorewall/manifests/couchdb/bigcouch.pp
@@ -0,0 +1,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)
+
+}
+