Je eerste build
Deze handleiding maakt, valideert, bouwt en inspecteert één aangepaste image. Een gevalideerd recept is een configuratiecontrole, geen bewijs dat de ISO is gebouwd of dat elk gevraagd gedrag een VM-test heeft doorstaan.
Voordat je begint
- Log in zodat het gesprek en de build aan je account gekoppeld blijven.
- Begin met één besturingssysteem en een kleine set pakketten of services.
- Bepaal welk bewijs zou aantonen dat het verzoek is ingewilligd. Aanwezigheid van pakketten, servicestatus, een luisterende poort en GUI-gedrag zijn verschillende assertions.
Vermijd bij een eerste run credentials en private repository-URL’s in de chat. Voeg secrets later toe via de ondersteunde credential-workflow in plaats van ze in een image te bakken.
1. Formuleer het resultaat en de controles
Voorbeeld:
Build a Debian 13 server image with OpenSSH and curl.
Create a password-locked deploy user in the sudo group.
Verify that the image boots, the deploy user exists, the ssh service is
enabled, and curl is installed. Do not add Docker or a desktop.Expliciete uitsluitingen helpen een bewust minimaal image te onderscheiden van een verzoek dat de planner simpelweg heeft gemist.
2. Bekijk het receptvoorbeeld
Controleer minstens:
base_imagekomt overeen met de gevraagde distributie en release;- gevraagde pakketten staan onder
os.packagesof worden geleverd door een expliciete feature; - gebruikers, groepen, services, netwerk, installer en desktopkeuzes passen bij het verzoek;
scenariosbevatten de controles die je echt nodig hebt;- er is geen ongevraagd pakket, desktop, installer, credential of extern repository toegevoegd.
Vraag wijzigingen in hetzelfde gesprek. Vervolgverzoeken worden toegepast op het actieve recept. Wanneer Validate Recipe wordt gebruikt, bewaart de backend het voorgaande inhoudelijke chatverzoek en blokkeert het recept als expliciete vereisten nog ontbreken; de gegenereerde controlzin mag de intentie van het gesprek niet wissen.
Validatie kan nog steeds een niet-beschikbaar pakket, een upstream-storing, een distro-specifieke buildfout of gedrag zonder test missen. Lees het voorbeeld als een voorgesteld contract.
3. Start de build één keer
Selecteer Start Build op het gevalideerde voorbeeld. Een geslaagde klik maakt een build-ID aan. Bewaar die ID bij het melden van een probleem; die is betrouwbaarder dan alleen een percentage of een screenshot.
Het buildpaneel kan statussen tonen zoals queued, planning, configured, building, finalizing, completed, failed of cancelled. Een build in de wachtrij kan wachten op worker-capaciteit of opstartherstel. Een getoond percentage is een voortgangsprojectie, geen deadline; sommige packaging- en filesystem-stappen duren veel langer dan andere.
Je kunt de build blijven volgen in het live buildpaneel, ook als je de oorspronkelijke chatweergave verlaat. Herladen zou opnieuw moeten verbinden via opgeslagen buildstatus en de event stream. Klik Start Build niet herhaaldelijk, tenzij de UI meldt dat geen build-ID is aangemaakt of de vorige build een terminal state heeft bereikt.
4. Scheid image-afronding van test-afronding
Een image kan klaar zijn voordat de geselecteerde VM-verificatie een terminal state bereikt. Lees beide:
- build status: of een duurzaam artifact is samengesteld en afgerond;
- test status:
not_run,running,passed,failed, oferror; - certification status, indien aanwezig: het resultaat van het geconfigureerde evidence-beleid, geen universele security- of hardwarecertificering.
Open de testdetails. Bevestig dat elke gevraagde assertion tegen de verwachte guest is uitgevoerd en bekijk mislukkingen of overgeslagen controles. Een geslaagde boottest bewijst niet dat een applicatie opent; een pakketrecord bewijst niet dat de service gezond is.
5. Inspecteer en download het artifact
Vergelijk vóór het downloaden het definitieve recept en pakket-/testbewijs met het verzoek. Noteer build-ID, artifactbestandsnaam, grootte en checksum wanneer getoond.
Gebruik de downloadactie van de build pas nadat artifactfinalisatie is voltooid. Het
downloadpakket kan de ISO en gerelateerd bewijs bevatten. Als download retourneert
Failed to create download package, not found, of een andere JSON-fout:
- bevestig dat je bent ingelogd als eigenaar van de build;
- open opnieuw de exacte build in plaats van een oudere gesprekskaart;
- controleer of artifactfinalisatie voltooid is en de ISO wordt vermeld;
- probeer één keer opnieuw;
- rapporteer build-ID, tijdstempel, getoonde build-/test-/finalisatiestatussen en exacte fouttekst.
Bouw niet opnieuw alleen om een ownership- of packagingfout te omzeilen; dat kan nuttige diagnostische state weggooien en een extra buildslot verbruiken.
6. Test de ISO in de bedoelde context
Opstarten in OpenFactory’s VM verifieert alleen de geconfigureerde virtuele omgeving. Voor een installeerbare desktop test je ook het installerpad op een wegwerpschijf. Voor fysieke deployment test je apart firmwaremodus, opslag, graphics, netwerk, suspend, invoerapparaten, updates en recovery op representatieve hardware.
Veelvoorkomende herstelroutes
| Symptoom | Actie |
|---|---|
| Recept valideert maar laat verzoek weg | Niet bouwen; benoem de ontbrekende vereiste expliciet en valideer opnieuw |
| Build staat in de wachtrij | Bewaar de build-ID en controleer queue-/recovery-status; vermijd dubbele starts |
| Voortgang lijkt ongewijzigd | Bekijk de huidige stage en recente logactiviteit voordat je vaststelt dat het vastzit |
| Build mislukt | Lees de eerste causale fout, niet alleen de eindsamenvatting; pas aan of probeer opnieuw pas nadat de oorzaak duidelijk is |
| Tests mislukken | Onderscheid productdefect, assertionfout, guest-bootprobleem en infrastructuurfout |
| Download ontbreekt of is verboden | Bevestig ownersessie, finalisatiestatus en exacte build-ID voordat je opnieuw bouwt |