Semaphore v2.17 introduce nuove funzionalità e miglioramenti per l’automazione dell’infrastruttura e i team DevOps. Questa release si concentra sul miglioramento della developer experience e sulla semplificazione dei workflow infrastructure-as-code.
Panoramica delle funzionalità principali
-
Nome issuer personalizzato nell’app TOTP
Ora puoi specificare un nome issuer personalizzato quando registri Semaphore in un’app autenticatrice TOTP (Time-based One-Time Password). Questo consente di identificare più chiaramente gli account Semaphore nelle app di autenticazione, migliorando l’usabilità — soprattutto per chi gestisce più token 2FA.
Scopri di più » -
Leggere i segreti dalle variabili d’ambiente
Ora puoi collegare un segreto a una variabile d’ambiente.
Scopri di più » -
Attività pianificate una tantum
Ora puoi pianificare un’attività per una data e un’ora specifiche (non solo tramite cron). Verrà eseguita una sola volta.
Scopri di più » -
Viste personalizzabili
Ora puoi personalizzare le viste dei template con molta più flessibilità.
Scopri di più » -
Interrompere tutte le attività
Il pulsante Stop all consente di interrompere tutte le attività in esecuzione per un template in un’unica azione. È utile quando devi fermare rapidamente un rollout o annullare job avviati per errore.
Scopri di più » -
Supporto server syslog
Semaphore ora può inviare i propri log a un server syslog esterno, rendendo più semplice centralizzare la raccolta dei log e integrarsi con pipeline di monitoraggio e allerta esistenti.
Scopri di più » -
Rollback delle migrazioni del database
Ora puoi eseguire il rollback delle migrazioni del database, rendendo più semplice effettuare un downgrade di Semaphore in modo sicuro se necessario.
Scopri di più » -
Drag and drop per variabili di survey, argomenti CLI, ecc.
Ora puoi riordinare variabili di survey, argomenti CLI e altri elementi di elenco tramite drag and drop.
Scopri di più » -
Esportazione e importazione di progetti via CLI
Esporta e importa progetti dalla riga di comando per semplificare backup, migrazioni e configurazioni ripetibili tra ambienti.
Scopri di più » -
Strumento CLI per migrare da BoltDB a SQLite/MySQL/Postgres
Un nuovo migratore CLI aiuta a spostare i dati di Semaphore da BoltDB a SQLite, MySQL o Postgres. BoltDB è in deprecazione e verrà rimosso in v3.0.
Scopri di più » -
Supporto Devolutions Server (Enterprise)
Le installazioni Enterprise ora possono integrarsi con Devolutions Server come backend per i segreti, in modo simile a HashiCorp Vault.
Scopri di più » -
Ruoli personalizzati e RBAC esteso (Enterprise)
Definisci ruoli personalizzati con permessi su misura per adattarsi al modello di accesso della tua organizzazione.
Scopri di più » -
Alta disponibilità active-active (Enterprise)
Esegui più istanze attive di Semaphore dietro un load balancer, senza primary/standby, per una maggiore disponibilità.
Scopri di più » -
Logging migliorato
I log ora includono un contesto più dettagliato.
Scopri di più » -
Chiave di abbonamento tramite variabile d’ambiente (PRO)
Le chiavi di abbonamento PRO ora possono essere fornite tramite una variabile d’ambiente, cosa utile per deploy containerizzati e automatizzati.
Scopri di più »
Funzionalità
Nome issuer personalizzato nell’app TOTP
Semaphore v2.17 introduce una nuova opzione per personalizzare il nome issuer mostrato nelle app autenticatrici TOTP (Time-based One-Time Password).
Obiettivo:
Il nome issuer aiuta gli utenti a identificare quale account nell’app autenticatrice appartiene a Semaphore, particolarmente utile quando si gestiscono account di più organizzazioni o ambienti.
Come configurare:
Puoi impostare il nome issuer in due modi:
-
Variabile d’ambiente
Imposta la variabile d’ambiente
SEMAPHORE_TOTP_ISSUERcon il nome issuer desiderato all’avvio di Semaphore.Esempio (Docker Compose):
environment: - SEMAPHORE_TOTP_ISSUER=MyCompany SemaphoreEsempio (Standalone):
SEMAPHORE_TOTP_ISSUER="MyCompany Semaphore" ./semaphore server -
File di configurazione
Nel file
config.json, imposta la seguente opzione nella sezioneauth:{ "auth": { "totp": { "issuer": "MyCompany Semaphore" } } }
Precedenza:
Se sono impostate sia la variabile d’ambiente sia l’opzione nel file di configurazione, ha la precedenza la variabile d’ambiente (SEMAPHORE_TOTP_ISSUER).
Valore predefinito:
Se non impostato, il nome issuer predefinito sarà Semaphore.
Risultato:
Quando gli utenti aggiungono il loro account TOTP di Semaphore a un’app autenticatrice, verrà mostrato il nome issuer selezionato, rendendo più facile distinguere tra più account.
Per tutti i dettagli su tutte le variabili d’ambiente disponibili, vedi la documentazione delle variabili d’ambiente di installazione.
Attività pianificate una tantum
Semaphore ora supporta le pianificazioni una tantum oltre alle pianificazioni cron. Usa questa opzione quando hai bisogno che un’attività venga eseguita in una data e ora specifiche e una sola volta.
Casi d’uso:
- Eseguire un’attività di manutenzione durante una finestra di cambiamento approvata
- Avviare un rollout una tantum o un job di backfill
Viste personalizabili
Le viste dei template ora sono molto più personalizzabili, permettendoti di adattare cosa viene mostrato e come è organizzato in base al tuo workflow.
-
Ora puoi spostare la scheda All in qualsiasi posizione nella barra.
-
Puoi nascondere completamente la scheda All agli utenti regolari del progetto.
-
Puoi cambiare l’ordinamento predefinito dei template per una vista specifica.
Miglioramenti tipici includono:
- Migliore organizzazione delle informazioni legate ai template
- Maggiore flessibilità nella disposizione dei contenuti della vista
Interrompere tutte le attività
Ora puoi interrompere tutte le attività in esecuzione per un template con una sola azione. Questo ti aiuta a fermare rapidamente un rollout o annullare job avviati accidentalmente.
Supporto server syslog
Semaphore ora può inoltrare i log a un server syslog esterno, rendendo più semplice centralizzare la raccolta dei log e integrarsi con pipeline di monitoraggio e allerta esistenti.
config.json:
{
"syslog": {
"enabled": true,
"network": "udp",
"address": "localhost:514",
"tag": "semaphore"
}
}
Variabili d’ambiente:
export SEMAPHORE_SYSLOG_ENABLED=True
export SEMAPHORE_SYSLOG_NETWORK=udp
export SEMAPHORE_SYSLOG_ADDRESS=localhost:514
export SEMAPHORE_SYSLOG_TAG=semaphore
Rollback delle migrazioni del database
Ora è possibile eseguire il rollback delle migrazioni del database. Questo rende più sicuro recuperare da un problema di aggiornamento e può semplificare i downgrade quando necessario.
semaphore migrate --undo-to 2.16
Drag and drop per variabili di survey, argomenti CLI, ecc.
Ora puoi riordinare variabili di survey, argomenti CLI e altri elementi di elenco tramite drag and drop, rendendo i template più facili da mantenere e rivedere.
Esportazione e importazione di progetti via CLI
Semaphore ora supporta l’importazione automatica dei progetti.
Il container Docker accetta le variabili d’ambiente SEMAPHORE_IMPORT_PROJECT_FILE e SEMAPHORE_IMPORT_PROJECT_NAME per questo.
Se devi importare un progetto dalla CLI, puoi usare il comando seguente:
semaphore project import --file /path/to/the/backup.json --project-name "Demo project"
Se il nome del progetto non è fornito, verrà usato il nome del progetto dai metadati del backup.
Per importare tutti i progetti da una directory, usa il comando seguente:
semaphore project import --dir /path/to/the/dir
Per esportare un progetto, puoi usare il comando seguente:
semaphore project export --project-name "Demo project" --file /path/to/the/backup.json
Se vuoi esportare tutti i progetti in una directory:
semaphore project export --dir /path/to/the/dir
Combinando questo comando con cron, puoi implementare backup automatici dei progetti.
Strumento CLI per migrare da BoltDB a SQLite/MySQL/Postgres
Un nuovo migratore CLI aiuta a spostare i dati di Semaphore da BoltDB a SQLite, MySQL o Postgres. BoltDB è in deprecazione e verrà rimosso in v3.0.
semaphore migrate --from-boltdb /path/to/boltdb/file
Supporto Devolutions Server (Enterprise)
Le installazioni Enterprise ora possono integrarsi con Devolutions Server come backend per i segreti, simile a HashiCorp Vault.
Ruoli personalizzati e RBAC esteso (Enterprise)
L’interfaccia di Semaphore ora supporta ruoli personalizzati a livello di progetto e globali, consentendo un controllo di accesso granulare per attività e template. L’RBAC è stato esteso con controlli più granulari sulle risorse Semaphore, aiutando i team ad applicare il principio del minimo privilegio in modo più preciso.
Gli utenti Enterprise possono definire ruoli personalizzati con permessi su misura per soddisfare le esigenze di accesso dell’organizzazione.
I proprietari e i manager del progetto possono assegnare questi ruoli a template specifici e concedere permessi mirati per eseguire, visualizzare o gestire le attività.
Alta disponibilità active-active (Enterprise)
In una configurazione standard a nodo singolo, un processo Semaphore fa tutto: serve la UI web, esegue job pianificati, esegue attività e invia aggiornamenti in tempo reale ai browser. Se quel processo va giù, tutto si ferma.
Con HA active-active, esegui più istanze Semaphore identiche dietro un load balancer. Tutte sono completamente attive contemporaneamente: non c’è un “primario” o uno “standby”. Qualsiasi nodo può servire qualsiasi richiesta, eseguire qualsiasi attività o attivare qualsiasi pianificazione. Si coordinano tramite un’istanza Redis condivisa per evitare conflitti.
Tutte le istanze si collegano agli stessi due backend:
- Database (Postgres o MySQL) — l’unica fonte di verità per tutti i dati persistentes: progetti, template, pianificazioni, cronologia attività, utenti, ecc.
- Redis — lo strato di coordinamento. Redis serve a tre scopi:
- Lock distribuiti — per impedire che due nodi eseguano la stessa cosa
- Messaggistica Pub/Sub — per inoltrare eventi in tempo reale tra nodi
- Stato condiviso della coda delle attività — così tutti i nodi vedono la stessa coda
{
"ha": {
"enabled": true,
"node_id": "node1",
"redis": {
"addr": "localhost:6379"
}
}
}
Logging migliorato
Il logging è stato migliorato per fornire più contesto e chiarezza, aiutandoti a fare troubleshooting dei fallimenti e a capire cosa è successo durante un’esecuzione.
Chiave di abbonamento tramite variabile d’ambiente (PRO)
Le chiavi di abbonamento PRO ora possono essere fornite tramite una variabile d’ambiente, cosa utile per deploy containerizzati e rollout guidati da CI/CD.