|
|
||
|---|---|---|
| ansible | ||
| .gitignore | ||
| README.md | ||
README.md
mini-beieli-server - Bienenstock Ueberwachung
Code zum Erstellen des Servers
Spezifikaktion:
- CentOS 8
- Hetzner Cloud Server
- nginx Webserver/Proxy
- mini-beieli-web (Webapplikation/Golang)
- lorahandler (Webapplikation/Golang)
- Redis
- InfluxDB
Erstellen des Servers
Mit dem Binary hcloud von: https://github.com/hetznercloud/cli
Temporaer einen API Key erstellen (nachher wieder loeschen)
$ hcloud context create mini-beieli-server # evtl. zuerst: hcloud context delete mini-beieli-server
$ hcloud image list # zeigt moegliche Images
$ hcloud server-type list # zeigt moegliche Typen
$ hcloud server create --name mb1 --image centos-8 --type cx11 --ssh-key joerg@cinnamon.nbit.ch
$ hcloud server set-rdns mb1 --hostname mb1.nbit.ch
$ IPV6="$(hcloud server ip mb1 -6)"
$ hcloud server set-rdns mb1 --ip $IPV6 --hostname mb1.nbit.ch
DNS Eintraege erstellen:
$ hcloud server ip mb1
$ hcloud server ip mb1 -6
Root-Passwort setzen (das machen wir von Hand)
Ansible Playbook laufen lassen
$ cd ansible
$ ansible-playbook -i production mini-beieli-server.yml --limit mb1.mini-beieli.ch # or mb2.mini-beieli.ch
Mailzugang muss auf mail.nbit.ch noch gegeben werden (main.cf)!
Root-Passwort setzen (das machen wir von Hand)
# yum update
Let's Encrypt Zertifikat einrichten
# curl https://get.acme.sh | sh -s email=info@nbit.ch
# systemctl stop nginx
# acme.sh --issue --standalone -d mini-beieli.ch -d www.mini-beieli.ch -w /home/beieli/mini-beieli-web --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" # --staging zum Testen
[Sa Feb 27 17:27:34 CET 2021] Your cert is in /root/.acme.sh/mini-beieli.ch/mini-beieli.ch.cer
[Sa Feb 27 17:27:34 CET 2021] Your cert key is in /root/.acme.sh/mini-beieli.ch/mini-beieli.ch.key
[Sa Feb 27 17:27:34 CET 2021] The intermediate CA cert is in /root/.acme.sh/mini-beieli.ch/ca.cer
[Sa Feb 27 17:27:34 CET 2021] And the full chain certs is there: /root/.acme.sh/mini-beieli.ch/fullchain.cer
Install Certificate:
# acme.sh --install-cert -d mini-beieli.ch --key-file /etc/letsencrypt/mini-beieli.ch/mini-beieli.ch.key --fullchain-file /etc/letsencrypt/mini-beieli.ch/fullchain.cer --reloadcmd "service nginx force-reload"
# restorecon -irv /etc/letsencrypt
Influxdb Users
mb1:
admin: admin7355
Org: minibeieliorg
Bucket: minibeielibucket
RW-Token:
RO-Token:
mb2:
admin: admin7355
Org: minibeieliorg
Bucket: minibeielibucket
RW-Token:
RO-Token:
Redis Dump
Backup/Restore Tool fuer Redis von https://github.com/yannh/redis-dump-go
# cd /var/tmp && wget https://github.com/yannh/redis-dump-go/releases/download/v0.4.1/redis-dump-go-linux-amd64.tar.gz
# tar xzvf redis-dump-go-linux-amd64.tar.gz
# cp redis-dump-go /usr/local/bin
Zum Backup:
$ redis-dump-go -output commands >redis-backup-$(date +%Y%m%W).out
Zum Restore:
$ redis-cli --pipe < redis-backup.out
Redis RDB Files konvertieren, einfach auf MacOS: https://pkg.go.dev/github.com/vkill-w/go-rdb-tool#section-readme
$ brew install rdb
$ rdb -c json -o output.json redis-minibeieli-20250314.rdb