Skip to Content
ReferenceUppskráarskema

Uppskráarskema

OpenFactory uppskriftir nota snake_case JSON. Kanóní snið hefur lítinn efsta lag umslag, os hlut fyrir stýrikerfisstillingar og scenarios fylki fyrir staðfestingu eftir build.

Staðfesting sýnir að þekktum reitum fylgi viðunandi form. Hún sýnir ekki að hvert pakki sé til, að allri umbeðinni hegðun hafi verið lýst, eða að image og próf takist. Óþekktir reitir mega verða hunsaðir fyrir bakvirka samhæfni, skoðaðu því alltaf normaliseruðu uppskriftina sem varan skilar.

Kanóní umslag

{ "name": "debian-web-check", "display_name": "Debian Web Check", "description": "Small Debian image with explicit smoke tests.", "base_image": "debian-trixie", "use_case": "Server evaluation", "hardware": {}, "os": {}, "scenarios": [], "publish_to": ["local"] }

Notaðu ekki camelCase reiti eins og baseImage eða startupScripts. Samhæfisstaðfesting tekur við sumum eldri flötum uppskriftum, en normaliseruð úttak setur OS reiti undir os. Nýjar samþættingar ættu að senda kanóní snið.

Reitir á efsta lagi

ReiturTegundSkylda / sjálfgefiðMerking
namestringSkylda; 3–100 stafirStöðugt innra nafn uppskriftar
display_namestring eða nullValfrjálst; 1–100 stafirNafn fyrir fólk
descriptionstring""Ætluð niðurstaða og mörk
base_imagestringdebian-trixieDreifing / build mark; notaðu núverandi lista í stjórnborði
taskstring eða nullValfrjálstRekstrarmarkmið
executorstring eða nullValfrjálstTækni sem framkvæmir verkefnið
use_casestringGeneralAðal notkunartilvik
hardwareobjectSjálfgefið hér fyrir neðanKröfur um útsetningu
osobjectTómur / sjálfgefinn hluturOS pakkar, notendur, þjónustur, öryggi, skjáborð, installer og skriftur
scenariosarray[]Prófatopólógíur og markmið
publish_tostring array["local"]Umbeðnar úttaksstaðsetningar
deliveryobject{}Viðbótar lýst afhendingarstilling
communitybooleanfalseBiðja um sýnileika á community marketplace; birtingarstefna gildir enn

Ítarlegir markmiðssértækir reitir eru fyrir endurvinnslu frá upprunalegu ISO, Proxmox gesta payload, uppruna policy og delivery samþættingar. Notaðu ritil eða API samning útgáfu í rekstri í stað þess að afrita gamalt dæmi.

Hardware

{ "hardware": { "platform": "pc", "architecture": "x86_64", "gpu": null, "min_cpu_cores": 2, "min_memory_gb": 4, "min_storage_gb": 16, "nic_count": 1 } }

platform er pc, phone eða raspberry_pi; studd gildi tækis eru markmiðssértæk. architecture er x86_64 eða aarch64. GPU gildi nefna studda birgja eða samsetningu. Þetta eru lýstar kröfur, ekki sönnun fyrir að myndað image hafi verið prófað á samsvarandi líkamlegum vélbúnaði.

OS hlutur

Algengir os reitir:

ReiturTegundTilgangur
featuresstring arraySkráðir eiginleikaeiningar
packagesstring arrayUmbeðnir innfæddir pakkar
excluded_packagesstring arrayPakkar sem verða að vanta eftir útvíkkun eiginleika
custom_packagesarrayUpprunageymslur sem pakkað er í gegnum studda build leið
package_overridesarraySkýrar bæta-, fjarlægja- eða skipta-aðgerðir
extra_reposstring arrayViðbótargeymslur; traust og lyklameðhöndlun þarf enn yfirferð
servicesarrayNefndar þjónustur virkjaðar og stilltar
usersarrayStaðbundnir reikningar og hópar í image
securityobjectLýst harðnun, dulkóðun, audit, SELinux og fail2ban val
networkingobjectMarkmið um tengi og net
desktop_settingsobjectÚtlit og hegðun skjáborðs
brandingobjectAuðkenni dreifingar og eignir
runtimeobjectAuðkenni init / þjónustu / pakkaumsýslu
bootobjectStikkorða rök og GRUB val
installerobjectStilling uppsetningar á disk
persistenceobjectLive varanleiki og svæðisstefna
integrityobjectUmbeðnar dm-verity, Secure Boot og IMA/EVM stillingar
file_attachmentsarrayÁður hlaðnir skrár auðkenndar með file_id
startup_scriptsarrayTakmarkaðar systemd einnota skriftur
time_zonestring eða nullTímabeltisstilling image

