So automatisieren Sie gleichzeitige WordPress -Bereitstellungen in mehreren Linux -Servern mit Ansible - Teil 3

So automatisieren Sie gleichzeitige WordPress -Bereitstellungen in mehreren Linux -Servern mit Ansible - Teil 3

In den beiden vorherigen Artikeln davon Ansible Serien haben wir erklärt, wie man installiert und konfiguriert wird Ansible Befehle auszuführen und komplexe Aufgaben auf mehreren entfernten Servern gleichzeitig auszuführen.

Automatisieren Sie mehrere WordPress -Installationen mit Ansible - Teil 3

Im aktuellen Tutorial erklären wir, wie man eingerichtet wird WordPress In denselben Remote -Servern:

Node1: 192.168.0.29 Node2: 192.168.0.30 

wo wir installiert, aktiviert und apache gestartet haben (Sie wissen wahrscheinlich, warum wir uns für die Arbeit mit einem Webserver als erstes Beispiel im letzten Tutorial entschieden haben).

Ich ermutige Sie dringend zum Lesen Teil 1 Und Teil 2 Bevor Sie weiter fortfahren, um sicherzustellen, dass Sie mit den Konzepten mit Ansible vertraut sind.

So installieren und konfigurieren Sie das „Ansible' -Automatisierungstool für IT -Management - Teil 1

So verwenden Sie Anisble -Playbooks, um komplexe Aufgaben auf mehreren Remote -Servern zu automatisieren - Teil 2

Schritt 1: Einführung von Ansible -Rollen

Wenn Sie den Spielen immer mehr Aufgaben hinzufügen, sind Ihre Spielbücher kann immer schwieriger zu handhaben werden. Aus diesem Grund besteht der empfohlene Ansatz in diesen Situationen (tatsächlich in allen Fällen) eine Verzeichnisstruktur, die die Richtlinien für jede Aufgabengruppe in verschiedenen Dateien enthält.

Mit diesem Ansatz können wir diese Konfigurationsdateien in separaten Projekten weiter unten wiederverwenden. Jede dieser Dateien definieren das, was in der genannt wird Ansible -Ökosystem eine Rolle.

In unserem Fall werden wir zwei Rollen erstellen. Einer von ihnen (genannt WP-Abhängigkeiten) wird verwendet, um die WordPress -Abhängigkeiten zu installieren (Php Und Mariadb - Keine Notwendigkeit zu installieren Apache wie es bereits installiert ist).

Die andere Rolle (benannt WP-Installation-Config) enthält alle erforderlichen Aufgaben, die der Installation und Konfiguration von WordPress zugeordnet sind.

Schritt 2: Erstellen von Ansible -Rollen

Ansible wird mit einem Dienstprogramm genannt Ansible-Galaxy Dies wird uns helfen, die Verzeichnisstruktur für unsere Rollen zu erstellen. Wir werden das in tun /etc/Ansible/Playbooks (was wir in erstellt haben Teil 2) Aber theoretisch können Sie es in einem anderen Verzeichnis einrichten, wenn Sie möchten.

# CD/etc/Ansible/Playbooks # Ansible-Galaxy Init WP-Abhängigkeiten # Ansible-Galaxy Init WP-Installation 
Ansible: Erstellen Sie WordPress -Rollen

Als nächstes bestätigt die neu erstellten Rollen.

# LS -r/etc/ansible/Playbooks 
Ansible: Bestätigen Sie die WordPress -Verzeichnisstruktur

Im obigen Bild können wir das sehen Ansible-Galaxy erstellte zwei Verzeichnisse mit demselben Namen wie unsere Rollen und andere Unterverzeichnisse (Standardeinstellungen, Dateien, Handler, Meta, Aufgaben, Vorlagen, Und vars) und ein Liesmich.md Datei in jedem von ihnen.

Zusätzlich eine YAML -Datei mit dem Namen hauptsächlich.YML wurde in allen zuvor aufgeführten Verzeichnissen erstellt, mit Ausnahme von Dateien und Vorlagen.

Wir werden zunächst die folgenden Konfigurationsdateien wie angegeben bearbeiten:

1. /etc/ansible/Playbooks/WP-Abhängigkeiten/Aufgaben/Main.YML. Beachten Sie, dass wir einbeziehen httpd Falls Sie die vorherigen Tutorials dieser Serie nicht befolgt haben.

hauptsächlich.YML
--- # Tasks -Datei für WP -Abhängigkeiten - Name: Update -Pakete (dies entspricht Yum Update -y) yum: name =* state = letztes - Name: Installieren Sie Abhängigkeiten für Wordpress yum: name = item ate state = präsent with_items : - httpd - mariadb -server - mariadb - php - php -mysql - mysql -python - Name: Stellen Sie sicher.Mein.CNF zu Knoten kopieren: src =/root/.Mein.CNF dest =/root/.Mein.cnf - name: Create MariaDB database mysql_db: name= wp_mysql_db  state=present - name: Create MariaDB username and password mysql_user: login_user=root login_password=YourMariaDBRootPasswordHere name= wp_mysql_user  password= wp_mysql_password  priv =*.*:ALLE 

2. /etc/ansible/Playbooks/WP-Abhängigkeiten/Standardeinstellungen/Main.YML

