Add Azure IoT Edge install script and README
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+80
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Installeert Docker (moby-engine) en Azure IoT Edge op een Debian/Ubuntu VM
|
||||
# en koppelt het device aan de IoT Hub.
|
||||
#
|
||||
# Gebruik:
|
||||
# sudo ./install.sh <DEVICE_ID> <SHARED_ACCESS_KEY>
|
||||
#
|
||||
# Optioneel (environment variabele):
|
||||
# IOT_HUB_HOSTNAME IoT Hub hostname (standaard: iot-shared-v6odheqozqccs-prod.azure-devices.net)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
IOT_HUB_HOSTNAME="${IOT_HUB_HOSTNAME:-iot-shared-v6odheqozqccs-prod.azure-devices.net}"
|
||||
|
||||
log() { echo -e "\n\033[1;34m==> $*\033[0m"; }
|
||||
fail() { echo -e "\033[1;31mFOUT: $*\033[0m" >&2; exit 1; }
|
||||
|
||||
usage() {
|
||||
echo "Gebruik: sudo $0 <DEVICE_ID> <SHARED_ACCESS_KEY>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# --- Controles -------------------------------------------------------------
|
||||
|
||||
[[ $# -eq 2 ]] || usage
|
||||
DEVICE_ID="$1"
|
||||
SHARED_ACCESS_KEY="$2"
|
||||
|
||||
[[ $EUID -eq 0 ]] || fail "Dit script moet als root draaien. Gebruik: sudo $0 ..."
|
||||
|
||||
[[ -r /etc/os-release ]] || fail "/etc/os-release niet gevonden; onbekend besturingssysteem."
|
||||
# shellcheck disable=SC1091
|
||||
. /etc/os-release
|
||||
case "${ID}" in
|
||||
debian|ubuntu) ;;
|
||||
*) fail "Niet ondersteund OS: ${ID}. Alleen Debian en Ubuntu worden ondersteund." ;;
|
||||
esac
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# --- 1. Microsoft package repository ---------------------------------------
|
||||
|
||||
log "Microsoft package repository toevoegen (${ID} ${VERSION_ID})"
|
||||
apt-get update
|
||||
apt-get install -y curl ca-certificates
|
||||
|
||||
TMP_DEB="$(mktemp --suffix=.deb)"
|
||||
trap 'rm -f "$TMP_DEB"' EXIT
|
||||
curl -fsSL "https://packages.microsoft.com/config/${ID}/${VERSION_ID}/packages-microsoft-prod.deb" -o "$TMP_DEB" \
|
||||
|| fail "Kon packages-microsoft-prod.deb niet downloaden voor ${ID} ${VERSION_ID}."
|
||||
apt-get install -y "$TMP_DEB"
|
||||
apt-get update
|
||||
|
||||
# --- 2. Container engine ----------------------------------------------------
|
||||
|
||||
log "moby-engine installeren"
|
||||
apt-get install -y moby-engine
|
||||
|
||||
log "Docker logging configureren (log-driver: local)"
|
||||
mkdir -p /etc/docker
|
||||
echo '{"log-driver": "local"}' > /etc/docker/daemon.json
|
||||
systemctl restart docker
|
||||
|
||||
# --- 3. Azure IoT Edge ------------------------------------------------------
|
||||
|
||||
log "aziot-edge installeren"
|
||||
apt-get install -y aziot-edge
|
||||
|
||||
log "IoT Edge configureren voor device '${DEVICE_ID}'"
|
||||
iotedge config mp --force --connection-string \
|
||||
"HostName=${IOT_HUB_HOSTNAME};DeviceId=${DEVICE_ID};SharedAccessKey=${SHARED_ACCESS_KEY}"
|
||||
iotedge config apply -c /etc/aziot/config.toml
|
||||
|
||||
# --- 4. Controle ------------------------------------------------------------
|
||||
|
||||
log "Installatie voltooid. Status:"
|
||||
iotedge system status || true
|
||||
echo
|
||||
echo "Controleer de verbinding met: sudo iotedge check"
|
||||
Reference in New Issue
Block a user