Mosquitto: 2. Het lifecycle-script
Deze documentatie maakt deel uit van de GitHub Actions & GitLab CI-gids. Bekijk de volledige gids hier: Start een echte Mosquitto-service vanuit uw GitHub Actions- of GitLab CI-pipeline, voer uw tests erop uit en ruim deze automatisch weer op.
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt u een volledig beheerde Mosquitto MQTT cloud-omgeving, ontworpen voor betrouwbaarheid en flexibiliteit:
- Onbeperkte berichtendoorvoer en datatransfers, zodat uw workflows nooit tegen kunstmatige limieten aanlopen.
- Onbeperkte apparaat-authenticatie via uw eigen externe API, waardoor onboarding en toegangsbeheer moeiteloos verlopen.
- Geavanceerde ACL's voor gedetailleerde controle over topics, gebruikers en acties.
- Een eigen domeinnaam met ingebouwde HTTPS voor veilige, herkenbare endpoints (bijvoorbeeld: https://mqtt.uw-bedrijf.com).
- Probleemloze updates: verbeteringen of beveiligingspatches toepassen met één klik.
- Consistente prestaties en sterke beveiliging, doordat elke instantie draait op een privé, dedicated infrastructuur.
Versnel uw IoT-projecten en verlaag de operationele last. U kunt binnen enkele minuten beschikken over een veilige, productieklare Mosquitto MQTT cloud hosting-instantie.
Hieronder vindt u een volledig voorbeeldscript dat de volledige levenscyclus van de service beheert. Het laat zien hoe weinig setup er nodig is: slechts een paar commando's. U kunt de kant-en-klare YAML voor uw platform kopiëren uit de secties hieronder.
#!/bin/bash
set -euo pipefail
# STACKHERO_TOKEN wordt geleverd via de CI-secret, de CLI pikt deze automatisch op.
stackName="ci-mosquitto-$$" # Unieke stacknaam voor elke run
serviceStore="mosquitto" # De Mosquitto service store
instance="200" # Pas aan indien nodig (zie stap 3)
region="europe" # Regio-naam (zie stackhero regions-list)
# 1. Installeer de CLI op de runner
curl -fsSL https://www.stackhero.io/install.sh | sh
# 2. Installeer de benodigde client voor smoke testing (jq + curl zijn de basis)
apt-get update && apt-get install -y --no-install-recommends jq curl mosquitto-clients
# 3. Maak een dedicated stack voor deze run
stackId=$(stackhero --format=script stack-create --name="$stackName")
echo "Stack aangemaakt: $stackId"
# 4. Voeg Mosquitto toe en sla het service-id op
serviceId=$(stackhero --format=script service-add \
--stack="$stackId" \
--service-store="$serviceStore" \
--instance="$instance" \
--region="$region")
echo "Service toegevoegd: $serviceId"
# 5. Wacht tot de service actief is (dit kan enkele minuten duren)
stackhero service-wait-for --service="$serviceId"
# 6. Lees de configuratie uit (bevat de gegenereerde inloggegevens)
config=$(stackhero service-configuration-get --service="$serviceId" --format=json)
# 7. Haal de benodigde inloggegevens op
host=$(echo "$config" | jq -r '.configuration.domain')
user=$(echo "$config" | jq -r '.configuration.authenticationUsers[0].login')
password=$(echo "$config" | jq -r '.configuration.authenticationUsers[0].password')
# 8. Smoke test: Publish a test message to a topic.
mosquitto_pub -h "$host" -p 8883 -u "$user" -P "$password" --capath /etc/ssl/certs -t "stackhero/ci" -m "hello"
echo "✅ Mosquitto is bereikbaar vanuit CI."
De teardown-stap, die de service verwijdert, wacht op de verwijdering en verwijdert daarna de stack, wordt behandeld in de platform-specifieke secties hieronder. Deze aanpak zorgt ervoor dat er altijd wordt opgeruimd, zelfs als een smoke test faalt.
Een stack kan alleen verwijderd worden als deze leeg is. Verwijder daarom altijd eerst de service en wacht tot deze verwijderd is, en verwijder daarna de stack. Het
service-wait-for-commando zorgt ervoor dat de service daadwerkelijk draait of verwijderd is voordat u verdergaat, en is dus ook geschikt om te wachten op verwijdering.