Ansible UI: AWX og Semaphore UI

Denis GukovStifter og CTO hos Semaphore UI
18 min. læsetid

AWX og Semaphore UI tilbyder webgrænseflader og API’er til at køre automatisering på tværs af et team. Denne sammenligning omfatter AWX 24.6.1 og Semaphore UI 2.20.0, fra understøttede værktøjer og udrulning til workflows, adgangskontrol og løbende vedligeholdelse.

Drøft artiklen med AI

Overblik

En Ansible-playbook kan begynde som en kommando, en enkelt ingeniør kører fra sin bærbare computer. Når udrulninger, opdateringer og certifikatfornyelser bliver et fælles ansvar, har teamet brug for ét sted at starte disse jobs, angive input, administrere legitimationsoplysninger og gennemgå resultater. AWX og Semaphore UI giver dette fælles lag med gemte jobkonfigurationer, tidsplaner, rettigheder og kørselshistorik.

AWX organiserer automatisering omkring Ansible. Teams forbinder playbooks i Git med inventories og legitimationsoplysninger, gemmer dem som jobskabeloner og samler jobs i workflows. Organisationer, teams og rettigheder styrer, hvem der kan bruge hver ressource. AWX er et open source-projekt, mens Red Hat Ansible Automation Platform (AAP) er et særskilt kommercielt produkt med egen support og livscyklus.

Semaphore UI er også bygget op omkring genanvendelige opgaver, med Ansible-playbooks og særskilte skabeloner til Terraform/OpenTofu, Terragrunt, Bash, PowerShell og Python. Projekter samler disse skabeloner, repositories, inventories, legitimationsoplysninger og variabler. Et workflow kan forbinde klargøring af infrastruktur som kode (IaC) med konfiguration af værter og efterfølgende vedligeholdelse, så operationer på tværs af værktøjerne samles i én grænseflade.

Semaphore UI-opgaveskabeloner til Ansible, OpenTofu, Terragrunt, Bash og PowerShell i ét projekt.
Semaphore UI. Forskellige automatiseringsværktøjer vises i samme projektliste over skabeloner med konfigurerbare kolonner.
AWX-skabelonliste med Ansible-jobskabeloner og genanvendelige workflow-skabeloner i en organisation.
AWX. Ansible-jobskabeloner og workflow-skabeloner vises i samme liste med organisationsoplysninger og kontroller til start.

Kort sammenligning

Gemte jobs, legitimationsoplysninger og tidsplaner dækker almindelige Ansible-opgaver i begge produkter. De overordnede forskelle ligger i værktøjsunderstøttelse, udrulning og ressourcestyring. Her er de vigtigste egenskaber ved hver platform.

Automatiseringsværktøjer, installation, udførelse, workflows, inventories, adgangskontrol, legitimationsoplysninger, variabler og licens
Kriterier Semaphore UI AWX
Automatiseringsværktøjer Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python AnsibleAndre værktøjer via playbooks
Installation Binær fil, pakker, Docker, Kubernetes Kubernetes (Operator), Docker (udvikling/test)
Serverplatforme Linux, macOS, Windows, FreeBSD Linux-containere (Kubernetes / Docker)
Afvikling af opgaver På serveren eller eksterne afviklingsmaskiner På afviklingsservere eller i Kubernetes-pods
Workflows Ja, visuelle workflows på tværs af værktøjer Ja, visuelle Ansible-workflows med genbrugelige underworkflows
Planlægning Cron-udtryk, engangskørsler Engangskørsler og gentagne kørsler
Inventory-styring Statiske inventories og Git-inventories, dynamiske plugins, NetBox og andre eksterne kilder Statiske og dynamiske inventories, styrede opdateringer, sammensatte inventories
Adgangsstyring RBAC, projektroller, brugerdefinerede roller, skabelonrettighederLDAP, OIDC, lokal TOTP RBAC, organisations- og teamroller, rettigheder pr. ressourceLDAP, OIDC, SAML, MFA via identitetsudbyder
Legitimationsoplysninger Key Store, SSH-nøgler, adgangskoder, integrationer med eksterne hemmelighedslagre Legitimationsobjekter, SSH-nøgler, adgangskoder, eksterne hemmelighedslagre
Variabler Genbrugelige variabelgrupper, ekstra variabler, miljøvariabler, inputformularer Inventory-, værts- og gruppevariabler, ekstra variabler, inputformularer
Licens MIT (Community)Særskilte kommercielle vilkår for betalte udgaver Apache 2.0

Til almindelige Ansible-jobs tilbyder begge start, planlægning og kørselshistorik. De vigtigste forskelle er håndtering af inventories og rettigheder, hvilke værktøjer de kører direkte, og hvordan de installeres.

De viste Semaphore UI-funktioner omfatter Community, Pro og Enterprise. Tilgængelighedsmarkeringer angiver den mindste nødvendige udgave. Licenser og support forklarer de kommercielle muligheder.

Sammenligning af funktioner

En udrulning kan klargøre infrastruktur, konfigurere værter og afvente godkendelse, før produktionen ændres. Hvor trinnene køres, hvordan de udveksler resultater, og hvem der styrer dem, forklarer de vigtigste forskelle mellem produkterne.

Installation og opsætning

AWX’s anbefalede installation bruger Kubernetes. Semaphore UI understøtter også selvstændige installationer, så kravene til den infrastruktur, der skal drive tjenesten, er en tidlig forskel.

UnderstøttetDelvist understøttetIkke understøttet
Installation og opsætning: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Selvstændig binær fil Ja Nej
Native Linux-pakker JaDEB / RPM Nej
Docker-installation Ja DelvistKun til udvikling og test
Kubernetes-installation JaHelm-chart JaAWX Operator
Native Windows-server JaAnsible kræver WSL, container eller Linux-runner NejLinux-containere
Høj tilgængelighed JaEnterpriseFælles database, Redis, belastningsfordeler JaReplikaer, database-failover konfigureres separat

AWX’s anbefalede udrulning kombinerer Kubernetes Operator, PostgreSQL og containerbaseret jobudførelse. Docker-opsætningen er beregnet til udvikling og test. For et team, der allerede bruger Kubernetes, følger Operator en velkendt driftsmodel. En klynge indført alene til AWX giver mere infrastruktur at vedligeholde.

Semaphore UI understøtter også Kubernetes via Helm samt installation som binærfil, native-pakke eller Docker med SQLite, MySQL eller PostgreSQL. En selvstændig installation kan bruge en eksisterende server uden en klynge og giver dermed teams en mindre startinstallation og valgfrihed i driftsmodellen.

Serverens operativsystem er adskilt fra jobudførelsen. Semaphore UI har en native serverbinærfil til Windows, mens Ansible fortsat kræver Linux, macOS, en egnet container eller WSL. En Linux-runner kan udføre jobs for en webtjeneste, der er placeret et andet sted. Begge platforme kan administrere Windows-målsystemer via Ansible.

