GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Linode StackScripts zum Bereitstellen vorkonfigurierter Linux-Server

Nach der Bereitstellung eines neuen Linux-Servers gibt es immer einige Dinge zu tun. Es könnte die SSH-Konfiguration ändern, Nicht-Root-Benutzer erstellen oder Docker installieren und konfigurieren.

Dies sind alles sich wiederholende Aufgaben, die besonders frustrierend sein können, wenn Sie etwas testen und Server mit derselben Konfiguration bereitstellen müssen.

Zum Beispiel verwende ich das Reverse-Proxy-Setup, um verschiedene Arten von Webdiensten und Anwendungen zu testen. All diese Schritte immer wieder auf allen neuen Servern zu machen, könnte so mühsam sein.

Zum Glück hat Linode, unser Infrastrukturanbieter, eine praktische Lösung in Form von StackScripts.

In diesem Tutorial erkläre ich Ihnen die folgenden Dinge:

  • Was sind Linode StackScripts?
  • Wie verwendet man diese StackScripts beim Bereitstellen von Servern mit Linode?
  • Tipps zum Erstellen Ihres eigenen StackScripts
  • Stellen Sie ein Reverse-Proxy-Setup mit StackScripts bereit, die vom Linux Handbook-Team (das sind wir) erstellt wurden

Dieses Tutorial funktioniert nur mit dem Cloud-Server-Anbieter Linode. Wenn Sie es nicht verwenden, können Sie sich mit diesem Link anmelden, um zwei Monate lang 60 $ kostenlose Credits zu erhalten.

Was ist ein StackScript?

Es ist ein Skript, das ausgeführt wird, nachdem ein Server erfolgreich bereitgestellt wurde. Dieses Skript muss kein Shell-Skript sein, es kann in Python oder Perl geschrieben werden, solange der Interpreter vorhanden ist, müssen Sie nur sicherstellen, dass Sie den richtigen Shebang verwenden!

Mit einem StackScript können Sie einige der monotoneren Aufgaben nach der Bereitstellung automatisieren. Einige davon sind unten aufgeführt:

  • Erstellen eines Nicht-Root-Benutzers.
  • Ändern der SSH-Serverkonfiguration (z. B. Deaktivieren der Passwortauthentifizierung).
  • Installieren Sie einige der gewünschten Pakete wie Python, Docker, Ruby usw.
  • Aktualisierung und Neustart des Servers.

Klingt nach der Funktion, die Dockerfile bietet, oder? Es ist hier ein ähnliches Konzept.

Arten von StackScripts

Nun, sie sind nicht gerade "Typen". Es hängt davon ab, wie Sie die Idee eines Typs interpretieren. Wenn Sie zwei Skripte nach der Sprache (d. h. dem Interpreter) unterscheiden, in der sie geschrieben sind, gibt es so viele Arten von StackScripts wie Interpreter in einem bestimmten Distributions-Image wie Python, Perl, Bash, Csh, Fish, Ksh usw.

Hier unterscheide ich StackScripts nach ihrer Verfügbarkeit. Je nach Verfügbarkeit gibt es zwei Arten von StackScripts:

  1. Konto-StackScripts
  2. Community-StackScripts

Konto-StackScripts

Dies sind Ihre privaten Skripte, die Sie selbst erstellt und noch nicht veröffentlicht haben.

Wenn Sie sich bei Ihrem Linode-Konto anmelden, finden Sie es auf der Registerkarte "Konto-StackScripts" unter "StackScripts" auf der linken Seite.

Community-StackScripts

Skripte, die Sie und andere über das Linode-Portal öffentlich zugänglich gemacht haben.

Sie finden es an der gleichen Stelle neben "Account StackScripts".

Hands-on 1:Erstellen Sie ein einfaches StackScript und stellen Sie damit einen neuen Server bereit

Um mitzumachen, benötigen Sie zunächst ein paar Dinge:

  • Ein Linode-Konto. Wenn Sie Teil einer Organisation sind und einer der Administratoren ein Konto für Sie erstellt hat, vergewissern Sie sich, dass Ihr Konto über die erforderlichen Berechtigungen zum Betrieb mit StackScripts verfügt.
  • Einige Kommandozeilen- oder Shell-Scripting-Kenntnisse. Sie können jederzeit unserer Bash Beginner Series folgen.

