- Added support for gateways (hop nodes) in Ansible Tower 3.6+
- Compatible with AAP 2.6+
- Gateways are managed as an extension of existing instances
Mesh Topology Fields:
node_type- Node type: execution, hop (gateway), or hybridnode_state- Current state of node in mesh topologylistener_port- Port for receptor mesh listener (gateway nodes)
Monitoring Fields:
cpu- CPU usage percentagememory- Memory usage percentagelast_seen- Last contact timestamp
tower-cli instance health
tower-cli instance health --instance <name_or_id>Retrieves detailed health information for an instance or gateway.
tower-cli instance jobs
tower-cli instance jobs --instance <name_or_id>Lists jobs currently running on a specific instance.
-
tower_cli/resources/instance.py- Added imports:
resources,exceptions,client,types,click - Added 6 new fields for mesh topology and monitoring
- Implemented 2 new methods:
health()andjobs() - Included fallbacks for compatibility with previous Tower versions
- Added imports:
-
tower_cli/constants.py- Version updated from
3.3.9to3.3.10
- Version updated from
- ✅ Fully compatible with previous Tower versions
- ✅ New fields are optional and ignored if not supported
- ✅ Automatic fallbacks for
healthandjobscommands on Tower < 3.6
- Ansible Tower 3.6 or higher (for all features)
- AWX 9.0 or higher
- AAP 2.6 or higher
- Also works with Tower < 3.6 (gateway features disabled)
Architectural Decision:
We chose to extend instance.py instead of creating a separate gateway.py file because:
- Gateways are a type of instance in Tower's API (endpoint
/instances/) - Maintains compatibility with existing code
- Reduces code duplication
- Easier to maintain
- Reflects the actual Ansible Tower architecture
None - This is a backward-compatible release.
tower-cli instance list --node-type hoptower-cli instance modify --hostname gateway-01 --node-type hoptower-cli instance health --instance gateway-01 --format jsonTo test these changes you need:
- Ansible Tower 3.6+ or AWX 9.0+ configured with mesh topology
- At least one node configured as gateway (hop)
- Valid credentials for API access
No new dependencies added. Project still uses:
- click < 7.0
- colorama >= 0.3.1
- requests >= 2.3.0
- six >= 1.7.2
- PyYAML >= 3.10
- Added
GATEWAY_SUPPORT_EN.mdfile with complete documentation - Includes examples, use cases and troubleshooting
- Explains architectural differences from "gateway as separate resource" approach
healthandjobscommands require Tower 3.6+ for full functionalitylistener_portfield may not be modifiable via CLI (depends on Tower configuration)- On Tower < 3.6, mesh topology fields are silently ignored
No migration needed. Simply upgrade with:
pip install --upgrade .Changes implemented to support AAP 2.6+ and the gateway component of Ansible Tower.
- Testing on Tower 3.6+ environment with configured gateways
- Validation of health and jobs commands
- Verification of backward compatibility with Tower 3.5 and earlier
- Possible addition of automated tests
Author: rUser75 Project: https://github.com/rUser75/tower-cli