Rechenmaschinen/bigbrother: Unterschied zwischen den Versionen

Aus C3MAWiki
(Bigbrother)
 
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Temp Dateisystem aufm Raspberry ==
{{Rechenmaschinen
=== Weitere Dateisystem einhängen ===
|Gerät=BigBrother
Folgende Zeilen in '''/etc/fstab''' anhängen:
|Typ=Raspberry Pi
<pre>
|Betriebsystem=Debian
tmpfs    /tmp    tmpfs    defaults,noatime,nosuid,size=50m    0 0
|Hersteller Webseite=virtualbrother
tmpfs    /var/tmp    tmpfs    defaults,noatime,nosuid,size=30m    0 0
|Bild=RaspberryPiLogo.png
tmpfs    /var/log    tmpfs    defaults,noatime,nosuid,mode=0755,size=50m
|Besitzer=C3MA
  0 0
}}
tmpfs    /var/run    tmpfs    defaults,noatime,nosuid,mode=0755,size=2m
 
  0 0
= BigBrother =
</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 19: 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 32: Zeile 27:
Folgender Anleitung folgen:
Folgender Anleitung folgen:
http://mosquitto.org/2013/01/mosquitto-debian-repository/
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''
<pre>
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
</pre>
==== Service ====
Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:
<pre>ExecStartPre=/home/pi/admin/updateSSLmqtt.sh</pre>
<pre>
systemctrl edit mosquitto.service
</pre>
Und folgendes hinzufügen
<pre>
### 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
</pre>
==== Zertifikat ====
<pre>
#!/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
</pre>


=== Webserver ===
=== Webserver ===
Zeile 45: Zeile 93:
</pre>
</pre>


Log Ordner Aktua/lisieren:
Der Log-Ordner muss bei jedem Start im Temp-Dateisystem angelegt werden.
'''/etc/nginx/nginx.conf'''
Dazu folgende Zeilen in '''/etc/rc.local''' einfügen: (Vor dem ''exit 0'')
 
Die beiden Pfad anpassen:
<pre>
<pre>
        access_log /var/log/nginx/access.log;
mkdir /var/log/nginx/
        error_log /var/log/nginx/error.log;
chown www-data /var/log/nginx/
</pre>
Zu:
<pre>
        error_log /var/log/nginx_error.log;
        access_log /var/log/nginx_access.log;
 
</pre>
</pre>


Zeile 66: 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