Server Setup Hetzner CX21 Ubuntu 20.04
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.9 KiB

5 years ago
  1. # Ubuntu-20.04 Hetzner Cloud Server Setup
  2. inpired by https://git.bmen.cc
  3. **Setup Hetzner CX21 Ubuntu 20.04**
  4. Als erstes das System aktualisieren
  5. ```
  6. apt update
  7. apt upgrade
  8. ```
  9. Falls der Port für SSH geändert werden soll:
  10. ```
  11. nano /etc/ssh/sshd_config
  12. service ssh restart
  13. ```
  14. > Hinweis: die lokale .ssh/config anpassen! (Backup) ****
  15. > `ufw allow <PORT>` und `ufw delete allow 22` check mit `ufw status`
  16. Nun die wichtigsten Ports freischalten und die Firewall aktivieren
  17. ```
  18. ufw allow 22 (or alternative)
  19. ufw allow 80
  20. ufw allow 443
  21. ufw enable
  22. ```
  23. > Hinweis: bei Änderungen der Firewall oder SSH Konfigurationen IMMER aktives Terminal beibehalten und Login in neuem Fenster zuerst testen!
  24. Ein paar hilfreiche Tools installieren:
  25. ```
  26. apt install -y htop iftop mytop tcpdump landscape-common mercurial git software-properties-common
  27. ```
  28. ## Strorage Box mounten
  29. Die Festplatte soll über SAMBA/CIFS gemounted werden, daher müssen die entsprechenden Tools installiert sein:
  30. ```
  31. apt install cifs-utils
  32. ```
  33. Die Zugangsdaten für die Storagebox werden unter `nano /etc/storage-box-credentials` in folgender Form gespeichert:
  34. ```
  35. username=<BENUTZERNAME>
  36. password=<PASSWORT>
  37. ```
  38. Mount Verzeichnis anlegen:
  39. ```
  40. cd /mnt/
  41. mkdir storage-box
  42. ```
  43. Ubuntu Minimal hat leider kein utf8 Zeichencode vorinstalliert, daher folgendes Paket nachinstallieren:
  44. ```
  45. apt install linux-image-extra-virtual
  46. ```
  47. Dann den Server mit `init 6` neustarten.
  48. In `/etc/fstab` folgende Zeile einfügen:
  49. ```
  50. //<BENUTZERNAME>.your-storagebox.de/backup /mnt/storage-box cifs iocharset=utf8,rw,credentials=/etc/storage-box-credentials,uid=33,forceuid,gid=33,forcegid,file_mode=0660,dir_mode=0770 0 0
  51. ```
  52. **Wichtig:** Hier muss ggf. der User und die Gruppe an den jeweiligen Docker-Container angepasst werden. Bisher hat nur die ID und nicht der Name funktioniert und hier in diesem Beispiel auf `33` gestellt, was dem `www-data` entsprechen soll.
  53. > Hinweis: user ID für `www-data` checken via `nano /etc/passwd`
  54. > Achtung: Leerzeile am Ende der `fstab` unbedingt beibehalten!
  55. Dann die Storage-Box mounten mit `mount -a` (oder neu booten, was mit der `fstab` Veränderung immer kritisch sein kann).
  56. ## Docker und Docker-Composer installieren
  57. Zuerst einmal Docker
  58. ```
  59. apt install docker.io
  60. ```
  61. Nun Docker-Composer und hier kann man die aktuelle Release-Nr. herausfinden: https://github.com/docker/compose/releases
  62. ```
  63. sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  64. sudo chmod +x /usr/local/bin/docker-compose
  65. ```
  66. ## Wichtige Befehle
  67. Festplattenverbrauch ermitteln:
  68. ```
  69. df -h
  70. ```
  71. Rsync ohne Rechteübernahme (gut für gemountete Laufwerke SAMBA)
  72. ```
  73. sudo rsync -rltv --exclude '/storage/var/lib/nextcloud/*' /storage/ /mnt/backup-storage/
  74. ```
  75. ## Gute Quellen
  76. * Bash-Skripte: https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_für_Anfänger/
  77. * Cronjobs: https://www.stetic.com/developer/cronjob-linux-tutorial-und-crontab-syntax.html