Questa versione di ansible-tower-cli è stata modificata per supportare i gateway (hop nodes) introdotti in Ansible Tower 3.6+ e compatibili con Ansible 2.6+.
Invece di creare un nuovo file gateway.py, abbiamo esteso la risorsa instance.py esistente.
Perché questa scelta?
- I gateway NON sono una risorsa API separata, ma un tipo di instance (hop node)
- Mantiene la compatibilità backward con versioni precedenti di Tower
- Meno codice duplicato e più facile da mantenere
- Riflette l'architettura reale di Ansible Tower
Aggiunti nuovi campi:
node_type- execution, hop (gateway), o hybridnode_state- stato del nodo nella meshlistener_port- porta receptor per gatewaycpu,memory,last_seen- monitoraggio avanzato
Aggiunti nuovi comandi:
tower-cli instance health --instance <id>tower-cli instance jobs --instance <id>
- Versione aggiornata a
3.3.10
cd /myData/git/pythonVENV/ansible-tower-cli-3.3.9
pip install --upgrade .tower-cli instance listtower-cli instance list --node-type hoptower-cli instance get --hostname gateway-01tower-cli instance health --instance gateway-01tower-cli instance jobs --instance gateway-01tower-cli instance modify --hostname node-01 --node-type hop- execution: Nodi che eseguono i job Ansible
- hop (gateway): Nodi che instradano il traffico ma non eseguono job
- hybrid: Nodi che fanno entrambe le cose
- ✅ Ansible Tower 3.6+
- ✅ AWX 9.0+
- ✅ Ansible 2.6+
- ✅ Tower < 3.6: i nuovi campi vengono ignorati
- ✅ Comandi esistenti funzionano normalmente
- ✅ Nessun breaking change
Consulta i file di documentazione per maggiori dettagli:
GATEWAY_SUPPORT.md- Guida completa con esempi e troubleshootingCHANGELOG_3.3.10.md- Dettaglio tecnico delle modifiche
Per testare le modifiche:
# Configura connessione
tower-cli config host https://your-tower
tower-cli config username admin
tower-cli config password your-password
# Test base
tower-cli instance list
# Test nuove funzionalità (richiede Tower 3.6+)
tower-cli instance health --instance 1
tower-cli instance jobs --instance 1- Nessun file gateway.py: Abbiamo valutato e scelto di NON creare un file separato
- Estensione di instance.py: Approccio più pulito e architetturalmente corretto
- Backward compatible: Funziona anche con versioni vecchie di Tower
- Fallback automatici: Se gli endpoint non esistono, usa alternative
tower_cli/
├── resources/
│ └── instance.py [MODIFICATO] Aggiunto supporto gateway
├── constants.py [MODIFICATO] Versione 3.3.10
├── GATEWAY_SUPPORT.md [NUOVO] Documentazione completa
├── CHANGELOG_3.3.10.md [NUOVO] Log modifiche tecniche
└── README_IT.md [NUOVO] Questo file
# 1. Installazione
cd /myData/git/pythonVENV/ansible-tower-cli-3.3.9
pip install --upgrade .
# 2. Configurazione
tower-cli config host https://tower.example.com
tower-cli config username admin
tower-cli config password mypassword
# 3. Verifica versione
tower-cli --version
# Output: Tower CLI 3.3.10
# 4. Lista tutte le istanze
tower-cli instance list
# 5. Lista solo gateway
tower-cli instance list --node-type hop
# 6. Dettagli gateway specifico
tower-cli instance get --hostname gateway-dmz
# 7. Salute del gateway
tower-cli instance health --instance gateway-dmz --format json
# 8. Job in esecuzione
tower-cli instance jobs --instance gateway-dmzA: Perché i gateway non sono una risorsa API separata in Tower. Sono un tipo di instance con node_type=hop. Estendere instance.py è l'approccio corretto.
A: Sì! I nuovi campi vengono semplicemente ignorati. Tutto il resto funziona normalmente.
A: Prova tower-cli instance list. Se vedi il campo node_type, il tuo Tower supporta mesh topology.
A: No, i gateway devono essere installati e configurati a livello di sistema. Puoi solo modificare le proprietà di istanze esistenti.
→ Il tuo Tower non supporta mesh topology. Campi ignorati, tutto il resto funziona.
→ Normale su Tower < 3.6. Viene usato il fallback automatico.
→ Usa --all-pages: tower-cli instance list --all-pages
Per problemi o domande:
- Consulta
GATEWAY_SUPPORT.mdper documentazione dettagliata - Controlla
CHANGELOG_3.3.10.mdper dettagli tecnici - Verifica la versione di Tower (richiede 3.6+ per tutte le funzionalità)
Versione: 3.3.10 Compatibilità: Ansible Tower 3.6+ / AWX 9.0+ / Ansible 2.6+ Data: 2026-01-21