Høj tilgængelighed med AWX’s skaleringsmuligheder og Semaphore UI Enterprise’s HA-udrulning kræver planlægning af databasefailover og gendannelse. Installationer uden netforbindelse har desuden brug for en leveringsvej til pakker, afviklingsimages, opdateringer og eventuel aktivering af betalte licenser.

Automatiseringsværktøjer

En udrulning kan klargøre med Terraform/OpenTofu, konfigurere med Ansible og afslutte med Python. AWX kalder de øvrige værktøjer gennem playbooks, mens Semaphore UI tilbyder direkte opgaveskabeloner.

UnderstøttetDelvist understøttetIkke understøttet
Automatiseringsværktøjer: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Ansible-playbooks Ja Ja
Terraform/OpenTofu JaIndbygget opgaveskabelon DelvistVia Ansible-playbooks
Terragrunt JaIndbygget opgaveskabelon DelvistVia Ansible-playbooks
Bash JaIndbygget opgaveskabelon DelvistVia Ansible-playbooks
PowerShell JaIndbygget opgaveskabelon DelvistVia Ansible-playbooks
Python JaIndbygget opgaveskabelon DelvistVia Ansible-playbooks

AWX holder Ansible i centrum for udførelsen. Playbooks kan kalde Terraform/OpenTofu, Terragrunt, Bash, PowerShell eller Python via moduler eller kommandoer, når afviklingsmiljøet indeholder afhængighederne. Det passer til teams, som allerede beskriver deres klargøringsproces i Ansible.

Semaphore UI giver disse værktøjer egne skabeloner. Teams kan køre eksisterende automatisering direkte og kombinere den i workflows uden ekstra playbooks, der blot kalder et andet værktøj. En OpenTofu-opgave kan klargøre infrastruktur, en Ansible-opgave konfigurere værterne og en Python-opgave afslutte en tilknyttet operation, alt sammen i én grænseflade.

Semaphore UI Pro tilbyder en indbygget HTTP-backend til Terraform/OpenTofu-state samt workspaces og kørselsindstillinger. Teams kan opbevare fælles state i Semaphore UI frem for at drive en særskilt backend. I AWX bruger den kaldte Terraform-proces den backend, teamet har konfigureret. AWX’s Terraform State-inventorykilde læser state for at finde værter, men lagrer den ikke.

Terraform-udførelse i Semaphore UI 2.20 har to vigtige begrænsninger. En normal kørsel viser en plan før anvendelse, men gemmer ikke automatisk planen til efterfølgende anvendelse af den samme fil. Skal en godkendelse dække den præcise foreslåede ændring, skal processen gemme planen og sende den til apply. Standardkommandoerne til Terraform deaktiverer også state-låsning, medmindre dette tilsidesættes, selv når backenden understøtter låsning. Gennemgå begge indstillinger ved opsætning af produktionskørsler.

Skabeloner og planlægning

AWX kalder en gemt Ansible-konfiguration en Job Template. Semaphore UI kalder den en Task Template. Hver start opretter et separat job i AWX eller en task i Semaphore UI med egen status, logfiler og resultat. Skabelonen indeholder de genbrugelige indstillinger, mens inputformularer og tidsplaner styrer en kørsels input og tidspunkt.

UnderstøttetDelvist understøttetIkke understøttet
Skabeloner og planlægning: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Gemt opgavekonfiguration Ja Ja
Inputformularer (kørselsinput) Ja Ja
Genanvendelige variabelsæt JaVariable Groups delt mellem skabeloner DelvistInventory-variabler eller filer i Git
Repository-gren ved start Ja Ja
Planlagte kørsler JaCron-udtryk og engangskørsler JaEngangskørsler og gentagne kørsler

I AWX vælger en Job Template projekt, playbook, inventory og legitimationsoplysninger samt et execution environment (afviklingsmiljø) til kørselsafhængighederne. Semaphore UI’s Ansible Task Template vælger repository, playbook og inventory med genbrugelige Variable Groups og Ansible-indstillinger i samme formular. Ingeniørerne forbereder konfigurationen én gang, hvorefter kolleger kan starte operationen uden at sætte den op igen hver gang.

Semaphore UI’s editor til Ansible Task Template med repository, playbook, inventory, Variable Groups og indstillinger for input ved start.
Semaphore UI. En Ansible Task Template med fælles variabler og startindstillinger.
AWX’s Job Template-editor med projekt, inventory, playbook, legitimationsoplysninger og afviklingsmiljø.
AWX. En Ansible Job Template med ressourcevalg og input ved start.

Inputformularer (surveys) lader kolleger angive startparametre uden at redigere en playbook. AWX understøtter validering såsom grænser for tekstlængde. Semaphore UI’s Survey Variables omfatter typede input, tekst med flere linjer, hemmeligheder og enkelt- eller flervalg. Genanvendelige Variable Groups holder fælles konfiguration adskilt fra værdier, der angives ved start. AWX kan dele konfiguration via inventory-, værts- og gruppevariabler eller variabelfiler i Git frem for et særskilt Variable Groups-objekt, der vælges i flere skabeloner.

Begge kan køre en anden repository-gren, når indstillingerne tillader det. AWX kan spørge efter inventory, legitimationsoplysninger og andre jobindstillinger. Semaphore UI understøtter konfigurerede tilsidesættelser af Ansible-inventory og kommandolinjeparametre. Mulighederne giver ingeniører fleksibilitet, mens godkendte procedurer kan vise en mere afgrænset startformular.

Tidsplaner automatiserer disse kørsler. AWX bruger startdato, klokkeslæt og gentagelsesindstillinger. Semaphore UI understøtter cron-udtryk og engangskørsler. For eksempel kører 0 2 * * * dagligt kl. 02:00 i planlæggerens konfigurerede tidszone, der som standard er UTC. Begge tilgange kan håndtere sikkerhedskopiering, værtstjek eller nedlukning af ikke-produktionsmaskiner uden for arbejdstiden.

Semaphore UI’s tidsplansdialog med et dagligt cron-udtryk, opgaveskabelon og næste kørselstidspunkt.
Semaphore UI. En cron-tidsplan med opgaveinput og visning af næste kørsel.
AWX’s tidsplansformular med daglig gentagelse, tidszone, slutbetingelser og undtagelser.
AWX. En tidsplan med tidszone, gentagelse, slutbetingelser og undtagelser.

Inventory

Begge produkter kan bruge statiske filer og dynamisk registrering af værter. Den vigtigste forskel er, om registrerede værter bliver poster, platformen administrerer, eller findes af Ansible, når et job køres.