Til staðar integrity eða security reits er stillingarmarkmið. Það er ekki sönnun fyrir að kerfið hafi verið búið til, framfylgt í keyrslu eða hæft fyrir samræmisreglur. Krefstu samsvarandi build og prófsönnunar.

Users

{ "os": { "users": [ { "username": "deploy", "full_name": "Deployment Operator", "groups": ["sudo"], "shell": "/bin/bash" } ] } }

Notenda- og hópanöfn takmarkast við örugg stafsetningu Linux reikninga og lengd. Ef password er ekki sett verður reikningur með læstum lykilorði fyrir aðeins lykla eða credentials við útsetningu. Forðastu credentials í hreinum texta í vistuðum uppskriftum.

Services

{ "os": { "services": [ { "name": "ssh", "enabled": true, "config": { "port": 22, "disable_password_auth": true } } ] } }

config er þjónustusértækt. Málskipanargilt lykill getur samt verið hunsaður af myndara sem útfærir hann ekki. Athugaðu normaliseruðu uppskriftina, myndaða stillingu og hegðun gesta.

Security and Installer

{ "os": { "security": { "hardening_level": "standard", "disk_encryption": false, "audit_logging": true, "selinux": false, "fail2ban": true }, "installer": { "enabled": false, "type": "calamares", "desktop_launcher": true, "bootloader": "grub", "delivery": [], "user_setup": "build_time" } } }

Tegundir installer fara eftir markmiði (calamares, anaconda eða elster-mobile). Eftir að virkja installer þarf einnota próf með disk sem henda má; tákn á live skjáborði sannar ekki að uppsetning virki.

Startup Scripts

{ "os": { "startup_scripts": [ { "name": "write-build-marker", "description": "Create a local marker after networking is available.", "command": "install -m 0644 /dev/null /var/lib/example-ready", "packages": [], "run_as": "root", "after": "network.target" } ] } }

Að hámarki 32 startup_scripts eru tekin gild. Skipanir verða að vera ótómar og mega ekki innihalda NUL bæti. Meðhöndlaðu þær sem shell kóða með root réttindi nema run_as segji annað; farðu yfir idempotency, gæsalappir, netbilun og birtingu leyndarmála.

Scenarios and Assertions

{ "scenarios": [ { "id": "primary-smoke", "name": "Primary image smoke test", "enabled": true, "tests": ["boot", "login", "packages"], "custom_tests": [ { "description": "Confirm SSH is enabled on the configured port.", "assertions": [ { "type": "service_enabled", "description": "The SSH service starts at boot.", "params": {"service": "ssh"} }, { "type": "port_listening", "description": "The guest listens on TCP port 22.", "params": {"port": 22} } ] } ] } ] }

Atriði getur einnig skilgreint topology með VM og netum, próf í benchmark sniði og CIS stillingar. Ef topólógía vantar er sjálfgefið venjulega leið með einu VM. Assertions þurfa lýsingu sem fólk getur lesið og params eftir tegund. Óþekktar assertion tegundir geta lifað af skemaþáttun, staðfestu því að runner styðji þær áður en þú telur þær sönnun.

Heilt lágmarksdæmi

{ "name": "debian-web-check", "display_name": "Debian Web Check", "description": "Debian image with SSH, curl, and explicit smoke tests.", "base_image": "debian-trixie", "use_case": "Server evaluation", "hardware": { "platform": "pc", "architecture": "x86_64", "min_cpu_cores": 2, "min_memory_gb": 4, "min_storage_gb": 16, "nic_count": 1 }, "os": { "features": ["ssh"], "packages": ["curl"], "users": [ { "username": "deploy", "groups": ["sudo"], "shell": "/bin/bash" } ], "services": [ { "name": "ssh", "enabled": true, "config": {"port": 22, "disable_password_auth": true} } ], "security": { "hardening_level": "standard", "audit_logging": true }, "installer": {"enabled": false} }, "scenarios": [ { "id": "primary-smoke", "name": "Primary image smoke test", "enabled": true, "tests": ["boot", "login", "packages"] } ], "publish_to": ["local"] }

Staðfestingarflæði

  1. Staðfestu JSON í gegnum núverandi uppskriftaritil, API eða MCP verkfærið validate_recipe.
  2. Berðu saman normaliseruðu uppskriftina sem skilað er við upprunalega beiðni.
  3. Teldu óþekkta reiti sem falla brott galla í uppskrift, ekki velheppnaða stillingu.
  4. Byggðu aðeins eftir að skýrar kröfur séu lýst.
  5. Skoðaðu myndaða sönnun og keyrðu assertions gegn myndaða gesti.

Sjá Your First Build fyrir leiðbeiningar um bilun og endurheimt niðurhals.