Daarna onderteken je de modelassertion met een gpg-sleutel. Maak die als volgt aan:
$ snapcraft create-key my-models
Kies een wachtwoordzin om je sleutel mee te versleutelen. En koppel de sleutel dan aan je Ubuntu One-account:
$ snapcraft register-key my-models
Dan moet je nu nog één regel in de modelassertion aanpassen: de timestamp. Dat moet een tijdstip zijn na het aanmaken van je sleutel. Vraag het huidige tijdstip op:
$ date -Iseconds --utc
En vul dit in het json-bestand in.
Onderteken het bestand nu:
$ snap sign -k my-models < theengs-gateway-core22-pi-arm64.json > theengs-gateway-core22-pi-arm64.model
Image bouwen
Met de ondertekende modelassertion in theengs-gateway-core22-pi-arm64.model, een yaml-bestand, kun je nu je aangepaste image bouwen. Installeer daarvoor eerst het programma ubuntu-image:
$ snap install ubuntu-image --classic
En bouw het image met:
$ ubuntu-image snap theengs-gateway-core22-pi-arm64.model
Na enkele minuten is het resultaat te vinden in het bestand pi.img, dat in ons geval 3,5GB groot is. De exacte revisies van elke snap die erin is opgenomen, vind je in het bestand seed.manifest.
Je kunt nu het best het image nog comprimeren met xz:
xz pi.img
Het resultaat is een image van 288MB, dat je eenvoudig met Raspberry Pi Imager naar een microSD-kaart kunt schrijven om je Raspberry Pi van op te starten. Na de netwerkconfiguratie en de configuratie van Theengs Gateway heb je een BLE-naar-MQTT-gateway waarnaar je niet meer hoeft om te kijken. De volledige code voor het aangepaste Ubuntu Core-image met Theengs Gateway is te vinden in de GitHub-repository theengs/gateway-appliance. Met dit stappenplan kun je even eenvoudig een aangepaste versie van Ubuntu Core met andere voorgeïnstalleerde software bouwen.
Conclusie
We hebben hier getoond hoe je een aangepast image van Ubuntu Core met een service kunt aanmaken, maar op dezelfde manier kun je ook een image met een webkiosk bouwen. Dat is gebaseerd op Ubuntu Frame, een fullscreenshell die op Wayland draait.
Ubuntu Core is een besturingssysteem dat je heel wat beheer uit handen neemt. Snaps worden automatisch vier keer per dag bijgewerkt naar de nieuwste versie. Bovendien is het vrij eenvoudig om je eigen aangepaste Ubuntu Core-image te maken. Ook om thuis services op een Raspberry Pi te draaien, is Ubuntu Core een heel geschikt besturingssysteem.