UnderstøttetDelvist understøttetIkke understøttet
Inventory: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Statiske inventories JaINI/YAML-editor og filer JaVærts-/gruppeposter og importerede filer
Git-baserede inventories JaSamme eller separat inventory-repository JaSCM-projektkilder
Dynamiske inventories JaAnsible-plugins og eksekverbare scripts JaPlugins, scripts og styrede kilder
Opdatering af inventory DelvistRegistrering under afvikling JaPlanlagte opdateringer og opdatering ved start
Beregnede inventorygrupper JaAnsible constructed-plugin JaStyrede sammensatte inventories
Styret fact-cache NejAnsible-cache konfigureres separat JaVærtsfakta gemmes i AWX
Redigering af værter og grupper DelvistRedigering af INI/YAML-definitioner JaSærskilt styring af værter og grupper

AWX vedligeholder værts- og gruppeposter og opdaterer dem med inventory-opdateringsjobs ud fra statiske filer, Ansible-inventory-plugins eller eksekverbare scripts. Semaphore UI lader teams redigere INI/YAML-inventories eller indlæse dem fra Git, også fra et særskilt repository. Plugins og scripts finder værterne under udførelsen. Den vigtigste forskel er, om platformen styrer et inventorys livscyklus eller genbruger teamets Ansible-konfiguration.

Semaphore UI’s Ansible-inventory-editor med to staging-webværter defineret i statisk YAML.
Semaphore UI. Et statisk YAML-inventory med værtsgrupper og forbindelsesvariabler.
AWX-inventory med separate staging-værter, deres webgruppe og kontroller til aktivering af hver vært.
AWX. Separate værtsposter med gruppemedlemskab og kontroller pr. vært.

Pluginet netbox.netbox.nb_inventory finder f.eks. enheder og virtuelle maskiner, filtrerer mål og bygger grupper ud fra NetBox-data. NetBox forbliver den autoritative datakilde. AWX tilføjer opdateringskontroller og gemte poster, mens Semaphore UI sender konfigurationen videre til Ansible. Begge bruger Ansible-pluginet frem for en særskilt native NetBox-connector. Andre kilder omfatter AWS, Azure og Google Cloud, og Semaphore UI dokumenterer et Python-script til Consul, der hentes fra Git.

AWX’s konstruerede inventories kombinerer gemte inputinventories og administrerer de resulterende værter. Semaphore UI kan bruge Ansible-pluginet constructed til at bygge grupper og variabler fra tidligere kilder. Ansible-cacheplugins kan gemme facts, men Semaphore UI tilbyder ikke AWX’s administrerede fact-cache. Cachelager, udløb og deling mellem runners er fortsat en del af Ansible-opsætningen.

Semaphore UI planlægger at tilføje Ansible-rapportering i ARA-stil i version 2.21.0. Det vil supplere inventory-funktionerne med en visning af de enkelte værter og deres automatiseringshistorik, så operatører kan se, hvilke opgaver der blev kørt på hver server, hvornår de kørte, og hvor der opstod fejl.

Vælg AWX’s inventorymodel, når operatører skal gennemse, opdatere og administrere værtsposter i platformen. Semaphore UI passer til en opsætning, hvor Git definerer inventory, eller Ansible finder værter fra NetBox og cloud-API’er ved kørsel.

Hemmeligheder

Gemte jobs har brug for legitimationsoplysninger, uden at operatører skal indsætte adgangskoder eller cloud-tokens ved hver start. Lagrings- og opslagsmuligheder bestemmer, hvordan oplysningerne når frem til jobbet.

UnderstøttetDelvist understøttetIkke understøttet
Hemmeligheder: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Opbevaring af legitimationsoplysninger Ja Ja
HashiCorp Vault JaPro Ja
OpenBao JaPro NejIngen indbygget integration, Vault-kompatibilitet skal testes
AWS Secrets Manager JaEnterprise Ja
Azure Key Vault JaEnterprise Ja
Devolutions Server JaEnterprise NejIngen indbygget integration, tilpasset forbindelse er mulig

AWX’s objekter til legitimationsoplysninger og Semaphore UI’s Key Store leverer legitimationsoplysninger til gemte jobs, uden at en operatør skal indsætte dem ved hver start. Begge integrerer med HashiCorp Vault, AWS Secrets Manager og Azure Key Vault, så teams kan fortsætte med at bruge disse tjenester.

Semaphore UI’s Vault-lagringsformular med server-URL, mount, namespace og indstillinger for tokenkilden.
Semaphore UI. Forbindelsesindstillinger til Vault, et mount og en tokenkilde.
AWX’s formular til HashiCorp Vault Secret Lookup-legitimationsoplysninger med forbindelses- og autentificeringsfelter.
AWX. Forbindelses- og autentificeringsfelter til Vault-opslag. Yderligere indstillinger fortsætter neden for det viste område.

Andre integrationer adskiller produkterne. AWX tilbyder CyberArk Central Credential Provider, CyberArk Conjur og tilpassede typer af legitimationsoplysninger. Semaphore UI tilbyder dedikerede integrationer med OpenBao og Devolutions Server. AWX’s Vault-opslag kan virke med en kompatibel tjeneste, men OpenBao-kompatibilitet skal verificeres for den ønskede operation.

Sammenlign integrationen til den vault, teamet allerede bruger, herunder autentificeringsmetoden og de typer hemmeligheder, opgaverne kræver. Tjenester uden indbygget integration kan kræve egen kode til hentning af hemmeligheder.

Afvikling

Et job har brug for afviklingskapacitet, der kan nå målsystemerne. Eksterne afviklingsmaskiner og container-images løser henholdsvis placering i netværket og afhængigheder i kørselsmiljøet.

UnderstøttetDelvist understøttetIkke understøttet
Afvikling: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Ekstern afvikling Ja Ja
Dedikeret afviklingskapacitet JaProProjektrunnere JaInstansgrupper knyttet til ressourcer
Afviklingsrouting JaProRunner-tags på skabeloner eller inventories JaInstansgrupper knyttet til ressourcer
Ansible-roller og -collections JaInstalleres fra requirements.yml JaInstalleres ved projektsynkronisering
Opgaver i containere JaProDocker-executor JaImages til Ansible-afviklingsmiljøer
Kubernetes-pods til opgaver JaEnterprise Ja
Styring af samtidighed JaGrænser for skabelon, projekt og instans JaSamtidige job og instansgruppernes kapacitet

AWX sender arbejde til afviklingsnoder samlet i instansgrupper, som kan knyttes til organisationer, inventories eller skabeloner. Semaphore UI kører jobs på sin server eller sender dem til runners. I begge modeller kan afviklingsmaskinerne placeres tæt på målsystemerne, mens webgrænsefladen forbliver central.

En Semaphore UI-runner i et privat netværk kan opdatere værter eller forny certifikater uden direkte forbindelse fra webserveren. Projektrunners tildeler kapacitet til et projekt, mens tags på skabeloner eller inventories sender jobs til matchende runners. Det understøtter distribuerede lokationer og kundemiljøer. Routing-tags vælger maskiner, men håndhæver ikke isolation mellem netværk eller cloud-konti.

