Un inquadramento onesto
La maggior parte dei confronti tra strumenti è scritta dai vendor. Si capisce subito: una parte vince su ogni metrica e la conclusione è sempre «usate il nostro prodotto».
Questo articolo prova a essere diverso. AWX e Semaphore UI risolvono problemi che si sovrappongono, ma partono da assunzioni diverse su chi siete e cosa avete. La risposta giusta dipende davvero dalla vostra situazione.
Tratteremo: cosa fa ciascuno, come è architettato, dove differiscono sulle funzionalità e — soprattutto — quale team dovrebbe usare quale.
Cos’è AWX?
AWX è il progetto open source upstream che Red Hat usa come base per la Ansible Automation Platform (AAP) commerciale. Fornisce una UI web, API REST e un motore di task per eseguire playbook Ansible sulla vostra infrastruttura.
AWX è gratuito, con licenza MIT e supporto della community. Red Hat prende release AWX selezionate, le rende più robuste e le impacchetta come «Automation Controller», il componente centrale di AAP. AWX riceve le funzionalità per primo; Automation Controller riceve il supporto enterprise.
Stato attuale (2026): L’ultima release AWX è stata la 24.6.1 del 2 luglio 2024. Lo sviluppo è in pausa durante un refactoring architetturale su larga scala. Il team ha riconosciuto che «l’architettura applicativa esistente limita la capacità di cambiamento» e di aver raggiunto «il limite di quanto si possa innovare con il sistema esistente». Anche la collection Ansible awx.awx è segnalata come poco mantenuta. Non significa che AWX sia morto: significa che è in una fase di transizione significativa senza una tempistica chiara.
Cos’è Semaphore UI?
Semaphore UI è un’interfaccia web open source per eseguire automazione Ansible, Terraform/OpenTofu, Bash, Python e PowerShell. È scritta in Go ed è distribuita come singolo binario senza dipendenze di runtime esterne.
Come AWX, offre UI, API REST, scheduling, RBAC e gestione del team. A differenza di AWX, non è legata a Kubernetes né costruita sopra un prodotto enterprise commerciale.
Semaphore è disponibile come versione open source gratuita (licenza MIT) e come tier Pro con project runner, 2FA, backend HTTP Terraform ed export dei log. Le opzioni enterprise includono HA, LDAP/SSO e supporto prioritario.
Architettura e installazione
Qui i due strumenti divergono di più.
AWX richiede Kubernetes. Dalla v18.0.0, i deployment Docker su singolo host non sono più ufficialmente supportati in produzione. Serve un cluster Kubernetes funzionante — k3s su una macchina, cluster multi-nodo completo o servizio gestito nel cloud. Il metodo consigliato è l’AWX Operator, che richiede kustomize 3.5.1+. Per l’ultima release è richiesto PostgreSQL 15.
Semaphore richiede quasi nulla. È un singolo binario Go compilato. Potete installarlo con un package manager (apt, dnf), Docker, Helm o scaricando ed eseguendo il binario. SQLite va bene per setup piccoli; PostgreSQL o MySQL per la produzione. Un tipico setup Docker è un solo comando.
La differenza pratica: configurare AWX correttamente richiede ore e presuppone familiarità con Kubernetes. Configurare Semaphore richiede minuti e non presuppone nulla.
| AWX | Semaphore UI | |
|---|---|---|
| Metodo di deployment | Kubernetes + AWX Operator | Binario, Docker, Helm, package manager |
| Dipendenze richieste | Kubernetes, kustomize, PostgreSQL 15 | Nessuna (SQLite integrato) |
| RAM min. consigliata | 8 GB | 512 MB |
| CPU min. consigliata | 4 core | 1 core |
| Installazione single-binary | ❌ | ✅ |
| Supporto Windows | ❌ | ✅ |
| Tempo di installazione | Ore | Minuti |
Confronto delle funzionalità
Entrambi coprono il flusso centrale: definire l’automazione, configurare inventario e credenziali, eseguire task, vedere i log. Ecco come si confrontano sull’intero set di funzionalità.
| Funzionalità | AWX | Semaphore UI |
|---|---|---|
| Playbook Ansible | ✅ | ✅ |
| Terraform / OpenTofu | ❌ (solo tramite modulo Ansible) | ✅ Nativo |
| Bash / script shell | ❌ (solo tramite playbook) | ✅ Nativo |
| Script Python | ❌ (solo tramite playbook) | ✅ Nativo |
| PowerShell | ❌ | ✅ |
| API REST | ✅ Completa | ✅ Completa |
| Scheduling | ✅ | ✅ |
| Espressioni cron | ✅ | ✅ |
| Gestione inventario | ✅ | ✅ |
| Inventario dinamico | ✅ (plugin integrati) | ✅ (tramite Ansible) |
| RBAC | ✅ Granulare | ✅ Basato su ruoli (4 livelli) |
| LDAP | ✅ | ✅ Enterprise |
| SAML | ✅ | ❌ |
| OpenID Connect / OAuth2 | ✅ | ✅ (10+ provider) |
| 2FA (TOTP) | ❌ | ✅ Pro |
| Execution environment | ✅ (isolamento container) | ✅ (runner) |
| Runner distribuiti | ❌ | ✅ (globali + per progetto) |
| Integrazioni webhook | ✅ | ✅ |
| Notifiche | ✅ (email, Slack, ecc.) | ✅ (Slack, Teams, Telegram, email, Rocket.Chat, Gotify) |
| Audit log | ✅ | ✅ |
| Alta disponibilità | ✅ | ✅ Enterprise |
| Workflow di approvazione | ❌ | ✅ (Terraform plan/apply) |
| Backend HTTP Terraform | ❌ | ✅ Pro |
| Integrazione HashiCorp Vault | ❌ | ✅ |
| Assistente IA (MCP) | ❌ | ✅ |
| Workflow multi-tool | ❌ | ✅ |
| Swagger UI integrata | ✅ | ✅ |
| Licenza open source | Apache 2.0 | MIT |
| Supporto enterprise | Tramite AAP (da ~13k $/anno) | Disponibile come add-on |
Ambito dell’automazione
AWX è centrato su Ansible. Tutto ruota attorno ai job template che eseguono playbook. Tecnicamente potete eseguire Terraform dentro un playbook con la collection cloud.terraform, ma è un accrocchio di integrazione: stato Terraform, workspace e approvazione plan/apply non sono concetti nativi in AWX.
Semaphore tratta Ansible, Terraform, Bash, Python e PowerShell come tipi di esecuzione di prima classe. Scegliete il tipo creando il template; UI, variabili e workflow di approvazione si adattano. Se usate Ansible per la configurazione e Terraform per il provisioning, gestite entrambi dalla stessa interfaccia senza workaround.
Per chi usa solo Ansible, poco conta. Per chi mescola strumenti — come la maggior parte dei team — la differenza è rilevante.
Controllo degli accessi
Entrambi supportano il controllo degli accessi basato su ruoli, ma l’implementazione differisce.
AWX ha permessi granulari a livello di oggetto. Potete concedere a utenti specifici accesso a job template, inventari o credenziali in modo indipendente. Un ruolo auditor può vedere tutto senza modificare nulla. Il RBAC può essere sincronizzato da LDAP o SAML.
Il RBAC di Semaphore è legato al progetto con quattro ruoli: Owner, Manager, Task Runner e Guest. Owner e Manager controllano la configurazione. I Task Runner eseguono i task ma non li modificano. I Guest hanno solo lettura. Copre la maggior parte delle strutture di team senza complessità eccessiva.
Se avete requisiti normativi su accesso auditor fine-grained, il modello AWX è più espressivo. Se dovete separare «chi configura l’automazione» da «chi la esegue», il modello Semaphore è sufficiente e molto più semplice da gestire.
Scala di team e organizzazione
AWX è stato pensato per grandi organizzazioni. Organizations, Teams e permessi per oggetto riflettono una gerarchia enterprise. Se gestite centinaia di utenti su più business unit, il modello di permessi AWX offre controllo.
Semaphore usa i progetti come confine principale di isolamento. Ogni progetto ha inventario, template, segreti e team. Per setup multi-team, Semaphore Pro aggiunge i Project Runner — ambienti di esecuzione isolati per progetto. Un runner a New York gestisce l’infrastruttura di New York; uno a Francoforte quella di Francoforte. I task di progetti diversi non condividono gli ambienti di esecuzione.
Per team fino a ~100 persone con confini di progetto chiari, il modello Semaphore funziona bene e resta gestibile. Per piattaforme enterprise con molti team e permessi sovrapposti, la granularità di AWX può valere l’overhead.
Manutenzione e supporto nella pratica
Questa è la parte scomoda nell’usare uno o l’altro.
Il supporto community di AWX significa niente SLA, nessun impegno chiaro sulle vulnerabilità e nessuna compatibilità garantita. Red Hat afferma che AWX «può essere rischioso per le aziende» se usato per gestire sistemi di produzione. Lo strumento va inteso come anteprima di Automation Controller, non come piattaforma di produzione con solido supporto community. Se qualcosa si rompe, siete da soli.
La pausa attuale delle release aggiunge incertezza. Nessuna release da luglio 2024: nessun bugfix, nessuna patch di sicurezza, nessuna nuova funzionalità da oltre 18 mesi. Se oggi eseguite AWX in produzione, state usando software senza manutenzione attiva.
Anche il supporto community di Semaphore è community, ma il progetto è sviluppato attivamente con release frequenti. I tier Pro ed Enterprise offrono supporto a pagamento con SLA (12h standard, opzioni di emergenza). Se servono tempi di risposta garantiti, quel percorso esiste.
Nessuno dei due vi dà garanzie enterprise alla Red Hat gratis. La differenza è che Semaphore si muove attivamente e offre un percorso di supporto a pagamento chiaro. AWX è in una fase di attesa senza opzione commerciale al di sotto del prezzo di AAP.
Quando ha senso AWX
AWX è la scelta giusta se:
- State già eseguendo Kubernetes e l’overhead operativo è già assorbito dalla piattaforma.
- Vi serve autenticazione SAML — è l’unico protocollo che Semaphore non supporta attualmente.
- La vostra automazione è al 100% Ansible e volete la versione upstream di ciò che diventa AAP.
- State valutando AAP e volete conoscere l’interfaccia prima di un abbonamento commerciale.
- Vi serve RBAC a livello di oggetto — accesso a playbook specifici senza accesso a livello progetto.
- Pianificate la migrazione ad AAP e volete portabilità della configurazione (AWX e AAP condividono lo stesso modello dati).
Quando ha senso Semaphore UI
Semaphore è la scelta giusta se:
- Non eseguite Kubernetes (o non volete farlo solo per una UI Ansible).
- Usate più di Ansible — Terraform, Bash, Python, PowerShell o OpenTofu fanno parte del vostro stack.
- Avete hardware limitato — una VM con 1 CPU e 1 GB di RAM basta.
- Vi serve Windows — Semaphore gira nativamente su Windows; AWX no.
- Nel team ci sono utenti non tecnici che devono eseguire automazione senza CLI.
- Sostituite AAP o Tower per costi — il tier Pro di Semaphore parte da 15 $/mese contro ~13.000 $/anno per AAP.
- Vi serve un backend HTTP Terraform — Semaphore Pro ne fornisce uno in modo nativo.
- Volete manutenzione prevedibile — release attive, roadmap chiara e supporto a pagamento senza impegno a cinque cifre.
La realtà dei costi
AWX è gratuito ma non è senza costo. Kubernetes aggiunge complessità infrastrutturale e carico operativo. Se non avevate già Kubernetes, mettere su un cluster solo per AWX ha un costo reale in tempo di ingegneria e risorse cloud.
Il tier open source di Semaphore è davvero gratuito, senza overhead infrastrutturale oltre una piccola VM o container. Il piano Pro parte da 15 $/mese. Enterprise scala a prezzi personalizzati ma resta in un’altra categoria rispetto al prezzo di ingresso di AAP.
Se l’alternativa a Semaphore Pro è Ansible Automation Platform, il calcolo è lineare. Anche Enterprise Semaphore è una frazione del costo di licenza AAP.
Riepilogo
AWX e Semaphore UI sono entrambi progetti open source seri. Nessuno è vaporware e entrambi hanno deployment reali in produzione. La scelta dipende dai vostri vincoli.
Scegliete AWX se siete già investiti in Kubernetes, vi serve SAML o state puntando ad AAP.
Scegliete Semaphore UI se volete qualcosa installabile in dieci minuti, che copra più di Ansible e sia attivamente mantenuto con un percorso di supporto chiaro.
Se state valutando AWX e sentite attrito sul requisito Kubernetes o sulla complessità di installazione — quell’attrito è reale, non un gap di competenze. Vale la pena un confronto diretto con Semaphore prima di impegnarvi.