Ein einfaches StackScript erstellen

In diesem Beispiel erstellen Sie ein Bash-Skript, das einen Nicht-Root-Benutzer erstellt und die SSH-Schlüsseldetails zu diesem Benutzer kopiert. Es bringt nicht viel, reicht aber aus, um die Grundlagen zu verstehen.

Der Benutzername und die Passwörter werden in diesem Beispiel fest codiert und ich empfehle das in keiner Umgebung. Ich habe ein Stackscript erstellt, um eine ähnliche Funktionalität zu erreichen, die ich gleich vorstellen werde.

Gehen Sie zum StackScript-Fenster und klicken Sie auf die Schaltfläche "Create a StackScript".

Sie sehen nun ein paar Textfelder. Folgendes müssen Sie tun:-

  • Geben Sie Ihrem Skript zunächst ein Label. Stellen Sie sicher, dass dies für die StackScript-Liste Ihres Kontos eindeutig ist.
  • Beschreiben Sie als Nächstes den Zweck des Skripts. Dies ist optional.
  • "Zielbilder" sind im Grunde die Distributionen, für die Sie dieses StackScript erstellen. Die Befehle oder der Interpreter, die Sie verwenden werden, sind möglicherweise nicht standardmäßig in einer Distribution vorhanden, aber in einer anderen. Stellen Sie sicher, dass Sie hier das/die richtige(n) Bild(er) auswählen. Wählen Sie vorerst Ubuntu 20.04 aus

Schließlich der Skriptteil. Kopieren Sie hier den folgenden Code und fügen Sie ihn ein

#!/bin/sh

useradd \
    -mG sudo \
    -s /bin/bash \
    -p $(awk -F: '$1 ~ /^root$/ {print $2}' /etc/shadow) \
    noroot

if test -d /root/.ssh; then
    cp -r /root/.ssh /home/noroot && \
        chown -R noroot:noroot /home/noroot/.ssh && \
        chmod 700 /home/noroot/.ssh
fi

rm -f /root/StackScript

Das Skript macht folgendes

  • Erzeugt einen Nicht-Root-Benutzer namens noroot , mit demselben Passwort wie der Root-Benutzer.
  • Wenn Sie SSH-Schlüssel zu Ihrem Linode hinzugefügt haben, kopiert das Skript die .ssh in das Home-Verzeichnis des Nicht-Root-Benutzers und konfigurieren Sie die erforderlichen Eigentumsrechte und Berechtigungen.
  • Die StackScripts werden in /root gespeichert unter dem Namen StackScript , die letzte Zeile löscht das Skript von der Festplatte.

Wenn alles fertig ist, klicken Sie auf "Speichern".

Server mit StackScript bereitstellen

Sie sollten das StackScript jetzt in der StackScript-Liste Ihres Kontos sehen. Falls nicht, laden Sie die Seite neu.

Klicken Sie hier ganz rechts auf „Deploy New Linode“.

Eine andere Methode besteht darin, StackScripts als Bereitstellungsmethode auf der Linode-Erstellungsseite auszuwählen, wie im Bild unten.

Fahren Sie danach mit Ihrer Linode-Kreation fort, wie Sie es gewohnt sind. Sobald der Status Ihres Linode auf Ihrem Dashboard "läuft", warten Sie ein paar Sekunden und verwenden Sie SSH, um sich beim Server anzumelden, aber nicht als root, sondern als noroot Benutzer.

ssh [email protected]

Sie sollten sich als dieser neue Benutzer anmelden können.

Hands-on 2:Bereitstellen des Servers mit StackScripts, die vom Linux-Handbuch erstellt wurden

Bei Linux Handbook führen wir viele Tests und Konfigurationen durch. Sie können das in unseren Bereitstellungstutorials sehen. Um unseren Lesern wie Ihnen zu helfen, haben wir kürzlich damit begonnen, StackScripts zu erstellen.

Mit unseren StackScripts können Sie Server mit ziemlich komplizierten Konfigurationen bereitstellen. Nehmen Sie zum Beispiel den mit Docker eingerichteten Nginx-Reverse-Proxy. Wenn Sie dieses großartige Setup verwenden möchten, verwenden Sie einfach das StackScript und sparen Sie viel Zeit.