Jobbets kørselsmiljø bestemmer, hvad der kører på maskinerne. AWX bruger images til afviklingsmiljøer med Ansible og dets afhængigheder, og containergrupper kan oprette en Kubernetes-pod pr. job. Semaphore UI tilbyder Docker-udførelse pr. opgave i Pro og Kubernetes-udførelse i Enterprise. Det er uafhængigt af, om selve webtjenesten kører i en container. Begge produkter kan installere Ansible-roller og collections fra requirements-filerne i et repository, mens andre biblioteker og værktøjer skal findes på eksekveringsmaskinen eller i dens image.

Samtidighedskontroller begrænser parallel udførelse. AWX kombinerer indstillinger for samtidige jobs med afviklingskapacitet og grænser for instansgrupper. Semaphore UI anvender grænser pr. instans, projekt og skabelon.

AWX kan også automatisk opdele et stort inventory i parallelle jobs. Semaphore UI kan fordele arbejdet mellem separate kørsler med begrænsning af målværter i Ansible og bruge runner-tags til at vælge afviklingsmaskiner. Teamet vedligeholder selv disse delmængder og starter kørslerne. Ved rullende opdateringer styrer Ansible-indstillingen serial sekventielle batches. Det dækker målrettede kørsler og trinvise udrulninger, mens AWX-slicing automatisk opdeler parallelle kørsler på tværs af hele serverparken.

Workflows

Klargøring kan kræve en plan, godkendelse, udrulning og værtskonfiguration med forskellige forløb ved succes eller fejl. Workflowets opbygning bestemmer, hvordan disse trin forbindes.

UnderstøttetDelvist understøttetIkke understøttet
Workflows: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Visuel editor til workflows Ja Ja
Flere startnoder Nej Ja
Samling af grene Ja Ja
Workflows som trin Nej Ja
Grene for succes og fejl Ja Ja
Godkendelsestrin Ja Ja
Særskilt godkenderrolle NejAnnonceret til 2.21 Ja
Overførsel af værdier i workflows Ja Ja

AWX-workflows forbinder Ansible-jobskabeloner og kalder andre værktøjer gennem playbooks. Semaphore UI forbinder Ansible-, Terraform/OpenTofu-, Terragrunt-, Bash-, PowerShell- og Python-skabeloner direkte. Begge understøtter succes- og fejlgrene samt godkendelser, så en klargøringsproces kan sættes på pause før en produktionsændring.

Begge bruger grafer uden løkker og understøtter all/any-betingelser for forgængere ved sammenføjninger. AWX tillader flere startnoder. Semaphore UI starter fra én node og tilbyder opgave-, godkendelses-, tidsforsinkelses- og annotationsnoder.

AWX kan genbruge et helt workflow inde i et andet og holde en fælles procedure med flere trin samlet ét sted. Det forhindrer rekursiv udførelse og tilbyder trin til opdatering af repositories og inventories. Semaphore UI genbruger enkelte opgaveskabeloner på tværs af workflows, men kan ikke indlejre et workflow som et trin. Forskellen er vigtig, når flere udrulninger deler en hel procedure frem for ét job.

Semaphore UI’s workflow-editor med plan, godkendelse, udrulning og separate succes- og fejlgrene.
Semaphore UI. Et udrulningsworkflow med godkendelse og separate forløb ved succes og fejl.
Den fulde AWX Workflow Visualizer med plan, godkendelse, udrulning, indlejret releaseverifikation og gendannelsesgren.
AWX. Godkendelse før udrulning, et indlejret workflow til verifikation og en fejlgren til gendannelse.

AWX har en godkenderrolle, der kan tildeles særskilt. Administratorer kan også godkende. I Semaphore UI 2.20 følger godkendelse retten til at køre projektopgaver. Hvis et team skal tildele godkendelse uafhængigt af udførelse, er det en væsentlig forskel. En særskilt godkenderrolle er annonceret til Semaphore UI 2.21 og indgår ikke i denne sammenligning.

Begge tilbyder godkendelse via UI og et autentificeret API, og AWX har desuden et Ansible-modul. Interaktiv godkendelse i Slack kræver en integration, der kalder API’et, ikke kun en notifikation.

Begge sender værdier til efterfølgende jobs, f.eks. adressen på en ny vært. AWX eksponerer set_stats-værdier fra playbooks som ekstra variabler til efterfølgende jobs, også på afviklingsnoder. En playbook kan opsamle resultatet fra et andet værktøj på denne måde. Semaphore UI indsamler Ansible set_stats, output fra Terraform/OpenTofu/Terragrunt og JSON fra Bash, PowerShell eller Python og knytter værdierne til destinationsopgavens survey-variabler via matchende navne eller eksplicit mapping.

I Semaphore UI 2.20 virker indsamling af output på serveren og eksterne runners, når de bruger den lokale executor. Docker- og Kubernetes-executors producerer endnu ikke output. Værdier indsamles efter vellykkede opgaver, så fejlgrene kan ikke regne med output fra en mislykket opgave. Værdierne er synlige for dem, der kan se opgaven, og må ikke indeholde hemmeligheder.

Overførsel af værdier flytter ikke filer i nogen af produkterne. Udveksler separate trin en gemt Terraform-plan eller et andet artefakt, skal begge have adgang til samme lager. Genbrug af en runner garanterer ikke, at arbejdsmappen bevares mellem opgaver.

Adgangsstyring

Supportmedarbejdere kan have brug for at genstarte en godkendt tjeneste uden generel serveradgang. Delegering skal afgrænse både operationen og dens målsystemer.

UnderstøttetDelvist understøttetIkke understøttet
Adgangsstyring: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Rollebaseret adgangsstyring JaProjektroller, brugerdefinerede roller i Enterprise JaOrganisations-, team- og ressourceroller
Uafhængige rettigheder til inventories og legitimationsoplysninger NejRessourceadgang følger projektroller Ja
Afviklingsrettigheder på skabelonniveau JaEnterprise Ja
LDAP og OIDC JaPro Ja
SAML-baseret single sign-on NejOIDC er tilgængelig Ja
Tofaktorgodkendelse JaProLokal TOTP JaVia en ekstern identitetsudbyder

AWX tildeler rettigheder uafhængigt til inventories, legitimationsoplysninger og jobskabeloner. Semaphore UI organiserer adgang omkring projekter og tilbyder brugerdefinerede roller og udførelsesrettigheder pr. skabelon i Enterprise til mere præcis delegering. En forudkonfigureret skabelon kan eksponere en godkendt operation med det valgte inventory, legitimationsoplysninger og kørselsindstillinger.