hauptsächlich.YML
--- # Standarddatei für WP-Abhängigkeiten wp_mysql_db: mywp WP_MYSQL_USER: WPUSER WP_MYSQL_PASSWORD: WPP4SSS 

3. /etc/ansible/playbooks/wp-install-config/tasks/main.YML:

hauptsächlich.YML
--- # Tasks -Datei für WP -Install -Config -Name: Verzeichnis erstellen, um WordPress -Befehl herunterzuladen: Mkdir -p/opt/source/wordpress -Name: Download WordPress get_url: url = https: // www.WordPress.org/neuest.Teer.gz dest =/opt/source/WordPress/WordPress.Teer.gz validate_certs = no - Name: WordPress -Befehl extrahieren: "tar xzf/opt/source/WordPress/WordPress.Teer.gz -c/var/www/html--Strip-Komponenten 1 "-Name: Konfigurationsdatei senden: src =/root/wp-config-sample.PHP dest =/var/www/html/wp-config.PHP -Modus = 0644 

4. WP-Config-Stichprobe.Php (In diesem Pastebin bereitgestellt) wie folgt und speichern Sie es in Ihrem Ansible Controller -Computer (wie Sie in der letzten Kopierrichtlinie oben sehen können, habe ich es in das Home -Verzeichnis des Superusers heruntergeladen (/root/wp-config-Stichprobe.Php).

Wichtig: Bitte beachten Sie, dass der Wert für Variablen Db_name, DB_USER, Und Db_password sind die gleichen wie in /etc/ansible/Playbooks/WP-Abhängigkeiten/Standardeinstellungen/Main.YML:

WP-Config-Stichprobe.Php
… / ** Der Name der Datenbank für WordPress* / definus ('db_name', 'myWp'); / ** MySQL Database Benutzername*/ define ('db_user', 'wpuser'); / ** MySQL -Datenbankkennwort*/ define ('db_password', 'WPP4SS'); 

5. Für neue Datenbankserver -Installationen, bei denen das Stammkennwort leer ist, z. B. in diesem Fall, müssen wir leider das Kennwort für den Benutzer root in jedem Computer einzeln einrichten mysql_secure_installation.

Soweit ich weiß, gibt es keine verfügbare Problemumgehung, mit der Sie das Stammkennwort über einrichten können Ansible Im gleichen Schritt, in dem Sie das Administrativdatenbankkonto für WordPress erstellen.

Stellen Sie sicher, dass Sie dasselbe Passwort in allen Hosts verwenden, und kopieren Sie die Anmeldeinformationen in /Wurzel/.Mein.CNF (Der tatsächliche Standort kann sich in Ihrem Fall unterscheiden, in allen Fällen muss er jedoch mit dem Wert der entsprechen src Parameter für die Aufgabe Kopieren ~/.Mein.CNF zu Knoten hinein /etc/ansible/Playbooks/WP-Abhängigkeiten/Aufgaben/Main.YML).

In dieser Datei (siehe oben) haben wir angenommen, dass das Passwort für Root ist YourMariadbrootPassword.

Ansible -Datenbankkennwort

6. Als nächstes unser Spielbuch (/etc/Ansible/Playbooks/Playbook.YML) sieht im Vergleich zum vorherigen Tutorial viel organisierter und einfacher aus:

# Katzenbook.YML 
Ansible WordPress Playbooks
- Hosts: Webservers-Rollen:-WP-Abhängigkeiten-WP-Install-Config 

Schließlich ist es Zeit, diese Aufgaben auszuführen, indem Sie unser Spielbuch anrufen:

# Ansible-Playbook Playbook.YML 

Überprüfen Sie nun, ob wir mit den IP -Adressen von IP -Adressen von auf die Seite WordPress Admin zugreifen können Node1 192.168.0.29 Und Node2 192.168.0.30:

Ansible WordPress -Installation

Sie können die letzten beiden Schritte im folgenden Screencast anzeigen:

Wie Sie sehen können, können Sie mehrere WordPress -Installationen mit wenig bis gar keinem Aufwand einrichten Ansible. Dann können Sie den jeweiligen verwenden Administrator Benutzeroberfläche, um jede Website separat zu konfigurieren.

Schlussbetrachtungen

Wenn Sie eine andere Verteilung zur Bereitstellung verwenden WordPress, Der Name der Pakete kann variieren, aber er kommt auf die Installation des Apache -Webservers, des MariADB -Datenbankservers und des Python MySQL -Moduls an. Wenn dies der Fall ist, verwenden Sie das Softwareverwaltungssystem Ihrer Verteilung, um nach dem genauen Paketnamen zu suchen, den Sie installieren müssen.

Zusammenfassung

In dieser Serie haben wir erklärt, wie man benutzt Ansible Befehle ausführen und komplexe Aufgaben in mehreren Linux -Maschinen gleichzeitig ausführen.

Eines dieser Beispiele ist die Einrichtung WordPress, Wie wir in diesem Leitfaden besprochen haben. Egal, ob Sie ein Systemadministrator oder ein Blogger sind, ich hoffe, Sie haben die Konzepte und Beispiele in diesem Tutorial nützlich gefunden.

Viel Glück und zögern!