Search

PythonReactSEOPDF
GitHub Skill

sync-tailscale

Sync Tailscale IP addresses from API to inventory.yaml

julianh2o☆ 0 Repository stars0 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

Sync Tailscale IPs

Fetch Tailscale device IPs and update inventory.yaml with tailscale_address attributes.

Task

  1. Fetch devices from Tailscale API:
curl -H "Authorization: Bearer {{ tailscale_api_key }}" \
  https://api.tailscale.com/api/v2/tailnet/-/devices | jq .
  1. Extract hostname → IPv4 mapping from the devices array

  2. Update inventory.yaml with tailscale_address attributes for matching hosts

Inventory Structure

File: inventory.yaml

Format:

groupname:
  hosts:
    hostname:
      ansible_host: 192.168.x.x
      tailscale_address: 100.x.x.x  # Add or update this
      exporter_port: 9100

Rules

  • Match on hostname (case-insensitive)
  • Use IPv4 address (not IPv6)
  • Add tailscale_address after ansible_host if missing
  • Update existing tailscale_address if IP changed
  • Preserve YAML formatting and structure
  • Report what was added/updated

API Key

The API key is stored encrypted in secrets.yml as tailscale_api_key. Decrypt with:

ansible-vault view secrets.yml | grep -A 5 tailscale_api_key

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-01-20
Index updated
2026-01-26
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!