So stellen Sie mehrere Wordpress-Sites mit Virtualmin und Ansible unter Ubuntu 16.04 bereit

Eine übliche Verwendung eines virtuellen Vultr-Servers ist das Hosten von Wordpress-Websites. In diesem Handbuch erfahren Sie, wie Sie die Konfiguration eines virtuellen Servers von Grund auf automatisieren (mithilfe von Ansible) und mehrere unabhängige Wordpress-Websites bereitstellen (mithilfe von Webmin / Virtualmin). Virtualmin / Webmin ist eine grafische Benutzeroberfläche, mit der Sie die Bereitstellung mehrerer virtueller Serverkonten auf demselben Computer verwalten können (einschließlich LAMP / LEMP-Stack). Virtualmin ist cPanel und Plesk sehr ähnlich. In diesem Tutorial verwenden wir die kostenlose GPL-Edition. Nach der Ersteinrichtung des Vultr-Servers und der Installation von Virtualmin können Sie sehr schnell mehrere virtuelle Server über die Virtualmin-Oberfläche einrichten und Wordpress mit seinem eigenen Domänennamen direkt auf diesem virtuellen Server installieren.

In diesem Tutorial verwenden wir stattdessen Ansible, anstatt manuell eine lange Liste von Befehlen einzugeben. Ansible ist ein Python-basiertes Automatisierungstool, mit dem Sie Serveraufgaben zuverlässig und wiederholt automatisieren können. Sobald Sie dieses Tutorial befolgt haben, können Sie mit nur wenigen Befehlen auf die gleiche Weise einen anderen Server bereitstellen.

Voraussetzungen

  • Mindestens ein vollqualifizierter Domainname und Zugriff auf die DNS-Einträge
  • Ein Vultr-Konto

Schritt 1 - Installieren von Ansible auf Ihrem lokalen Computer

Installieren Sie Ansible auf Ihrem lokalen Computer oder einem anderen Server.

mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible

Schritt 2 - Generieren Sie SSH-Schlüssel und stellen Sie den Server bereit

Ansible meldet sich über SSH bei Ihrem Server an. Der SSH-Zugriff ist am sichersten, wenn wir Schlüssel anstelle eines Passworts verwenden. Lassen Sie uns zunächst ein öffentliches und ein privates Schlüsselpaar generieren.

mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys

Im ssh_keysVerzeichnis befinden sich nun zwei Dateien ssh_keysund ssh_keys.pub. ssh_keysist Ihre private Schlüsseldatei und sollte sicher aufbewahrt werden. Sie können jetzt das öffnen ssh_keys.pub, das den öffentlichen Schlüssel enthält.

Melden Sie sich beim Vultr-Web-Dashboard an und klicken Sie auf Deploy New Server.

Wählen Sie eine Region, einen Servertyp (Ubuntu 16.04) und eine Servergröße aus und SSH keysklicken Sie dann in Teil 6 ( ) auf Add New. Fügen Sie auf der nächsten Seite Ihren öffentlichen Schlüssel ein, geben Sie ihm einen Namen und klicken Sie auf Add SSH key. Stellen Sie schließlich sicher, dass der Schlüssel ausgewählt ist, und klicken Sie auf Deploy now.
Sobald die Bereitstellung des Servers abgeschlossen ist, wird seine IP-Adresse angezeigt. Sie müssen sich beim DNS-Server Ihres Domainnamens anmelden und auf diese Adresse verweisen.

Schritt 3 - Erstellen Sie eine grundlegende Ansible-Konfiguration

Die Automatisierungsdateien von Ansible werden aufgerufen roles. Wir richten zuerst die Verzeichnisstruktur (innerhalb des ansibleVerzeichnisses, das Sie gerade in Schritt 1 erstellt haben) und die Basisdateien ein.

mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml

Bearbeiten Sie die hostsDatei so, dass sie Folgendes enthält, und ersetzen ip addressSie den soeben erstellten Server durch den. Ansible verwendet Python 2, das Ubuntu 16.04 standardmäßig nicht installiert hat. In der hostsDatei weisen wir Ansible an, Python 3 zu verwenden.

[common]  
192.0.2.1 ansible_python_interpreter=/usr/bin/python3

Bearbeiten Sie die deploy.ymlDatei so, dass sie Folgendes enthält. Wir werden den rootBenutzer verwenden.

