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
| Reitur | Tegund | Skylda / sjálfgefið | Merking |
|---|---|---|---|
name | string | Skylda; 3–100 stafir | Stöðugt innra nafn uppskriftar |
display_name | string eða null | Valfrjálst; 1–100 stafir | Nafn fyrir fólk |
description | string | "" | Ætluð niðurstaða og mörk |
base_image | string | debian-trixie | Dreifing / build mark; notaðu núverandi lista í stjórnborði |
task | string eða null | Valfrjálst | Rekstrarmarkmið |
executor | string eða null | Valfrjálst | Tækni sem framkvæmir verkefnið |
use_case | string | General | Aðal notkunartilvik |
hardware | object | Sjálfgefið hér fyrir neðan | Kröfur um útsetningu |
os | object | Tómur / sjálfgefinn hlutur | OS pakkar, notendur, þjónustur, öryggi, skjáborð, installer og skriftur |
scenarios | array | [] | Prófatopólógíur og markmið |
publish_to | string array | ["local"] | Umbeðnar úttaksstaðsetningar |
delivery | object | {} | Viðbótar lýst afhendingarstilling |
community | boolean | false | Bið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:
| Reitur | Tegund | Tilgangur |
|---|---|---|
features | string array | Skráðir eiginleikaeiningar |
packages | string array | Umbeðnir innfæddir pakkar |
excluded_packages | string array | Pakkar sem verða að vanta eftir útvíkkun eiginleika |
custom_packages | array | Upprunageymslur sem pakkað er í gegnum studda build leið |
package_overrides | array | Skýrar bæta-, fjarlægja- eða skipta-aðgerðir |
extra_repos | string array | Viðbótargeymslur; traust og lyklameðhöndlun þarf enn yfirferð |
services | array | Nefndar þjónustur virkjaðar og stilltar |
users | array | Staðbundnir reikningar og hópar í image |
security | object | Lýst harðnun, dulkóðun, audit, SELinux og fail2ban val |
networking | object | Markmið um tengi og net |
desktop_settings | object | Útlit og hegðun skjáborðs |
branding | object | Auðkenni dreifingar og eignir |
runtime | object | Auðkenni init / þjónustu / pakkaumsýslu |
boot | object | Stikkorða rök og GRUB val |
installer | object | Stilling uppsetningar á disk |
persistence | object | Live varanleiki og svæðisstefna |
integrity | object | Umbeðnar dm-verity, Secure Boot og IMA/EVM stillingar |
file_attachments | array | Áður hlaðnir skrár auðkenndar með file_id |
startup_scripts | array | Takmarkaðar systemd einnota skriftur |
time_zone | string eða null | Tí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
- Staðfestu JSON í gegnum núverandi uppskriftaritil, API eða MCP verkfærið
validate_recipe. - Berðu saman normaliseruðu uppskriftina sem skilað er við upprunalega beiðni.
- Teldu óþekkta reiti sem falla brott galla í uppskrift, ekki velheppnaða stillingu.
- Byggðu aðeins eftir að skýrar kröfur séu lýst.
- 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.