Webserver Installer - für die Faulen

  • Hey Leute,


    da ich in den letzten Tagen nichts groß zu tun hatte, mit meinen Klausuren fertig bin, meine Freundin derzeit in der Heimat ist und es selbst dem Hund zu kalt ist, um vor die Tür zu gehen, habe ich mal angefangen einen Teil meiner selbst geschriebenen Shell Scripte zu sortieren, bzw, zusammen zu fassen.


    Dachte, vielleicht ist das ja für den ein oder anderen von euch interessant. Gerade für Anfänger, die sich zu Beginn nicht wirklich mit dem Absichern des Servers etc. auseinandersetzten wollen, aber dennoch ein laufendes System wollen, oder aber für die Faulen unter euch - was mich einschließt - haha :P^^:evil:


    Ihr findet die Scripte auf github: https://github.com/gxf0/lazy_server, dort gibts auch jeweils eine kurze Erklärung zu den einzelnen Scripten, allerdings nur auf Englisch, war ehrlich gesagt zu faul das ganze mehrsprachig zu verfassen.

    Kurz zusammen gefasst, mit den Scripten lässt sich im Handumdrehen ein Webserver aufsetzten, welcher zusätzlich nach außen hin abgesichert ist. Im Rahmen der Installation wird eine Config erstellt, welche sich jederzeit auf einem anderen System wieder einbinden lässt, gerade zum Entwickeln, oder Ausprobieren, wenn man mal nur schnell einen LEMP Stack bracht, ganz praktisch.


    Bisher gibt es: Basic Setting, Absicherung des Servers, LEMP Stack, oder standalone NGiNX, Node.js und CO folgen, je nachdem, wann ich wieder Zeit habe.
    Die Scripte laufen derzeit ausschließlich auf Debian, lassen sich aber theoretisch mit nem "su" relativ schnell und unkompliziert auf Ubuntu ummünzen.


    Das lazy_ngx script, welches auch im Rahmen der LEMP Installation zum Einsatz kommt, ist besonders praktisch. Ich mag die vorgepackten NGiNX Pakete nämlich nicht und verwende gerne das cache_purge plugin. Mit dem Script wird also NGiNX aus dem Source gebaut, incl. Modulen. Da es bei nem "apt-get upgrade" dann aber gerne mal zur Problemen kommt, setzt das Script das nginx paket auf hold. Wenn ihr das lazy_ngx script nach der Installation ausführt, wird also geguckt, ob NGiNX bereits installiert ist, wenn ja, wird es neu compiliert, ohne die alten Files zu überschreiben :) Kann also nicht schaden, ab und an, wenn ihr das System updatet, auch mal nginx upzudaten. Wie gesagt, ich bin faul, wenn gewünscht, installiert der Installer ebenfalls apticron für euch, somit werdet ihr per mail über verfügbare Updates informiert 8)


    Ihr könnt entweder den Installer aus dem Repo verwenden, der euch eben durch die Installation leitet, oder die einzelnen Scripte im /scripts/ folder direkt nutzen.


    Und für die ganz Faulen unter euch, hab ich noch ein kleines script gebastelt, welches das Repo clont und die nötigen Rechte für die files setzt.

    Code
    1. curl -Ssl https://raw.githubusercontent.com/gxf0/lazy_server/master/get | bash


    Hab die Scripte gerade noch mal auf frischen Linodes bzw. Droplets getestet, laufen soweit ohne Probleme - übernehme aber keine Garantie.


    Bei Fragen stehe ich gerne zur Verfügung, viel Spaß damit :)

    PS.: Ich komme aus der Labormedizin/Forschung, bzw. studiere derzeit Wirtschaft und Chinesisch, bin also weder Informatiker noch Systemadministrator. Also wundert euch nicht, wenn der Code vielleicht nicht des Beste ist - haha :D
    Verbesserungsvorschläge nehme ich gern entgegen - aber bitte mit kurzer Erklärung :saint:8)

  • Hallo geekmonkey,


    erstmal danke für's Teilen :-) Es ist immer gut, wenn man Code öffentlich zur Verfügung stellt und vor allem andere drüber schauen lässt.


    Aber da du schon fragst, einen (konstruktiven) Verbesserungsvorschlag hätte ich dann doch: Heutzutage schreibt man eigentlich keine Shell Skripte mehr für die Installation und Konfiguration von Serverdiensten. Dafür gibt es Konfigurations-Management-Tools wie Ansible (https://www.ansible.com/), was mittlerweile das Standard-Tool für Automatisierung geworden ist. Damit ist es unglaublich viel einfacher solche Szenarien abzubilden und den Code später mit anderen zu teilen.


    Auf https://galaxy.ansible.com/ gibt es z.B. schon so viele Rollen/Playbooks, die gerade solche Dienste wie Webserver/DB/LAMP etc. auf sämtlichen Betriebssysten abbilden. Ok, auf Galaxy muss man immer etwas aufpassen, weil das meiste einfach Schrott ist ;-). Aber oft ist es ein guter Anhaltspunkt um seine eigenen Ansible Rollen zu schreiben, was man auf jeden Fall mal gemacht haben muss, wenn man Ansible einsetzen möchte.


    Daher, wenn du eh gerade Zeit hast, schau es dir unbedingt mal an. Die Lernkurve dabei ist enorm. Vielleicht dauert es am Anfang einen kleinen Moment, bis man mal drinnen is im Thema, aber dann willst du garantiert nichts mehr anderes nutzen! :-)

  • Hey, vielen Dank für den Tipp. Ansible sieht auf jeden Fall interessant aus. Mir gefallen die Playbook Roles, erinnert nen bissel an bash functions oder Funktionen allgemein.


    Hatte sogar schon mal überlegt gehabt die Scripte in python zu schreiben, oder sogar mal aus Spass gucken, wie weit man mit javascript kommt. Ansible nutzt ja quasi python.


    Wird def. mal ausprobiert! Danööö