- name: apply common configuration to server
  hosts: all
  user: root
  roles:
    - common

Bearbeiten Sie die /group_vars/allDatei so, dass sie Folgendes enthält. Diese Variablen teilen Ansible den Speicherort Ihrer SSH-Schlüssel, die Auslagerungsdateiparameter, Ihren vollqualifizierten Domänennamen und das Root-Passwort mit. Bitte denken Sie daran nicht die Datei in Quellcodeverwaltung zu schließen , wie es Ihr Passwort im Klartext enthält.

ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE

Bearbeiten Sie die common/handlers/main.ymlDatei so, dass sie Folgendes enthält.

- name: restart sshd
  service: name=ssh state=restarted

Schritt 4 - Erstellen Sie Ansible-Aufgaben für die grundlegende Servereinrichtung

Ansible Automatisierung ist leichter zu verstehen, wenn wir sie in Aufgaben aufteilen. Lassen Sie uns dabei Dateien für jede unserer Aufgaben erstellen.

cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml

main.yml sollte auf jede Datei verweisen, die die Ansible-Befehle enthält. Bearbeiten Sie sie daher so, dass sie Folgendes enthält.

- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml

Der erste Schritt beim Einrichten eines neuen Servers besteht darin, den Repo-Cache zu aktualisieren und die Zeitzone festzulegen. Bearbeiten Sie die common/handlers/setup.ymlDatei so, dass sie Folgendes enthält.

- apt: update_cache=yes
  sudo: yes

- name: set timezone to Europe/London
  timezone:
    name: Europe/London

Jetzt geben wir dem Root-Benutzer ein Kennwort (das wir für den Zugriff auf die virtualmin-Weboberfläche benötigen), deaktivieren jedoch die Kennwortanmeldungen über SSH (da wir die Authentifizierungsmethode mit sichereren Schlüsseln verwenden). Bearbeiten users.yml, um Folgendes zu enthalten.

- name: Change passwd
  user: name=root password={{ new_password | password_hash('sha512') }} update_password=always

- name: Disable SSH password login
  lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
  notify: restart sshd

Aus Sicherheitsgründen benötigen wir eine Firewall. Wir werden die unkomplizierte Firewall verwenden, um SSH-Zugriff auf Port 22, Webzugriff auf Port 80und sicheren Webzugriff auf Port zu ermöglichen 443. Bearbeiten Sie die ufw.ymlDatei so, dass sie Folgendes enthält.

- name: Set default firewall policy to deny all
  become: True
  ufw: state=enabled direction=incoming policy=deny
  tags: firewall

- name: enable SSH in firewall
  ufw: rule=allow port=22
  sudo: yes

- name: enable HTTP connections for web server
  ufw: rule=allow port=80
  sudo: yes

- name: enable HTTPS connections for web server
  ufw: rule=allow port=443
  sudo: yes

- name: enable firewall
  ufw: state=enabled
  sudo: yes

Optional können Sie eine Auslagerungsdatei einfügen. Dies ist wichtig, wenn Ihr Server weniger als 2 GB RAM hat, um Abstürze aufgrund von Speichermangel zu vermeiden. Bearbeiten swap.yml, um Folgendes zu enthalten.

- name: Set swap_file variable
  set_fact:
    swap_file: "{{swap_file_path}}"
  tags:
    - swap.set.file.path

- name: Check if swap file exists
  stat:
    path: "{{swap_file}}"
  register: swap_file_check
  tags:
    - swap.file.check

- name: Create swap file
  command: fallocate -l {{swap_file_size}} {{swap_file}}
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.create

- name: Change swap file permissions
  file: path="{{swap_file}}"
        owner=root
        group=root
        mode=0600
  tags:
    - swap.file.permissions

- name: Format swap file
  sudo: yes
  command: "mkswap {{swap_file}}"
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.mkswap

- name: Write swap entry in fstab
  mount: name=none
         src={{swap_file}}
         fstype=swap
         opts=sw
         passno=0
         dump=0
         state=present
  tags:
    - swap.fstab

- name: Turn on swap
  sudo: yes
  command: swapon -a
  when: not swap_file_check.stat.exists
  tags:
    - swap.turn.on

- name: Set swappiness
  sudo: yes
  sysctl:
    name: vm.swappiness
    value: "{{swappiness}}"
  tags:
    - swap.set.swappiness