Semaphore UI Enterprise kan f.eks. give supportpersonale adgang til en skabelon til genstart af en tjeneste på bestemte produktionsservere. En Guest-grundrolle sammen med en brugerdefineret rolle uden projektomfattende rettigheder kan give udførelsesadgang til netop denne skabelon. Begræns tilsidesættelser af inventory, værtsafgrænsning, variabler og øvrige startindstillinger, og kontrollér, at andre roller ikke udvider adgangen. Skabelonen, rettighederne og automatiseringen definerer tilsammen den tilladte operation. Inputformularen indsamler kun input.

Det delegerer bestemte operationer uden at indføre uafhængige rettigheder til inventories eller legitimationsoplysninger i et projekt. AWX passer bedre, når operatører skal kombinere ressourcer under separate adgangsregler. Semaphore UI’s skabelonrettigheder passer til et defineret sæt godkendte procedurer.

Begge understøtter LDAP og OIDC til login. AWX understøtter også SAML og bruger en ekstern identitetsudbyder til MFA. Semaphore UI tilbyder lokal TOTP-baseret tofaktorgodkendelse. En identitetsudbyder med OIDC kan dække centraliseret login til Semaphore UI, mens et krav om kun SAML kræver en anden integrationstilgang.

Logning og revision

Joboutput forklarer fejl under udførelsen. Revisionshistorikken viser, hvem der startede en operation eller ændrede dens konfiguration, med forskellige krav til adgang og opbevaring.

UnderstøttetDelvist understøttetIkke understøttet
Logning og revision: AWX og Semaphore UI
Kriterier Semaphore UI AWX
Opgavehistorik og logfiler Ja Ja
Opbevaring af opgavehistorik JaBehold seneste opgaver pr. skabelon JaPlanlagt oprydning efter alder
Revisionshistorik på tværs af projekter JaAdministratorens revisionslog, registrering skal aktiveres JaAktivitetsstrøm, rollebaseret synlighed
Videresendelse til SIEM JaProTLS Syslog og Splunk HEC JaEkstern logning, herunder Splunk

Begge produkter gemmer opgavehistorik og output til fejlfinding. Adgangen til revisionsdata er forskellig. AWX’s aktivitetsstrøm følger ressourcerettigheder og administrator- eller auditorroller. Semaphore UI’s revisionsoversigt på tværs af projekter er tilgængelig for administratorer, og hændelser gemmes i databasen, når revisionsregistrering er aktiveret.

Til centrale undersøgelser videresender AWX’s eksterne logning aktivitets-, job- og serverdata, bl.a. til Splunk. Semaphore UI Pro tilføjer revisionsfiltre, eksport til CSV eller JSONL og videresendelse via TLS Syslog eller Splunk HEC. Begge kan levere hændelser til en logplatform eller et SIEM-system til sikkerhedsinformation og hændelsesstyring.

Lokal opbevaring styres forskelligt. AWX tilbyder planlagt aldersbaseret oprydning af kørselshistorik og aktivitetsstrøm. Semaphore UI beholder et konfigureret antal af de seneste opgaver pr. skabelon. Et centralt logsystem kan opbevare data ud over disse lokale grænser.

Integrationer

Repository-ændringer og anmodninger fra en serviceportal kan udløse automatisering. API’er, webhooks og notifikationer forbinder disse hændelser med jobs og resultater.

UnderstøttetDelvist understøttetIkke understøttet
Integrationer: AWX og Semaphore UI
Kriterier Semaphore UI AWX
REST API Ja Ja
Job-webhooks JaGeneriske endpoints, matchregler, udtræk af værdier JaGitHub- og GitLab-webhooks
Jobnotifikationer Ja Ja

AWX tilbyder indbyggede GitHub- og GitLab-jobwebhooks til automatisering udløst af hændelser i et repository. Semaphore UI tilbyder generiske webhook-endpoints med matchning af anmodninger og udtræk af opgaveinput. De kan modtage hændelser fra forskellige systemer, mens begge produkters REST API’er også understøtter andre klienter.

Til udgående notifikationer tilbyder AWX e-mail, Slack, Rocket.Chat, Mattermost, PagerDuty, AWS SNS, Grafana, IRC, Twilio og webhook-notifikationer. Semaphore UI understøtter e-mail (SMTP), Telegram, Slack, Microsoft Teams, Rocket.Chat, DingTalk og Gotify. De rapporterer jobhændelser til personer eller tjenester, mens indgående jobwebhooks starter automatisering.

En serviceportal eller et ITSM-system kan bruge et af de to REST API’er til at starte et forberedt job og hente resultatet. En intern portal kan for eksempel sende en anmodning om certifikatfornyelse til en gemt skabelon og melde tilbage til anmoderen, når den er færdig. Det er en API-baseret integration, som teamet konfigurerer, frem for en dedikeret native connector.

AI-assisteret automatisering

Begge platforme giver kodeassistenter som Claude Code og Codex nyttigt materiale at arbejde med: offentlig dokumentation, åben kildekode og dokumenterede API’er. En assistent kan bruge konfigurationseksempler, undersøge, hvordan en indstilling er implementeret, og bruge API-definitioner til at udarbejde integrationskode. Med den relevante konfiguration og joboutput kan den også hjælpe med at undersøge fejl. Det gør AI-assisteret opsætning og fejlfinding mulig uden en særlig AI-funktion indbygget i platformen.

Der findes MCP-connectors fra fællesskabet til både AWX og Semaphore UI. Afhængigt af den enkelte connector forbinder de assistenter med platformens operationer, såsom at finde skabeloner, starte jobs og hente resultater. Det lader teamet bruge forberedt automatisering gennem en assistent, mens jobdefinitioner og afvikling forbliver i platformen.

Semaphore UI har annonceret officiel MCP-understøttelse til Pro i version 2.21.0.

Licenser og support

Både AWX og Semaphore UI tilbyder gratis open source-software. Den vigtigste forskel er, hvordan teams kan få kommercielle funktioner, leverandørsupport og kontraktlige forpligtelser, efterhånden som automatisering bliver vigtigere for driften.

Open source og kommercielle muligheder

AWX er licenseret under Apache 2.0 og understøttes af fællesskabet. Det er også et upstream-projekt til automation controller-komponenten i Red Hat Ansible Automation Platform (AAP). Red Hat sælger ikke et supportabonnement til AWX selv. Det kommercielt understøttede tilbud er AAP, en særskilt enterprise-platform, der kombinerer automation controller med yderligere komponenter, certificeret indhold og en defineret produktlivscyklus.

Semaphore UI følger en open-core-model. Community er gratis og MIT-licenseret, mens Pro og Enterprise tilføjer kommercielle funktioner og leverandørsupport inden for samme produktfamilie. Pro er beregnet til mindre tekniske teams, der gør automatisering til en del af den daglige drift. Enterprise dækker mere krævende behov for adgangskontrol, udførelse, tilgængelighed og support.

