Puppet recipe for setting up autossh via systemd
Posted by Admin • Thursday, November 19. 2020 • Category: DevOps, LinuxI've always set up autossh in /etc/rc.local, but with CentOS 8 that doesn't work well (things start too early, etc). Luckily, there is a nicer way using systemd templates. Essentially, all you have to do is create one symlink and one config file per instance of autossh.
Example:
Make a config file
/etc/autossh/mything.conf:
OPTIONS=-N -M 20000 -R8888:1.2.3.4:8888 5.6.7.8
Make a symlink
ln -s /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
Test
systemctl start [email protected] journalctl -xe
But it's better to automate:
Puppet Recipe
define autossh(
$service=$name,
$args,
) {
file {"/etc/systemd/system/autossh@${service}.service":
ensure => link,
target => '/usr/lib/systemd/system/[email protected]'
} ->
file {"/etc/autossh/${service}.conf":
content => "OPTIONS=${args}"
} ->
service {"autossh@${service}":
ensure => running,
enable => true,
}
}
# and example usage - random port forwarding
autossh{'mything': args => '-N -M 20000 -R8888:1.2.3.4:8888 host1'}
autossh{'mything2': args => '-N -M 20000 -R8888:1.2.3.4:8888 host2'}
0 Comments
Add Comment