sync-tailscale
Sync Tailscale IP addresses from API to inventory.yaml
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Sync Tailscale IPs
Fetch Tailscale device IPs and update inventory.yaml with tailscale_address attributes.
Task
- Fetch devices from Tailscale API:
curl -H "Authorization: Bearer {{ tailscale_api_key }}" \
https://api.tailscale.com/api/v2/tailnet/-/devices | jq .
-
Extract hostname → IPv4 mapping from the devices array
-
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)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!