Utvecklingsarbetsstation
Den här guiden bygger en Ubuntu 24.04 GNOME-arbetsstation med ett konservativt verktygsset och explicita smoke tests. Språk- och editorversioner följer valda paketkällor om du inte låser och granskar en annan källa.
Prompt
Create an Ubuntu 24.04 GNOME development workstation with a dark color
scheme, SSH, Docker, Git, Python, Node.js, curl, jq, tmux, htop, and Neovim.
Create a locked-password user named dev with sudo and Docker group intent.
Do not add third-party repositories unless their HTTPS URL, signing key,
release support, and license are explicit. Add tests for the desktop session,
tool versions, Docker service, group membership, and one container smoke test.Granska receptet
{
"name": "ubuntu24-development-workstation",
"base_image": "ubuntu-24.04",
"os": {
"features": ["desktop", "ssh", "docker", "git", "python", "nodejs"],
"packages": ["curl", "jq", "tmux", "htop", "neovim"],
"users": [
{
"username": "dev",
"groups": ["sudo", "docker"],
"shell": "/bin/bash"
}
],
"desktop_settings": {
"color_scheme": "prefer-dark",
"fonts": {
"monospace_font": "Ubuntu Mono 13"
},
"power": {
"idle_delay": 600,
"sleep_inactive_ac_timeout": 0,
"sleep_inactive_ac_type": "nothing"
}
}
}
}Bekräfta att varje feature expanderar på Ubuntu 24.04 som förväntat. Medlemskap i gruppen docker är ofta root-ekvivalent eftersom det kan styra Docker-daemonen; ta bort det om användaren inte ska ha den behörigheten.
Versioner och källor
Be inte om «latest» på en kontrollerad arbetsstation. Dokumentera versionerna som faktiskt finns i vald snapshot och testa de versionerna. Ett vendor-repository eller bootstrap-installerare lägger till en separat trust root och uppdateringslivscykel; använd det först efter granskning av nyckel, repository-metadata, villkor och rollback-beteende.
Verktyg som Rustup, språkversionshanterare, editortillägg och containerimages kan ladda ned rörlig kod efter att imagen byggts. Om de spelar roll för arbetsstationens baseline, lås dem och ta med proveniens i evidence packet.
Verifieringsscenario
{
"id": "development-smoke",
"name": "Development workstation smoke test",
"enabled": true,
"tests": ["boot", "login", "packages", "services"],
"custom_tests": [
{
"description": "Confirm core tools and Docker are usable.",
"assertions": [
{
"type": "command_succeeds",
"description": "Python reports a version.",
"params": {"command": "python3 --version"}
},
{
"type": "command_succeeds",
"description": "Node.js reports a version.",
"params": {"command": "node --version"}
},
{
"type": "service_running",
"description": "The Docker daemon is running.",
"params": {"service": "docker"}
},
{
"type": "user_in_group",
"description": "The dev account has the reviewed Docker authority.",
"params": {"username": "dev", "group": "docker"}
}
]
}
]
}Lägg till ett GUI-assertion för varje grafisk editor du faktiskt installerar. En paketkontroll upptäcker inte trasig första start, licensdialog, saknad displayintegration eller fel standarddesktop.
Testa slutligen inloggning med godkänd enrollment- eller SSH-nyckelväg; receptet innehåller medvetet inget lösenord.