I'm going to see if the community module works at this point. Fuck it.

This commit is contained in:
2025-08-07 14:37:40 -05:00
parent d56b0ec0da
commit c2d3131d5c
3 changed files with 54 additions and 13 deletions

View File

@@ -1,14 +1,52 @@
plugin: linode.cloud.linode ---
token: "{{ lookup('env', 'LINODE_TOKEN') }}" plugin: community.general.linode
keyed_groups:
- prefix: tag
key: tags
- prefix: region
key: region
- prefix: type
key: type
hostnames:
- label
compose:
ansible_host: ipv4
# Your Linode API token (will be injected by AWX credential)
api_token: "{{ linode_api_token | default(lookup('env', 'LINODE_API_TOKEN')) }}"
# Use Linode labels as hostnames (exactly what you wanted!)
strict: false
# Create groups based on Linode attributes
keyed_groups:
# Group by region: linode_region_us_southeast
- key: region
prefix: linode_region
separator: "_"
# Group by instance type: linode_type_g6_standard_6
- key: type
prefix: linode_type
separator: "_"
# Group by status: linode_status_running
- key: status
prefix: linode_status
separator: "_"
# Group by tags: linode_tag_k3s, linode_tag_debian, etc.
- key: tags
prefix: linode_tag
separator: "_"
# Set host variables
compose:
# Use primary IPv4 as ansible_host
ansible_host: ipv4[0]
ansible_user: phlux
# Add convenience variables for your tags
is_k3s: "'k3s' in (tags | default([]))"
is_control_plane: "'control-plane' in (tags | default([]))"
is_worker_node: "'worker-node' in (tags | default([]))"
is_debian: "'Debian' in (tags | default([]))"
is_ubuntu: "'Ubuntu' in (tags | default([]))"
# Optional: Only include running instances
filters:
- status == "running"
# Cache settings (optional but recommended)
cache: true
cache_plugin: memory
cache_timeout: 300

View File

@@ -1,2 +1,3 @@
requests>=2.25.0 requests>=2.25.0
urllib3>=1.26.0 urllib3>=1.26.0
linode_api4 >= 2.0.0

2
requirements.yaml Normal file
View File

@@ -0,0 +1,2 @@
collections:
- community.general