Sie finden die LHB-StackScripts in unserem GitHub-Repository.

Hier führe ich Sie durch die Reverse-Proxy-Bereitstellung mit reverse-proxy-jwilder StackScript.

Diese Skripte werden derzeit nur in verschiedenen Ubuntu-Versionen getestet.

Gehen Sie zuerst zum StackScript-Bereich der Community und suchen Sie nach „reverse-proxy-jwilder“. Sie sollten ein Skript namens "another_debdut/reverse-proxy-jwilder" sehen.

Klicken Sie wie zuvor auf die Schaltfläche "Neues Linode bereitstellen". Jetzt sollten Sie ein paar Eingabefelder mehr sehen als Sie es gewohnt sind.

Lassen Sie mich die Optionen erklären:

Erstellen Sie einen Nicht-Root-Benutzer

Verwenden des root Benutzer immer in einer Produktionsumgebung ist nicht die beste Idee. Linode hat jedoch nicht die Möglichkeit, während der Bereitstellung eines Servers einen Nicht-Root-Benutzer zu erstellen. Dieses Skript kümmert sich darum.

Die Benutzererstellung ist optional, da es Zeiten gibt, in denen ein kleiner Test durchgeführt werden muss, und es einfacher ist, den root zu verwenden Benutzer vorerst.

Nicht-root-Benutzerpasswort

Dies ist wiederum optional. Wenn Sie dieses Feld leer lassen, wird das Root-Passwort für den Nicht-Root-Benutzer wiederverwendet.

Upgrade des Systems

Möglicherweise möchten Sie das System manchmal nicht aktualisieren, da dies eine Weile dauern kann.

SSH-Port

Zuerst fragt es nach einer Portnummer für den auszuführenden SSH-Daemon, standardmäßig Port 22. Ich empfehle, es auf etwas anderes einzustellen, und denken Sie daran, dass diese Änderung nicht auf Ihrem Dashboard widergespiegelt wird .

Basierend auf anderen Informationen konfiguriert das Skript auch andere Teile von SSH. Wenn Sie beispielsweise einen Benutzer hinzufügen, root wird nicht über SSH zugänglich sein, wenn mindestens ein öffentlicher Schlüssel bereitgestellt wird, Passwort-Login ist deaktiviert.

Root-Konto sperren

Sie können auch das root sperren Benutzerrecht aus dem Bereitstellungsbildschirm. Dies ist einer der Standard-SSH-Härtungstricks.

Docker-Gruppe

Da Docker installiert wird, können Sie Ihren Nicht-Root-Benutzer zu docker hinzufügen Gruppe automatisch von hier aus.

Das ist alles. Wenn Sie fertig sind, fahren Sie mit der normalen Bereitstellung eines Servers fort.

Sie müssen eine ganze Weile warten, bis der gesamte Vorgang abgeschlossen ist. In der Zwischenzeit können Sie nach dem Einloggen die Protokolle mit dem tail-Befehl überprüfen:

tail -f /var/log/stackscript.log

Wenn Sie einen Fehler mit diesen StackScripts sehen oder sehen möchten, wie ein benutzerdefiniertes Skript erstellt wird, öffnen Sie ein Problem im Linux Handbook GitHub-Repository. Beiträge sind immer willkommen.

Um mehr über StackScripts zu erfahren, können Sie die offizielle Dokumentation hier lesen.


Linux
  1. Wie ich Cron unter Linux verwende

  2. So verwenden Sie erweitertes rsync für große Linux-Backups

  3. So verwenden Sie systemd-nspawn für die Linux-Systemwiederherstellung

  4. So verwenden Sie FIND unter Linux

  5. So verwenden Sie Unzip unter Linux

So verwenden Sie den Linux-SS-Befehl

So verwenden Sie den Linux-nohup-Befehl

So verwenden Sie Traceroute unter Kali Linux

So verwenden Sie den Linux-Bildschirm

So suchen Sie unter Linux nach Listening Ports (Ports in use)

So installieren Sie Grafana auf Linux-Servern