A pyinfra
deploy that installs & configures the Tinc mesh VPN. Developed & tested with:
- Ubuntu 18/20
- Debian 9/10
- CentOS 7/8
A default install and configure of a Tinc network is shown below. Each of the three deploy functions is detailed below.
from pyinfra_tinc import configure_tinc, install_tinc, sync_tinc_configurations
SUDO = True
install_tinc(netname='vpn0')
configure_tinc(netname='vpn0')
sync_tinc_configurations(netname='vpn0')
This deploy downloads, compiles & installs the tincd
binary, along with any required deb
/rpm
packages required to do so. This uses the host.data.tinc_version
variable.
This deploy generates the Tinc configuration directory and files.
This deploy syncs the host configuration files to all other hosts, which actually enables the tincd
daemons to connect to each other and form the mesh network.