34 lines
923 B
Puppet
34 lines
923 B
Puppet
class sshd::autossh($host,
|
|
$port = undef, # this should be a remote->local hash
|
|
$remote_user = undef,
|
|
) {
|
|
if $port {
|
|
$port_ensure = $port
|
|
}
|
|
else {
|
|
# random port between 10000 and 20000
|
|
$port_ensure = fqdn_rand(10000) + 10000
|
|
}
|
|
if $remote_user {
|
|
$remote_user_ensure = $remote_user
|
|
}
|
|
else {
|
|
$remote_user_ensure = "host-$fqdn"
|
|
}
|
|
file {
|
|
'/etc/init.d/autossh':
|
|
mode => '0555',
|
|
source => 'puppet:///modules/sshd/autossh.init.d';
|
|
'/etc/default/autossh':
|
|
mode => '0444',
|
|
content => "DAEMON_OPTS='-o ServerAliveInterval=15 -o ServerAliveCountMax=4 -q -N -R $port_ensure:localhost:22 $user_ensure@$host'\n";
|
|
}
|
|
service { 'autossh':
|
|
ensure => running,
|
|
enable => true,
|
|
subscribe => [
|
|
File['/etc/init.d/autossh'],
|
|
File['/etc/default/autossh']
|
|
],
|
|
}
|
|
}
|