# 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 # --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 ```