name: sync-tailscale description: Sync Tailscale IP addresses from API to inventory.yaml
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
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
0
GitHub Forks
0
Created
Jan 2026
Last Updated
4 months ago
tools
tools system admin
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!