Schritt 5 - Hinzufügen einer Ansible-Aufgabe für die Einrichtung von virtualmin

Virtualmin verfügt über eine eigene Installationsdatei, die von Ansible heruntergeladen und ausgeführt werden kann. Hier verwenden wir die minimale Installation ( LINK). Die zusätzlichen Elemente dienen zum Konfigurieren des MySQL-Serverkennworts, das bei der Installation durch Virtualmin nicht festgelegt wird. Wir müssen MySQL vorübergehend stoppen und das Authentifizierungsverzeichnis hinzufügen, bevor wir das Kennwort ändern. Bearbeiten virtualmin.yml, um Folgendes zu enthalten.

- name: download virtualmin install script
  get_url: >
    url=http://software.virtualmin.com/gpl/scripts/install.sh
    dest=/root/install.sh
    mode=0755

- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
  tags: non-idem
  shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
  args:
    chdir: /root

- name: temp stop mysql
  service:
    name: mysql
    state: stopped

- name: change owner (and group) of mysqld dir
  file:
    path: "/var/run/mysqld"
    state: directory
    owner: mysql
    group: mysql

- name: virtualmin set mysql password
  shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}

- name: restart mysql
  service:
    name: mysql
    state: started

Die Ansible-Rolle ist jetzt beendet und wir können sie bereitstellen.

Schritt 6 - Führen Sie die Installation mit Ansible durch

Im Ordner ansible können wir jetzt einfach den folgenden Befehl ausführen, und Ansible führt alle von uns automatisch erstellten Aufgaben aus. Wenn Sie zum ersten Mal eine Verbindung herstellen, wird eine SSH-Schlüsselwarnung yesangezeigt. Geben Sie einfach " " an der Eingabeaufforderung ein.

ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts

Wenn Sie einen anderen Server verwenden möchten, können Sie einfach die IP-Adresse in der Hosts-Datei ändern und diesen Befehl erneut ausführen, um genau das gleiche Setup durchzuführen.

Schritt 7 - Virtualmin-Assistent nach der Installation

Die Installation ist abgeschlossen und wir können jetzt zu gehen https://192.0.2.1:10000(verwenden Sie die IP-Adresse Ihres Servers). Ihr Browser gibt eine Sicherheitswarnung aus, da das Zertifikat selbst signiert ist. Klicken Sie also auf advancedund fügen Sie eine Ausnahme hinzu. Sie erhalten eine Anmeldeseite. Der Benutzername lautet rootund das Kennwort ist das, das Sie group_vars/allin Schritt 3 in die Datei eingegeben haben. Wenn Sie Virtualmin zum ersten Mal eingeben, wird der Assistent nach der Installation angezeigt. Sie können diese Einstellungen entweder manuell durchgehen oder auf klicken cancel, um die Standardeinstellungen zu übernehmen.

Schritt 8 - Erstellen Sie einen Server und installieren Sie WordPress

Klicken Sie im Virtualmin-Dashboard auf, um Ihren ersten Wordpress-Server zum Laufen zu bringen Create Virtual Server. Sie müssen einen Domainnamen, eine Beschreibung und ein Administratorkennwort eingeben. Der Domänenname sollte sich vom vollständig qualifizierten Virtualmin-Domänennamen unterscheiden, und Sie müssen den DNS-Eintrag auf die IP-Adresse Ihres Servers verweisen.

Klicken Sie auf Create Server. Wenn Virtualmin die Erstellung Ihres Servers abgeschlossen hat, klicken Sie Install Scriptsauf das Menü auf der linken Seite. Wählen Sie Wordpress, klicken Sie Show install optionsund wählen Sie auf der folgenden Seite den Speicherort der Wordpress-Installation. Einfach auswählen At top levelund klicken Install Now.

Das ist alles, was Sie tun müssen - Sie können die Wordpress-Installation abschließen, indem Sie Ihren http://example.net/wp-admin/install.php(wo example.netbefindet sich dieser Domainname des virtuellen Servers) besuchen . Wenn Ihre DNS-Einträge noch nicht weitergegeben wurden, können Sie über Services > Preview Websitedas Virtualmin-Menü aufrufen.

Sie können diesen Schritt mehrmals wiederholen, um mehrere Wordpress-Sites auf demselben Vultr-Server zu erstellen.



