/pyinfra-tinc

Install & configure the Tinc mesh VPN with pyinfra.

Primary LanguagePythonMIT LicenseMIT

pyinfra Tinc

A pyinfra deploy that installs & configures the Tinc mesh VPN. Developed & tested with:

  • Ubuntu 18/20
  • Debian 9/10
  • CentOS 7/8

Usage

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')

install_tinc

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.

configure_tinc

This deploy generates the Tinc configuration directory and files.

sync_tinc_configurations

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.