Zurück zum Blog

Installieren und Konfigurieren von LAMP auf Ubuntu 20.04 mit Ansible

Installieren und Konfigurieren von LAMP auf Ubuntu 20.04 mit Ansible

Server-Automatisierung ist ein sicherer und zuverlässiger Prozess zur effektiven und technisch versierten Verwaltung und Überwachung von Servern. Im Gegensatz zur traditionellen Verwaltung von Servern in Rechenzentren, die von einem dedizierten Expertenteam kontrolliert werden, werden alle Server mithilfe von Automatisierung verwaltet. Dadurch werden menschliche Fehler minimiert.

Konfigurationsmanagement-Tools wie Ansible, Puppet, Terraform, um nur einige zu nennen, werden typischerweise zur Automatisierung von Servern verwendet. Diese Tools richten Server mithilfe von Automatisierung ein, indem sie Standardverfahren für neue Server etablieren und gleichzeitig potenzielle Fehler ausschließen, die bei manueller Durchführung auftreten.

Ansible ist ein robustes Open-Source-Projekt. Es ist flexibel, einfach zu bedienen und hat eine äußerst vereinfachte Architektur. Für die Verwendung von Ansible-Playbooks sind keine Programmierkenntnisse erforderlich, und es muss keine Software auf den Nodes installiert werden. Vor allem ist es mit hervorragenden Funktionen ausgestattet, mit denen sich Skripte schreiben und die Automatisierung rationalisieren lassen.

In dieser Anleitung werden wir Sie Schritt für Schritt durch die Installation und Konfiguration von LAMP auf Ubuntu 20.04 mit Ansible führen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Was ist der Zweck des Ansible-Playbooks?

Dieses Ansible-Playbook ist eine alternative Methode, um das in unserem Leitfaden beschriebene Verfahren zu durchlaufen LAMP-Stack-Einrichtung Linux Apache MySQL PHP.

Das Ausführen des Ansible-Playbooks führt zu den folgenden Aktionen auf Ihren Ansible-Hosts:

  • Installieren von aptitude, einer Alternative zum apt-Paketmanager, wie von Ansible bevorzugt.

  • Installieren aller erforderlichen LAMP-Pakete.

  • Erstellen eines neuen Apache- VirtualHost und Konfigurieren eines dedizierten Document-Roots.

  • Aktivieren (EIN) des neuen VirtualHost.

  • Deaktivieren (AUS) der Standard-Apache-Website, d. h. Setzen der disable_default-Variable auf true.

  • Auswählen eines Passworts für den MySQL-root-Benutzer.

  • Entfernen anonymer MySQL-Konten und der Testdatenbank.

  • Einrichten von UFW, um HTTP-Verkehr auf dem konfigurierten Port zuzulassen, wobei der Standardwert 80.

  • Einrichten eines PHP-Testskripts.

Nachdem das Ansible-Playbook die Ausführung abgeschlossen hat, sehen Sie eine PHP-Webumgebung, die gemäß den von uns festgelegten Konfigurationen auf Apache läuft.

Nutzung des Ansible-Playbooks

Holen Sie sich zuerst das LAMP-Playbook und seine Abhängigkeiten aus dem do-community/ansible-playbooks-Repository. Klonen Sie als Nächstes das Repository mit dem LAMP-Playbook in einen lokalen Ordner auf dem Ansible-Control-Node.

Führen Sie den Befehl git pull aus, um sicherzustellen, dass Sie Zugriff auf die richtigen Inhalte haben, die wir in diesem Tutorial verwenden werden:

Wenn Sie das do-community/ansible-playbooks-Repository zum ersten Mal verwenden, sollten Sie das Repository in Ihren Home-Ordner klonen:

Wechseln Sie in den Ordner lamp_ubuntu2004 und Sie sehen die folgende Struktur:

Hier ist eine Übersicht darüber, was diese Dateien bedeuten:

  • files/info.php.j2: Dies ist eine Vorlagendatei, mit der Sie eine PHP-Testseite im Stammverzeichnis (Root) des Webservers einrichten können.

  • files/apache.conf.j2: Eine weitere Vorlagendatei, die zum Einrichten des Apache VirtualHost verwendet wird.

  • vars/default.yml: Es’s eine Variablendatei zur Anpassung der Playbook-Einstellungen.

  • playbook.yml: Diese Datei enthält alle Inhalte der Aufgaben (Tasks), die auf dem/den Remote-Server(n) ausgeführt werden sollen.

  • readme.md: Eine Readme-Datei, die die Informationen über dieses Playbook enthält.

Passen wir die MySQL- und Apache-Konfigurationen an, indem wir Änderungen in der Variablendatei des Playbooks vornehmen. Navigieren Sie zum Verzeichnis lamp_ubuntu2004 und öffnen Sie die Datei vars/default.yml mit dem nano-Editor:

Beim Öffnen der Datei vars/default.yml wird eine Liste von Variablen angezeigt, die geändert werden müssen:

Lassen Sie uns jede der Variablen im Detail verstehen:

  • mysql_root_password: Speichert das Passwort für das root MySQL-Konto.

  • app_user: Es handelt sich um einen entfernten Nicht-Root-Benutzer auf dem Ansible-Host, der als Eigentümer der Anwendungsdateien fungiert.

  • http_host: Zeigt Ihren Domainnamen an.

  • http_conf: Zeigt den Namen der in Apache erstellten Konfigurationsdatei an.

  • http_port: Es ist der HTTP-Port für diesen virtuellen Host, und 80 ist der Standardwert.

  • disable_default: Wird verwendet, um Standardoptionen, die mit Apache geliefert werden, rückgängig zu machen.

Speichern und schließen Sie anschließend die Datei vars/default.yml .

Sobald die gesamte Einrichtung abgeschlossen ist, können wir dieses Playbook auf den Servern ausführen. Standardmäßig sind die meisten Server in den Playbooks so konfiguriert, dass sie auf jedem Server in den Inventaren ausgeführt werden. Verwenden wir das Flag -l, um nur einen einzelnen Server oder eine ausgewählte Teilgruppe zu beeinflussen, die vom Playbook betroffen ist. Alternativ können wir das Flag -u verwenden, um eine detaillierte Ansicht darüber zu erhalten, welcher Remote-Server verbunden wird und auf den Remote-Hosts ausgeführt wird.

Führen wir das Playbook auf einem Server aus server1 und verbinden wir es mit einem Benutzer als justin:

Sie erhalten eine Ausgabe ähnlich dieser:

Sobald Sie sehen, dass die Ausführung des Playbooks abgeschlossen ist, navigieren Sie zu Ihrem Webbrowser und rufen Sie den Host des Servers auf. Vergessen Sie nicht, /info.php am Ende der IP anzuhängen:

Wenn Sie auf diese URL klicken, sehen Sie eine Seite wie diese:

Warnung: Die angezeigte Seite enthält sensible Informationen über Ihre PHP-Umgebung. Daher wird empfohlen, Ihre persönlichen Informationen mit dem folgenden Befehl vom Server zu entfernen:

rm -f /var/www/info.php

Was ist im Playbook enthalten?

Als Nächstes wollen wir die Bedeutung und Wichtigkeit der Dateien verstehen, die im ansible-playbook-Inhalt verwendet werden:

  • vars/default.yml

Die default.yml-Variablendatei enthält den Domainnamen und das Passwort des MySQL-root-Accounts. Dies sind Standardwerte, die in den ansible-playbook-Tasks verwendet werden:

  • files/apache.conf.j2

Die apache.conf.j2-Datei ist eine Jinja 2-Vorlagendatei, die zur Konfiguration eines neuen Apache VirtualHost verwendet wird. Die in dieser Vorlage verwendeten Variablen müssen in der vars/default.yml-Variablendatei definiert werden:

  • files/info.php.j2

Ähnlich wie files/apache.conf.j2, ist die info.php.j2-Datei ebenfalls eine Jinja-Vorlage. Wir verwenden diese Datei, um ein Test-PHP-Skript im Document Root eines neu konfigurierten LAMP-Servers einzurichten:

  • playbook.yml

In der playbook.yml-Datei werden alle Tasks aus diesem Setup definiert. In dieser Datei werden alle LAMP-Stacks konfiguriert. Sie beginnt mit der Definition der Gruppe der Zielserver und ist auf eingestelltall. Außerdem nimmt sie den become-Wert als true ( become: true an) und definiert alle auszuführenden Tasks. Als Nächstes enthält die yaml-Datei die Standarddatei, bei der es sich um die vars/default.yml-Variablendatei handelt, um die Konfigurationsoptionen zu laden:

Sie können diese Dateien basierend auf den Anforderungen und Bedürfnissen Ihres Projekts anpassen.

Fazit

In diesem Tutorial haben wir die Schritte zur Installation und Konfiguration von LAMP auf einem Remote-Server mit Ansible durchlaufen. Es gibt viele weitere Anpassungsoptionen, mit denen Sie experimentieren können. Verwenden Sie beispielsweise die offizielle Ansible-Dokumentation und die Anwendungsfälle von mysql_user aus dem Ansible-Modul ist eine hervorragende Möglichkeit, Ihr Können auf die nächste Stufe zu heben. Befolgen Sie außerdem die in dieser Anleitung beschriebenen Schritte, um die Automatisierung mit anderen Konfigurationsmanagement-Tools und Betriebssystemen zu üben, um den Schwierigkeitsgrad zu erhöhen.

Sind Sie neu beim LAMP-Stack und möchten tief in dieses Thema eintauchen? Entdecken Sie die folgenden Tutorials auf unserem Blog:

Fröhliches Computing!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.