Arbejdsgange (Workflows)

version 2.19

Semaphore behandler i øjeblikket hver opgaveskabelon som en uafhængig enhed — der findes ingen indbygget måde at sammenkæde flere skabeloner i en flertrins eksekveringspipeline. Denne funktion introducerer Arbejdsgange (Workflows) — rettede asykliske grafer (DAG) over opgaveskabeloner, som afvikles med betinget forgrening, variabeloverførsel mellem trin og valgfrie godkendelsesporte. Designet trækker på koncepter fra AWX Workflow Job Templates, Rundeck og Jenkins/GitLab CI pipelines.

Pro

  • Arbejdsgangsskabeloner — introduktion af en ny overordnet enhed, der definerer en DAG af opgaveskabelonknuder forbundet med betingelser (on_success, on_failure, always), hvilket muliggør flertrins automatiseringspipelines inden for et projekt. (#3182, #2334, #1383, #836)
  • Eksekveringsmotor til arbejdsgange — afvikling af knuder i topologisk rækkefølge, overholdelse af kantbetingelser og parallel kørsel af uafhængige forgreninger med konvergens for knuder med flere forældre. (#2281, #3088)
  • Kørselsdashboard for arbejdsgange — samlet visning af arbejdsgangseksekvering med DAG-graf og status pr. knude (afventer, kører, fuldført, mislykket, sprunget over), klikbare logs og samlet tidsforbrug.
  • Variabeloverførsel mellem knuder — gør det muligt for opgaveskabeloner at udsende output-variabler, som automatisk injiceres som ekstra variabler i efterfølgende knuder. (#3182)
  • Planlægning og API-udløsere — understøttelse af cron-planlægning, API-udløste kørsler og webhook-udløsere for arbejdsgange. (#3088)
  • Visuel arbejdsgangseditor — træk-og-slip grafisk editor til opbygning af arbejdsgange i brugerfladen med realtidsvalidering, knudeplacering og betingelsesvælgere.
  • Tilsidesættelser pr. knude — mulighed for at tilsidesætte inventory, adgangsoplysninger eller variabler på knudeniveau, så samme skabelon kan genbruges på tværs af miljøer i én arbejdsgang.
  • Godkendelsesporte — stands eksekvering på bestemte punkter for at afvente manuel godkendelse med konfigurerbare timeouts og godkend/afvis-handlinger direkte i brugerfladen eller via API.

Enterprise

  • RBAC for arbejdsgange — finkornede rettigheder til oprettelse, redigering, eksekvering og godkendelse af arbejdsgange med rollebaseret tildeling af godkendelsesporte og revisionslogning.
  • Tværgående arbejdsgange — referer til opgaveskabeloner fra andre projekter i en arbejdsgang, hvilket muliggør organisationsdækkende automatiseringspipelines.
  • Versionsstyring og tilbagerulning — bevar versionshistorik for arbejdsgangsdefinitioner med diffs og gendannelse af tidligere versioner.

LDAP og OpenID Gruppemapping

version 2.20

Semaphore understøtter LDAP og OpenID Connect (OIDC) til godkendelse. Denne funktion tilføjer automatisk rolle- og projekttildeling baseret på identitetsudbyderens gruppemedlemskaber.

Community

  • Begræns OIDC-login via claim — tillad kun brugere med specifikke claim-værdier (f.eks. påkrævet gruppemedlemskab eller e-maildomæne) at logge ind. (#2626, #2938)
  • Automatisk SSO-login — omgå loginskærmen og videresend direkte til OIDC/SSO-udbyderen. (#2548, #2899)
  • OIDC PKCE-understøttelse — Proof Key for Code Exchange til godkendelseskode-flowet. (#3072)
  • Logud fra OIDC-udbyder — afslut IdP-sessionen ved logud fra Semaphore. (#1496)

Enterprise

  • OIDC gruppe-til-rolle mapping — tildel automatisk Semaphore-roller og projektmedlemskaber baseret på OIDC claims (groups claim). (#1499, #2483)
  • LDAP gruppe-til-rolle mapping — kortlæg Active Directory / LDAP-grupper til Semaphore-roller. (#3226, #1316)
  • Fuld RBAC med LDAP/OIDC-integration — finkornet rollebaseret adgangskontrol med automatisk rolletildeling fra eksterne identitetsgrupper. (#891)

Indbygget Inventory Management System

version 2.22

Et struktureret, UI-administreret inventory-system, hvor værter, grupper og variabler er førsteklasses objekter gemt i Semaphore, som kan redigeres direkte i webgrænsefladen og eksporteres til standard Ansible-format.

Community

  • Struktureret værts- og gruppe-editor — administrer værter og grupper visuelt i stedet for manuel redigering i en tekstboks. (#836)
  • Værts- og gruppevariabler i UI — definer host_vars og group_vars som strukturerede nøgle/værdi-par.
  • Importer eksisterende inventory — klargør et administreret inventory ved at importere en INI/YAML-fil.
  • Eksporter til standard Ansible inventory — gengiv det administrerede inventory som en standard Ansible inventory-fil under opgavekørsel.

Fleksibelt Notifikationssystem

version 2.21

Gør notifikationer fuldt administrerbare via brugerfladen med konfiguration på projekt- og skabelonniveau samt understøttelse af mange nye kanaler.

Community

  • Udvidelsesvenlig kanalarkitektur — fælles grænseflade for notifikationskanaler. (#2325, #1290)
  • UI-administreret konfiguration — flyt opsætning af notifikationer ind i brugerfladen pr. projekt og skabelon. (#3387)
  • Nye notifikationskanaler — Discord, Ntfy, Google Chat, Rocket.Chat og Pushover.
  • Udgående webhook-hændelser — definer hændelsestyper (START, SUCCESS, FAILURE) og webhook-skabeloner.

Brugerdefinerede Hemmeligheder

version 2.21

Individuel Key Store-isolation pr. bruger, så personlige adgangsoplysninger (SSH-nøgler, sudo-adgangskoder) holdes adskilt fra andre projektmedlemmer.

Community

  • Personlig nøgleboks — separat Key Store for hver bruger. (#1483)
  • Skjul hemmeligheder fra proceslisten — stop overførsel af hemmelige variabler via kommandolinjeargumenter synlige i proceslisten. (#3219)

Adgangsoplysninger til requirements.yml

version 2.21

Giver mulighed for at tilknytte adgangsoplysninger til skabeloner, som automatisk anvendes af ansible-galaxy install til at hente private roller og samlinger fra Git-repositories.

Vedvarende Repository-Cache

version 2.21

Giver mulighed for at bevare et enkelt persistent klonet repository, der opdateres i baggrunden, i stedet for at klone forfra ved hver opgavekørsel.

Flere Inventories pr. Skabelon

version 2.22

Understøttelse af at tilknytte flere inventories til en enkelt opgaveskabelon (overføres som sekventielle -i-argumenter til Ansible).