Rechenmaschinen/bigbrother: Unterschied zwischen den Versionen

Aus C3MAWiki
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
|Gerät=BigBrother
|Gerät=BigBrother
|Typ=Raspberry Pi
|Typ=Raspberry Pi
|Betriebsystem=Raspbian
|Betriebsystem=Debian
|Hersteller Webseite=http://raspberry.org/
|Hersteller Webseite=virtualbrother
|Bild=RaspberryPiLogo.png
|Bild=RaspberryPiLogo.png
|Besitzer=??
|Besitzer=C3MA
|Wikipedia=[https://de.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi]
}}
}}


== Temp Dateisystem aufm Raspberry ==
= BigBrother =
=== Weitere Dateisystem einhängen ===
Folgende Zeilen in '''/etc/fstab''' anhängen:
<pre>
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
</pre>


=== Quelle ===
Virtuelle Machine auf [[Rechenmaschinen/virtualbrother]]
* [Expand the Life of a SDCard
http://www.zdnet.com/article/raspberry-pi-extending-the-life-of-the-sd-card/]


== System ==
== System ==
Zeile 29: Zeile 16:
IP-Adresse auf folgendes setzen:
IP-Adresse auf folgendes setzen:
<pre>
<pre>
auto eth0
auto ens18
#allow-hotplug eth0
iface ens18 inet static
#iface eth0 inet manual
iface eth0 inet static
address 10.23.42.10
address 10.23.42.10
netmask 255.255.254.0
netmask 255.255.254.0
Zeile 45: Zeile 30:
=== Bridge ===
=== Bridge ===
Mit einer '''Brücke''' werden alle Informationen auf einen Server in unserer Internet-Infrastruktur gespiegelt.
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''
<pre>
# This file is generated by /var/lib/dpkg/info/screen.postinst upon package configuration
d /data/ramdisk/mosquitto 0755 pi pi
</pre>


==== Konfiguration ====
==== Konfiguration ====
Zeile 61: Zeile 40:
remote_username $SUPER_GEHEIMER_BENUTZER
remote_username $SUPER_GEHEIMER_BENUTZER
remote_password $SUPER_GEHEIMES_PASSWORT
remote_password $SUPER_GEHEIMES_PASSWORT
#bridge_cafile /etc/ssl/certs/ca-certificates.crt
bridge_cafile /tmp/mosquitto/ca-certificates.crt
bridge_cafile /data/ramdisk/mosquitto/ca-certificates.crt
bridge_insecure false
bridge_insecure false
</pre>
</pre>
Zeile 70: Zeile 48:
Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:
Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:
<pre>ExecStartPre=/home/pi/admin/updateSSLmqtt.sh</pre>
<pre>ExecStartPre=/home/pi/admin/updateSSLmqtt.sh</pre>
Siehe nächstes Kapitel.
 
Die ganze Datei ''/etc/systemd/system/mosquitto.service'' sieht folgendermaßen aus:
<pre>
<pre>
[Unit]
systemctrl edit mosquitto.service
Description=Mosquitto MQTT Broker
</pre>
Documentation=man:mosquitto.conf(5) man:mosquitto(8)
Requires=systemd-tmpfiles-setup.service
After=network.target
Wants=network.target


Und folgendes hinzufügen
<pre>
### Anything between here and the comment below will become the new contents of the file
[Service]
[Service]
Type=simple
ExecStartPre=/home/c3ma/admin/updateSSLmqtt.sh
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]
### Lines below this comment will be discarded
WantedBy=multi-user.target
</pre>
</pre>
==== Zertifikat ====
==== Zertifikat ====
<pre>
<pre>
Zeile 139: Zeile 106:
* rrdtool
* rrdtool


Der Raumstatus ist unter '''/home/pi/raumdaemon/''' zu finden.
Der Raumstatus ist unter '''/home/c3ma/raumdaemon/''' zu finden.
Um auf die Temperatur zuzugreifen muss '''query-rs485''' installiert werden.
Um auf die Temperatur zuzugreifen muss '''query-rs485''' installiert werden (siehe '''/home/c3ma/query-rs485''').
 
 
==== Rechte ====
 
<pre>
/sbin/usermod -a -G dialout c3ma
</pre>
 
==== Dienst ====
In cron '''installieren''' und alle 3 Minuten für neue Werte sorgen:
 
<pre>
*/3 * * * * cd /home/c3ma/raumdaemon/ && ./raumstatus_update.sh &> /dev/null
</pre>

Aktuelle Version vom 12. Juli 2023, 20:33 Uhr

BigBrother
Typ Raspberry Pi
Betriebsystem Debian
Zubehör keines
Hersteller Webseite virtualbrother
Wikipedia unbekannt
Besitzer C3MA


BigBrother

Virtuelle Machine auf Rechenmaschinen/virtualbrother

System

Netzwerk Schnittstelle

IP-Adresse auf folgendes setzen:

auto ens18
iface ens18 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.

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 /tmp/mosquitto/ca-certificates.crt
bridge_insecure false


Service

Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:

ExecStartPre=/home/pi/admin/updateSSLmqtt.sh
systemctrl edit mosquitto.service

Und folgendes hinzufügen

### Anything between here and the comment below will become the new contents of the file
[Service]
ExecStartPre=/home/c3ma/admin/updateSSLmqtt.sh

### Lines below this comment will be discarded

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/c3ma/raumdaemon/ zu finden. Um auf die Temperatur zuzugreifen muss query-rs485 installiert werden (siehe /home/c3ma/query-rs485).


Rechte

/sbin/usermod -a -G dialout c3ma

Dienst

In cron installieren und alle 3 Minuten für neue Werte sorgen:

*/3 *	* * *	cd /home/c3ma/raumdaemon/ && ./raumstatus_update.sh &> /dev/null