De kommercielle tilbud dækker derfor forskellige indkøbsbehov. AAP er en bredere investering i en enterprise-platform. Semaphore UI’s kommercielle planer henvender sig til tekniske teams og mellemstore organisationer med en Enterprise-mulighed til komplekse eller forretningskritiske miljøer. Teams kan få avancerede kontroller og leverandørsupport, mens investeringen er fokuseret på den automatiseringstjeneste, de har brug for.

Support og kontraktlige forpligtelser

AWX-brugere kan stille spørgsmål, rapportere fejl og bidrage med rettelser via fællesskabets kanaler. Hjælpen indebærer ikke en leverandørforpligtelse til at svare inden for en bestemt tid eller yde incidentsupport. Et AAP-abonnement giver Red Hat-support til AAP, men udvider ikke dækningen til en eksisterende AWX-installation.

Semaphore UI Community tilbyder ligeledes hjælp efter bedste evne uden en support-SLA. Pro omfatter leverandørsupport i arbejdstiden, mens Enterprise tilbyder tilpassede SLA-muligheder og hjælp til onboarding, konfiguration, opgraderinger og migrering. Kommercielle kunder får dermed en direkte leverandørrelation med supportforpligtelser defineret af den gældende plan og aftale.

Planlægning af releases og vedligeholdelse

AWX oplyser aktuelt, at releases er sat på pause under en omfattende refaktorering. Semaphore UI udgiver fortsat releases og vedligeholder en sikkerhedspolitik, der angiver understøttede versioner. Forskellene har betydning for planlægning af opgraderinger og løbende vedligeholdelse. Gennemgå releasehistorik, sikkerhedspolitikker og opgraderingsvejledning for den version, I vil drive, sammen med eventuelle kontraktlige supportforpligtelser.

Sådan vælger du

Begge platforme lader teams dele automatisering, planlægge jobs og gennemgå resultater. Vælg ud fra, hvordan I administrerer værtsoplysninger, delegerer operationer, driver tjenesten og får support.

Hvornår bør du vælge AWX?

AWX er et godt valg, når Ansible er centralt i jeres automatisering, og modellens ressourcestyring passer til den daglige drift.

  • Administration af inventories gennem platformen er et centralt krav. Jeres operatører bruger platformen til at vedligeholde værts- og gruppeposter, opdatere inventories og gemme værtsfacts som en del af det daglige arbejde.
  • Inventories og legitimationsoplysninger kræver egne adgangsregler. Teamet skal tildele rettigheder til enkelte inventories og legitimationsoplysninger uafhængigt af jobskabeloner, så operatører kun kan kombinere de ressourcer, de har adgang til.
  • Kubernetes passer til jeres eksisterende infrastruktur. Teamet driver allerede en klynge, så AWX’s anbefalede udrulningsmodel passer til de systemer og kompetencer, I vedligeholder.
  • Ansible orkestrerer allerede jeres procedurer. Jeres playbooks dækker de nødvendige operationer, herunder kald til andre værktøjer, og Ansible-afviklingsmiljøer leverer deres afhængigheder.
  • Support fra fællesskabet dækker jeres behov. Teamet har kompetencer og kapacitet til at undersøge hændelser, vurdere sikkerhedsmeddelelser og vedligeholde installationen uden en SLA for leverandørens svartid.

Hvornår bør du vælge Semaphore UI?

Semaphore UI er et godt valg, når I vil have en enkel tjeneste til at køre og dele automatisering på tværs af eksisterende værktøjer og infrastruktur.

  • Jeres inventories ligger allerede i Git eller eksterne systemer. I vil genbruge Ansible-inventorydefinitioner og plugins, der finder værter fra NetBox, cloud-API’er eller andre kilder, når jobs køres.
  • Kolleger har brug for adgang til forberedte operationer. Ingeniører definerer opgaver som udrulninger, genstart af tjenester eller certifikatfornyelser. Andre teammedlemmer starter opgaverne med de nødvendige input, mens inventories og legitimationsoplysninger indgår i den forberedte konfiguration.
  • I vil kunne installere uden Kubernetes. Installation som binærfil, native-pakke eller Docker gør det muligt at bruge en eksisterende server og undgå en klynge indført alene til automatiseringstjenesten.
  • Jeres automatisering omfatter flere værktøjer. Særskilte skabeloner kører Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell og Python direkte, og workflows forbinder operationerne.
  • I ønsker en direkte vej til kommerciel support. Kommercielle licenser tilføjer leverandørsupport og avancerede funktioner inden for samme produktfamilie, så I kan få supportforpligtelser og fortsat bruge Semaphore UI.

Ofte stillede spørgsmål

Kan Semaphore UI erstatte AWX?

Ja, når modellen for inventories, rettigheder og workflows dækker jeres krav. Eksisterende playbooks kan ofte genbruges, mens jobkonfiguration og adgangskontrol skal overføres og testes. Undersøg afhængigheder af AWX-specifikke funktioner, især indlejrede workflows, uafhængige rettigheder til inventories eller legitimationsoplysninger og administreret fact-caching.

Kan jeg genbruge mine eksisterende Ansible-playbooks?

Start med samme repository og playbooks. Konfigurér de nødvendige inventories, legitimationsoplysninger, variabler, collections og kørselsafhængigheder i Semaphore UI, og test derefter repræsentative kørsler. Genbrug af koden importerer ikke automatisk alle AWX-indstillinger.

Hvad skal undersøges ved migrering fra AWX?

Start med ét repræsentativt workflow. Genbrug dets playbooks, hvor det er muligt, og kortlæg derefter inventories, legitimationsoplysninger, variabler, inputformularer, tidsplaner og kørselsafhængigheder. Kontrollér rettigheder, godkendelser, indlejrede workflows og overførsel af værdier eller filer hver for sig. Import kan reducere opsætningsarbejdet, men beviser ikke, at det importerede job opfører sig ens. Test, før produktionsplaner aktiveres.

Hvilke funktioner i Semaphore UI kræver en betalt udgave?

Community dækker den grundlæggende opgavegrænseflade og workflows. Funktioner som projektrunners, Docker-udførelse og integrationer med eksterne vaults starter med Pro. Tilpassede roller, skabelonrettigheder, Kubernetes-opgaveudførelse og høj tilgængelighed kræver Enterprise. Vurdér både den relevante funktion og den nødvendige kapacitet, når I vælger plan.

Kan jeg beholde SAML-baseret enkeltlogon efter migrering?

AWX understøtter SAML direkte. Semaphore UI understøtter LDAP og OIDC, men har ingen native SAML-integration. En identitetsudbyder, der også tilbyder OIDC, kan dække loginbehovet. Kontrollér bruger- og gruppemapping særskilt, da et skift af autentificeringsprotokol ikke genskaber AWX-rettigheder.

Kræver Semaphore UI Kubernetes?

Nej. Installation som binærfil, pakke og Docker er tilgængelig. Kubernetes er en valgfri udrulningsmulighed. Automatiseringsværktøjer og en egnet database er stadig en del af miljøet.

