## ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE. ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git ## <%= lines = [] template = 'service @@TARGET_HOST@@@@TARGET_PORT@@ { protocol = tcp port = @@LOCAL_BIND@@ type = UNLISTED bind = 127.0.0.1 socket_type = stream wait = no user = portforwarder group = portforwarder instances = 10 server = /usr/bin/ssh server_args = -o PreferredAuthentications=publickey -o EscapeChar=none -o BatchMode=yes -C @@SSH_OPTIONS@@ @@TARGET_HOST@@ forward-to @@TARGET_PORT@@ cps = 0 0 } ' config = YAML.load(File.open('/etc/puppet/modules/portforwarder/misc/config.yaml').read) if config[@fqdn] config[@fqdn].each do |service| target_port = service['target_port'] target_host = service['target_host'] local_bind = service['source_bind_port'] ssh_options = service['ssh_options'] || "" lines << "# to #{target_port.to_s}:target_host from local port #{local_bind.to_s}" if target_port.nil? or target_host.nil? or local_bind.nil? lines << "# insufficient config values" else p = template.clone p.gsub!('@@TARGET_HOST@@', target_host) p.gsub!('@@TARGET_PORT@@', target_port.to_s) p.gsub!('@@LOCAL_BIND@@', local_bind.to_s) p.gsub!('@@SSH_OPTIONS@@', ssh_options.to_s) lines << p end end end lines.join("\n") %>