Skip to content

kazauwa/ansible-role-headscale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

30b8fca · Feb 25, 2025

History

48 Commits
Mar 18, 2024
Feb 25, 2025
Mar 18, 2024
Mar 18, 2024
Feb 25, 2025
Dec 6, 2022
May 2, 2022
Feb 25, 2025
May 2, 2022
Feb 25, 2025

Repository files navigation

Ansible Role for Headscale

A role that installs and manages Headscale on Linux.

Requirements

  • Ansible >= 7

Installation

ansible-galaxy install kazauwa.headscale

Role Variables

  • headscale_version
    • Default: 0.23.0
    • Description: version of Headscale to install. List of avaliable versions can be found on official releases page. Defaults to the latest avaliable.
  • headscale_arch
    • Default: amd64
    • Description: headscale binary target architecture.
  • headscale_os
    • Default: linux
    • Description: headscale binary target OS.
  • headscale_user_name
    • Default: headscale
    • Description: name for service user for running Headscale binary.
  • headscale_user_group
    • Default: headscale
    • Description: group for service user for running Headscale binary.
  • headscale_user_uid
    • Default: 800
    • Description: uid for service user for running Headscale binary.
  • headscale_user_gid
    • Default: 800
    • Description: gid for service user for running Headscale binary.
  • headscale_binary_path
    • Default: /usr/local/bin/headscale
    • Description: path for installing headscale binary.
  • headscale_config_dir
    • Default: /etc/headscale
    • Description: path to headscale configs.
  • headscale_var_data_dir
    • Default: /var/lib/headscale
    • Description: path to headscale data.
  • headscale_pid_dir
    • Default: /var/run/headscale
    • Description: path to headscale socket.
  • headscale_config
    • Default: {}
    • Description: yaml formatted headscale config, consider using default config as a starting point.
  • headscale_config_template
    • Default: ""
    • Description: path to Jinja2 formatted headscale config template. If present, will override headscale_config.
  • headscale_acl_file
    • Default: ""
    • Description: path to HuJSON formatted headscale acl file. Make sure that you've read the docs on how to use this feature and the HuJSON syntax acl-syntax.
  • headscale_users
    • Default: []
    • Description: list of users to create, e.g. to use with tagOwners.
  • headscale_enable_routes
    • Default: []
    • Description: list of nodes with advertised routes to enable. Accepts an integer id of headscale node, list of comma-separated routes and an optional comment to output during execution. Used when autoApprovers are not set.
    • Example: {'id': 14, 'routes': '10.0.0.0/24,10.2.3.4/32', 'comment': 'Gateway to prod'}
  • headscale_exit_nodes
    • Default: []
    • Description: list of nodes acting as an exit node. Accepts an integer id of headscale node and an optional comment to output during execution. Used when autoApprovers are not set.
    • Example: {'id': 14, 'comment': 'eu-fra-01'}

Dependencies

None.

Example Playbook

- hosts: all
  roles:
    - kazauwa.headscale
  vars:
    headscale_version: '0.22.3'

License

MIT