Kan AWX køre Terraform eller bruge HashiCorp Vault?

Ja. Playbooks kan udføre Terraform-kommandoer eller collection-moduler, og AWX understøtter HashiCorp Vault-opslag til legitimationsoplysninger. Semaphore UI tilbyder en anden konfigurationsmodel med særskilte Terraform/OpenTofu-skabeloner og en valgfri HTTP-statebackend i Pro.

Understøtter nogen af platformene fjernudførelse?

Begge kan køre opgaver på eksterne servere. AWX bruger afviklingsnoder samlet i grupper til forskellige teams og arbejdsbelastninger. Semaphore UI bruger runner-agenter. Deres opsætnings- og adgangsmodeller er forskellige.

Var denne artikel nyttig?

Kilder

  1. ARA Records Ansible, “ARA Records Ansible”. URL: https://ara.recordsansible.org/ (tilgået: ).
  2. Semaphore UI, “Semaphore runner output capture and executor limits”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go#L167-L192 (tilgået: ).
  3. Semaphore UI, “Semaphore task dispatch, runner routing, concurrency and remote workflow outputs”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskPool.go (tilgået: ).
  4. Semaphore UI, “Semaphore workflow input mapping model”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Workflow.go#L27-L44 (tilgået: ).
  5. Semaphore UI, “Semaphore task template options and survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Template.go (tilgået: ).
  6. Semaphore UI, “Semaphore NetBox dynamic inventory example”. URL: https://semaphoreui.com/docs/user-guide/inventory/netbox-dynamic-inventory (tilgået: ).
  7. Semaphore UI, “Semaphore Consul inventory script”. URL: https://semaphoreui.com/docs/user-guide/inventory/consul-dynamic-inventory (tilgået: ).
  8. Ansible community, “NetBox Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/netbox/netbox/nb_inventory_inventory.html (tilgået: ).
  9. Ansible community, “AWS EC2 Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/aws_ec2_inventory.html (tilgået: ).
  10. Ansible community, “Azure Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/azure/azcollection/azure_rm_inventory.html (tilgået: ).
  11. Ansible community, “Google Cloud Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_inventory.html (tilgået: ).
  12. Semaphore UI, “Semaphore cloning of inventory repositories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor_inventory.go (tilgået: ).
  13. Semaphore UI, “Semaphore local execution, workflow outputs, inventory paths, host limits and branch overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor.go (tilgået: ).
  14. Semaphore UI, “Semaphore survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/SurveyVars.vue (tilgået: ).
  15. Semaphore UI, “Semaphore survey inputs and task launch form”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/TaskForm.vue (tilgået: ).
  16. Semaphore UI, “What is Semaphore UI?”. URL: https://semaphoreui.com/docs/introduction/what-is-semaphore (tilgået: ).
  17. AWX project, “AWX user guide”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/index.html (tilgået: ).
  18. Semaphore UI, “Semaphore source and MIT license”. URL: https://github.com/semaphoreui/semaphore (tilgået: ).
  19. AWX project, “AWX source and Apache 2.0 license”. URL: https://github.com/ansible/awx (tilgået: ).
  20. Semaphore UI, “Semaphore setup and first run”. URL: https://semaphoreui.com/docs/getting-started (tilgået: ).
  21. Semaphore UI, “Semaphore installation methods and dependencies”. URL: https://semaphoreui.com/docs/admin-guide/installation (tilgået: ).
  22. AWX project, “AWX installation paths”. URL: https://github.com/ansible/awx/blob/24.6.1/INSTALL.md (tilgået: ).
  23. AWX project, “AWX Operator installation”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/installation/basic-install.html (tilgået: ).
  24. Semaphore UI, “Semaphore high availability prerequisites”. URL: https://semaphoreui.com/docs/admin-guide/ha#prerequisites (tilgået: ).
  25. AWX project, “AWX web and task replica scaling”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/user-guide/advanced-configuration/scaling-the-web-and-task-pods-independently.html (tilgået: ).
  26. Semaphore UI, “Semaphore automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (tilgået: ).
  27. Semaphore UI, “Semaphore task templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (tilgået: ).
  28. AWX project, “AWX job templates and surveys”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_templates.html (tilgået: ).
  29. Semaphore UI, “Survey variables”. URL: https://semaphoreui.com/docs/user-guide/task-templates/survey-vars (tilgået: ).
  30. Semaphore UI, “Terraform and OpenTofu in Semaphore”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform (tilgået: ).
  31. Ansible community, “Ansible Terraform module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/community/general/terraform_module.html (tilgået: ).
  32. Semaphore UI, “Semaphore Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (tilgået: ).
  33. Semaphore UI, “Semaphore workflow nodes and approvals”. URL: https://semaphoreui.com/docs/user-guide/workflows (tilgået: ).
  34. Semaphore UI, “Semaphore inventory types and stored resources”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Inventory.go (tilgået: ).
  35. AWX project, “AWX job slicing”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_slices.html (tilgået: ).
  36. Semaphore UI, “Semaphore workflow approval API routes”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/router.go (tilgået: ).
  37. AWX project, “AWX resource, workflow approval and activity-stream access control”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/access.py (tilgået: ).
  38. AWX project, “AWX workflow approval Ansible module”. URL: https://github.com/ansible/awx/blob/24.6.1/awx_collection/plugins/modules/workflow_approval.py (tilgået: ).
  39. AWX project, “AWX workflow branch convergence”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/scheduler/dag_workflow.py#L51-L112 (tilgået: ).
  40. AWX project, “AWX Terraform State inventory source”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/userguide/inventories.rst#L1092-L1121 (tilgået: ).
  41. AWX project, “AWX instance-group capacity limits”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/administration/containers_instance_groups.rst#L247-L263 (tilgået: ).
  42. AWX project, “AWX custom credential types”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/credentials/custom_credential_types.md (tilgået: ).
  43. AWX project, “AWX workflows”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflow_templates.html (tilgået: ).
  44. AWX project, “AWX workflow branching and output variables”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflows.html (tilgået: ).
  45. AWX project, “AWX collection of Ansible workflow variables”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/callback.py#L156-L160 (tilgået: ).
  46. AWX project, “AWX processing of execution-node events”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/receptor.py#L544-L553 (tilgået: ).
  47. AWX project, “AWX inheritance of variables between workflow jobs”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/models/workflow.py#L324-L354 (tilgået: ).
  48. Semaphore UI, “Semaphore global runners”. URL: https://semaphoreui.com/docs/admin-guide/runners/ (tilgået: ).
  49. Semaphore UI, “Semaphore project runners”. URL: https://semaphoreui.com/docs/user-guide/projects/runners (tilgået: ).
  50. AWX project, “AWX execution and hop nodes”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/instances.html (tilgået: ).
  51. AWX project, “AWX execution environments”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/execution_environments.html (tilgået: ).
  52. AWX project, “AWX Kubernetes container groups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/containers_instance_groups.html (tilgået: ).
  53. Semaphore UI, “Semaphore inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (tilgået: ).
  54. AWX project, “AWX inventories”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/inventories.html (tilgået: ).
  55. Semaphore UI, “Semaphore project access”. URL: https://semaphoreui.com/docs/user-guide/projects (tilgået: ).
  56. Semaphore UI, “Semaphore team roles and template-level permissions”. URL: https://semaphoreui.com/docs/user-guide/team#extended-rbac (tilgået: ).
  57. AWX project, “AWX role-based access controls”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/rbac.html (tilgået: ).
  58. Semaphore UI, “Semaphore LDAP and OIDC authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (tilgået: ).
  59. AWX project, “AWX LDAP, OIDC and SAML authentication”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/ent_auth.html (tilgået: ).
  60. Semaphore UI, “Semaphore Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (tilgået: ).
  61. AWX project, “AWX credentials and secret lookups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credentials.html (tilgået: ).
  62. AWX project, “AWX external secret management integrations”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credential_plugins.html (tilgået: ).
  63. Semaphore UI, “Semaphore OpenBao secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/openbao (tilgået: ).
  64. Semaphore UI, “Semaphore Devolutions Server secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/devolutions-server (tilgået: ).
  65. Semaphore UI, “Semaphore webhook integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (tilgået: ).
  66. AWX project, “AWX webhooks”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/webhooks.html (tilgået: ).
  67. Semaphore UI, “Semaphore REST API”. URL: https://semaphoreui.com/api-docs (tilgået: ).
  68. Ansible community, “Ansible command execution”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/command_module.html (tilgået: ).
  69. Ansible community, “Ansible PowerShell module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/windows/win_powershell_module.html (tilgået: ).
  70. Semaphore UI, “Semaphore notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (tilgået: ).
  71. AWX project, “AWX notifications”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/notifications.html (tilgået: ).
  72. Semaphore UI, “Semaphore task history and output”. URL: https://semaphoreui.com/docs/user-guide/tasks (tilgået: ).
  73. Semaphore UI, “Semaphore scheduled tasks”. URL: https://semaphoreui.com/docs/user-guide/schedules (tilgået: ).
  74. AWX project, “AWX activity stream”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/main_menu.html (tilgået: ).
  75. Semaphore UI, “Semaphore Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (tilgået: ).
  76. Red Hat, “Red Hat: AWX and Ansible Automation Platform”. URL: https://www.redhat.com/en/technologies/management/ansible/compare-awx-vs-ansible-automation-platform (tilgået: ).
  77. Red Hat, “Red Hat automation controller, formerly Ansible Tower”. URL: https://www.redhat.com/en/technologies/management/ansible/automation-controller (tilgået: ).
  78. Semaphore UI, “Semaphore stable releases”. URL: https://github.com/semaphoreui/semaphore/releases (tilgået: ).
  79. AWX project, “AWX release history”. URL: https://github.com/ansible/awx/releases (tilgået: ).
  80. Semaphore MCP contributors, “Semaphore MCP connector”. URL: https://github.com/cloin/semaphore-mcp (tilgået: ).
  81. Semaphore MCP contributors, “Semaphore MCP task execution and output”. URL: https://github.com/cloin/semaphore-mcp/blob/72f5b7008f6d560c74e01da9884e6fddbbf68999/src/semaphore_mcp/tools/tasks.py (tilgået: ).
  82. LY Corporation, “AWX MCP connector and compatibility”. URL: https://github.com/lycorp-jp/awx-mcp/tree/fa4d25ffa9e04967e98dc66b219a0481d61ea814 (tilgået: ).
  83. LY Corporation, “AWX MCP job template execution”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/job_templates.py (tilgået: ).
  84. LY Corporation, “AWX MCP job output”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/jobs.py (tilgået: ).
  85. HashiCorp, “Terraform local state backend”. URL: https://developer.hashicorp.com/terraform/language/backend/local (tilgået: ).
  86. HashiCorp, “Terraform state locking”. URL: https://developer.hashicorp.com/terraform/language/state/locking (tilgået: ).
  87. Semaphore UI, “Semaphore variable groups”. URL: https://semaphoreui.com/docs/user-guide/environment (tilgået: ).
  88. Semaphore UI, “Semaphore runner selection and capacity”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/RemoteJob.go (tilgået: ).
  89. Semaphore UI, “Semaphore cron and one-time schedule execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/schedules/SchedulePool.go (tilgået: ).
  90. AWX project, “AWX schedules”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/scheduling.html (tilgået: ).
  91. Ansible community, “Ansible constructed inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/constructed_inventory.html (tilgået: ).
  92. Ansible community, “Ansible cache plugins”. URL: https://docs.ansible.com/projects/ansible/latest/plugins/cache.html (tilgået: ).
  93. Semaphore UI, “View and export the Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log/view (tilgået: ).
  94. Semaphore UI, “Semaphore administrator audit-log access”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/audit_log.go (tilgået: ).
  95. AWX project, “AWX logging and aggregation”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/logging.html (tilgået: ).
  96. Semaphore UI, “Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (tilgået: ).
  97. Semaphore UI, “Ansible role and collection installation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/AnsibleApp.go (tilgået: ).
  98. Semaphore UI, “Task-history cleanup”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/sql/task.go (tilgået: ).
  99. Semaphore UI, “Ansible inventory overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskRunner.go (tilgået: ).
  100. AWX project, “Projects, Ansible Galaxy and collections”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/projects.html#ansible-galaxy-support (tilgået: ).
  101. AWX project, “Management jobs”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/management_jobs.html (tilgået: ).
  102. Semaphore UI, “Terraform plan and apply execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (tilgået: ).
  103. Semaphore UI, “Repository working directories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Repository.go (tilgået: ).
  104. HashiCorp, “Terraform plan command”. URL: https://developer.hashicorp.com/terraform/cli/commands/plan (tilgået: ).
  105. HashiCorp, “Terraform apply command”. URL: https://developer.hashicorp.com/terraform/cli/commands/apply (tilgået: ).
  106. Semaphore UI, “Security policy”. URL: https://github.com/semaphoreui/semaphore/security/policy (tilgået: ).
  107. AWX project, “Security policy”. URL: https://github.com/ansible/awx/security/policy (tilgået: ).
  108. AWX project, “Release status and project overview”. URL: https://github.com/ansible/awx/blob/devel/README.md (tilgået: ).
  109. Semaphore UI, “Semaphore notification channel implementation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/alert.go (tilgået: ).

Sammenligningen er udarbejdet af Semaphore UI-teamet på grundlag af den dokumentation, de repositories og prissider, der er anført ovenfor. Adgangsdato er angivet for hver kilde.