So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

So installieren Sie MODX Revolution auf einem Fedora 26 LAMP VPS

So installieren Sie MODX Revolution auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

So stellen Sie Ghost unter Ubuntu 16.04 bereit

So stellen Sie Ghost unter Ubuntu 16.04 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit ihrer Veröffentlichung im Jahr 2013 bei Entwicklern und normalen Benutzern immer beliebter wird. ich

So stellen Sie Ghost v0.11 LTS unter CentOS 7.3 bereit

So stellen Sie Ghost v0.11 LTS unter CentOS 7.3 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

Einrichten von WordPress mit WooCommerce unter CentOS 6

Einrichten von WordPress mit WooCommerce unter CentOS 6

Vultr-Instanzen sind eine großartige Möglichkeit, Ihr WordPress-Blog auszuführen. Eine bemerkenswertere Erweiterung von WordPress ist jedoch WooCommerce, ein E-Commerce-Plugin, das th erweitert

Einrichten der Ghost Professional Publishing-Plattform unter OpenBSD 6

Einrichten der Ghost Professional Publishing-Plattform unter OpenBSD 6

Ghost ist der neueste und beste Emporkömmling, der es mit WordPress aufnehmen kann. Die Theme-Entwicklung ist schnell und einfach zu erlernen, da die Ghost-Entwickler beschlossen haben, beide zu verwenden

Ausführen von WordPress unter OpenBSD 6.5 mit OpenBSDs HTTPD

Ausführen von WordPress unter OpenBSD 6.5 mit OpenBSDs HTTPD

Einführung Je näher Sie Ihre OpenBSD-Installation an der Standardeinstellung und ohne so viele hinzugefügte Pakete halten, desto sicherer ist sie. Während die mehr Commo

Installieren Sie WordPress unter OpenBSD 6.2

Installieren Sie WordPress unter OpenBSD 6.2

Einführung WordPress ist das dominierende Content-Management-System im Internet. Es unterstützt alles von Blogs bis hin zu komplexen Websites mit dynamischen Inhalten

Installieren und konfigurieren Sie ein Ghost v1.0.0-Blog unter Ubuntu 16.04

Installieren und konfigurieren Sie ein Ghost v1.0.0-Blog unter Ubuntu 16.04

Ghost ist eine moderne Open-Source-Publishing-Plattform, die auf Node.js mit einem Ember.js-Admin-Client, einer JSON-API und einer von Handlebars.js unterstützten Design-API basiert. Ghos

So stellen Sie Ghost v0.11 LTS unter Debian 8 bereit

So stellen Sie Ghost v0.11 LTS unter Debian 8 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

So installieren Sie MODX Revolution auf einem Debian 9 LAMP VPS

So installieren Sie MODX Revolution auf einem Debian 9 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

So installieren Sie Dotclear unter Debian 9 (Stretch)

So installieren Sie Dotclear unter Debian 9 (Stretch)

Verwenden Sie ein anderes System? Dotclear ist eine sehr einfache Blogging-Engine. Es ist Open Source und einfach zu bedienen. Dieses Tutorial wird die Installation am durchlaufen

So installieren Sie MODX Revolution auf einem Ubuntu 16.04 LAMP VPS

So installieren Sie MODX Revolution auf einem Ubuntu 16.04 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

So stellen Sie Ghost v0.11 LTS unter Fedora 25 bereit

So stellen Sie Ghost v0.11 LTS unter Fedora 25 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

Installieren von Fork CMS unter Ubuntu 16.04 LTS

Installieren von Fork CMS unter Ubuntu 16.04 LTS

Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren

So installieren Sie Dotclear unter Ubuntu 16.04

So installieren Sie Dotclear unter Ubuntu 16.04

Verwenden Sie ein anderes System? Dotclear ist eine sehr einfache Blog-Engine, die auf PHP basiert. In diesem Tutorial werden wir Dotclear unter Ubunt installieren

Installieren von Fork CMS unter Debian 9

Installieren von Fork CMS unter Debian 9

Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren

So stellen Sie Ghost unter Debian 8.7 bereit

So stellen Sie Ghost unter Debian 8.7 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit ihrer Veröffentlichung im Jahr 2013 bei Entwicklern und normalen Benutzern immer beliebter wird. ich

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.