BigBrother | ||
---|---|---|
Typ | Raspberry Pi | |
Betriebsystem | Raspbian | |
Zubehör | keines | |
Hersteller Webseite | http://raspberry.org/ | |
Wikipedia | Raspberry Pi | |
Besitzer | ?? |
Temp Dateisystem aufm Raspberry
Weitere Dateisystem einhängen
Folgende Zeilen in /etc/fstab anhängen:
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=50m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=50m 0 0 tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
Quelle
- [Expand the Life of a SDCard
http://www.zdnet.com/article/raspberry-pi-extending-the-life-of-the-sd-card/]
System
Netzwerk Schnittstelle
IP-Adresse auf folgendes setzen:
auto eth0 #allow-hotplug eth0 #iface eth0 inet manual iface eth0 inet static address 10.23.42.10 netmask 255.255.254.0 gateway 10.23.42.1
Dienste
Mosqiutto
Folgender Anleitung folgen: http://mosquitto.org/2013/01/mosquitto-debian-repository/
Bridge
Mit einer Brücke werden alle Informationen auf einen Server in unserer Internet-Infrastruktur gespiegelt.
Ordner im RAM-Dateisystem
Datei: /etc/tmpfiles.d/mosquitto.conf
# This file is generated by /var/lib/dpkg/info/screen.postinst upon package configuration d /data/ramdisk/mosquitto 0755 pi pi
Konfiguration
Datei: /etc/mosquitto/conf.d/bridge.conf
connection bridge-c3ma-room address $SERVER_DNS_NAME topic /# out cleansession true remote_username $SUPER_GEHEIMER_BENUTZER remote_password $SUPER_GEHEIMES_PASSWORT #bridge_cafile /etc/ssl/certs/ca-certificates.crt bridge_cafile /data/ramdisk/mosquitto/ca-certificates.crt bridge_insecure false
Service
Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:
ExecStartPre=/home/pi/admin/updateSSLmqtt.sh
Siehe nächstes Kapitel. Die ganze Datei /etc/systemd/system/mosquitto.service sieht folgendermaßen aus:
[Unit] Description=Mosquitto MQTT Broker Documentation=man:mosquitto.conf(5) man:mosquitto(8) Requires=systemd-tmpfiles-setup.service After=network.target Wants=network.target [Service] Type=simple NotifyAccess=main ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto ExecStartPre=/bin/chown mosquitto /var/log/mosquitto ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto ExecStartPre=/bin/chown mosquitto /run/mosquitto ExecStartPre=/home/pi/admin/updateSSLmqtt.sh [Install] WantedBy=multi-user.target
Zertifikat
#!/bin/bash tmpRamDisk=/data/ramdisk/mosquitto /bin/echo "Update Certificate $(date)" > $tmpRamDisk/SSLmqtt.log /bin/echo -n | openssl s_client -connect $SERVER_DNS_NAME:443 2>> $tmpRamDisk/SSLmqtt.log | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $tmpRamDisk/cert.pem while [ $(date +%Y) -lt 2022 ]; do sleep 5 echo "Year is $(date +%Y)" >> $tmpRamDisk/SSLmqtt.log done /usr/bin/wget --quiet -O $tmpRamDisk/lets-encrypt.pem https://letsencrypt.org/certs/lets-encrypt-r3.pem >> $tmpRamDisk/SSLmqtt.log /usr/bin/wget --quiet -O $tmpRamDisk/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem >> $tmpRamDisk/SSLmqtt.log # https://serverfault.com/questions/476576/how-to-combine-various-certificates-into-single-pem /bin/cat $tmpRamDisk/cert.pem $tmpRamDisk/lets-encrypt.pem $tmpRamDisk/isrgrootx1.pem > $tmpRamDisk/ca-certificates.crt exit 0
Webserver
- nginx
Folgenden Teil der ConfigurationsDatei aktualisieren:
server { listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /tmp/www;
Der Log-Ordner muss bei jedem Start im Temp-Dateisystem angelegt werden. Dazu folgende Zeilen in /etc/rc.local einfügen: (Vor dem exit 0)
mkdir /var/log/nginx/ chown www-data /var/log/nginx/
Raum Status
Der Raumstatus besteht aus Bash-Skripten. Diese bnötigen folgende Pakete:
- mosquitto-clients
- rrdtool
Der Raumstatus ist unter /home/pi/raumdaemon/ zu finden. Um auf die Temperatur zuzugreifen muss query-rs485 installiert werden.