Meerdere WordPress-sites implementeren met Virtualmin en Ansible op Ubuntu 16.04

Een veelgebruikt gebruik van een virtuele Vultr-server is het hosten van Wordpress-websites. Deze gids laat u zien hoe u de configuratie van een virtuele server helemaal opnieuw kunt automatiseren (met Ansible) en meerdere onafhankelijke Wordpress-websites kunt implementeren (met Webmin / Virtualmin). Virtualmin / Webmin is een grafische gebruikersinterface waarmee u de implementatie van meerdere virtuele serveraccounts op dezelfde machine kunt beheren (compleet met LAMP / LEMP-stack). Virtualmin lijkt veel op cPanel en Plesk, en in deze tutorial gebruiken we de gratis GPL-editie. Na de initiële installatie van de Vultr-server en de installatie van Virtualmin, kunt u zeer snel meerdere virtuele servers instellen vanuit de Virtualmin-interface en Wordpress rechtstreeks op die virtuele server installeren, compleet met een eigen domeinnaam.

In deze tutorial gebruiken we in plaats van handmatig een lange lijst met opdrachten in te voeren, in plaats daarvan Ansible. Ansible is een op python gebaseerde automatiseringstool waarmee u servertaken betrouwbaar en herhaaldelijk kunt automatiseren. Dit betekent dat als je deze tutorial eenmaal hebt gevolgd, je op dezelfde manier een andere server kunt implementeren met slechts een paar opdrachten.

Vereisten

  • Ten minste één volledig gekwalificeerde domeinnaam en toegang tot de DNS-records
  • Een Vultr-account

Stap 1 - Ansible installeren op uw lokale computer

Installeer Ansible op uw lokale computer of een andere server.

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

Stap 2 - Genereer SSH-sleutels en implementeer de server

Ansible werkt door in te loggen op uw server via SSH. SSH-toegang is het veiligst als we sleutels gebruiken in plaats van een wachtwoord. Laten we eerst een openbaar en privé-sleutelpaar genereren.

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

In de ssh_keysdirectory staan ​​nu twee bestanden, ssh_keysen ssh_keys.pub. ssh_keysis uw privésleutelbestand en moet veilig worden bewaard. U kunt nu de openen ssh_keys.pub, die de openbare sleutel bevat.

Log in op het Vultr-webdashboard en klik op Deploy New Server.

Selecteer een regio, Servertype (Ubuntu 16.04), Servergrootte en klik vervolgens in deel 6 ( SSH keys) op Add New. Plak op de volgende pagina uw openbare sleutel en geef deze een naam en klik op Add SSH key. Zorg er ten slotte voor dat de sleutel is geselecteerd en klik op Deploy now.
Zodra de server is geïmplementeerd, krijgt u het IP-adres te zien. U moet inloggen op de DNS-server van uw domeinnaam en deze naar dit adres verwijzen.

Stap 3 - Maak een basisconfiguratie van Ansible

De automatiseringsbestanden van Ansible worden aangeroepen roles. We zullen eerst de directorystructuur instellen (in de ansibledirectory die u zojuist in stap 1 hebt gemaakt) en de basisbestanden.

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

Bewerk het hostsbestand zodat het het volgende bevat, en vervang het ip addressdoor de server die u zojuist hebt gemaakt. Ansible gebruikt python 2, die Ubuntu 16.04 niet standaard heeft geïnstalleerd. In het hostsbestand vertellen we Ansible om python 3 te gebruiken.

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

Bewerk het deploy.ymlbestand zodat het het volgende bevat. We gaan de rootgebruiker gebruiken.

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

Bewerk het /group_vars/allbestand zodat het het volgende bevat. Deze variabelen vertellen Ansible de locatie van uw SSH-sleutels, swap-bestandsparameters, uw Fully Qualified Domain Name en het root-wachtwoord. Vergeet niet om het bestand niet in de broncontrole op te nemen, omdat het je wachtwoord in duidelijke tekst bevat.

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

Bewerk het common/handlers/main.ymlbestand zodat het het volgende bevat.

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

Stap 4 - Maak Ansible-taken voor de basisinstellingen van de server

Ansible-automatisering is gemakkelijker te begrijpen als we het opsplitsen in taken. Laten we bestanden maken voor al onze taken in het proces.

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

main.yml moet verwijzen naar elk bestand dat de Ansible-opdrachten bevat, dus bewerk het om het volgende te bevatten.

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

De eerste stap bij het opzetten van een nieuwe server is het bijwerken van de repocache en het instellen van de tijdzone. Bewerk het common/handlers/setup.ymlbestand zodat het het volgende bevat.

- apt: update_cache=yes
  sudo: yes

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

Nu zullen we de root-gebruiker een wachtwoord geven (dat we nodig hebben om toegang te krijgen tot de virtualmin-webinterface), maar wachtwoordaanmeldingen via SSH uitschakelen (omdat we de veiligere sleutels-authenticatiemethode gebruiken). Bewerken users.ymlom het volgende te bevatten.

- 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

Voor beveiliging hebben we een firewall nodig. We gebruiken de ongecompliceerde firewall om SSH-toegang op poort 22, webtoegang op poort 80en veilige webtoegang op poort toe te staan 443. Bewerk het ufw.ymlbestand zodat het het volgende bevat.

- 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

Optioneel kunt u een wisselbestand opnemen. Dit is essentieel als uw server minder dan 2 GB RAM heeft om vastgelopen geheugen te voorkomen. Bewerken swap.ymlom het volgende te bevatten.

- 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

Stap 5 - Voeg Ansible-taak toe voor het instellen van virtualmin

Virtualmin heeft een eigen installatiebestand dat door Ansible kan worden gedownload en uitgevoerd. Hier gebruiken we de minimale installatie ( LINK). De extra items zijn het configureren van het MySQL-serverwachtwoord dat niet is ingesteld bij installatie door Virtualmin. We moeten MySQL tijdelijk stoppen en de authenticatiemap toevoegen voordat we het wachtwoord wijzigen. Bewerken virtualmin.ymlom het volgende te bevatten.

- 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

De Ansible-rol is nu voltooid en we zijn klaar om te implementeren.

Stap 6 - Voer de installatie uit met Ansible

Vanuit de ansible-map kunnen we nu eenvoudig de volgende opdracht uitvoeren en Ansible voert alle taken uit die we automatisch hebben gemaakt. De eerste keer dat u verbinding maakt, krijgt u een SSH-sleutelwaarschuwing, typ gewoon " yes" bij de prompt.

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

Als we een andere server willen gebruiken, kunnen we eenvoudig het IP-adres in het hosts-bestand wijzigen en die opdracht opnieuw uitvoeren om exact dezelfde configuratie te voltooien.

Stap 7 - Virtualmin post-installatiewizard

De installatie is voltooid en we kunnen nu naar https://192.0.2.1:10000(gebruik het IP-adres van uw server). Uw browser geeft een beveiligingswaarschuwing omdat het certificaat zelfondertekend is, dus klik advanceden voeg een uitzondering toe. U krijgt een inlogpagina te zien. De gebruikersnaam is rooten het wachtwoord is het wachtwoord dat u group_vars/allin stap 3 in het bestand hebt ingevoerd . De eerste keer dat u Virtualmin opent, krijgt u de post-installatiewizard te zien. U kunt deze instellingen handmatig doorlopen of klikken cancelom de standaardinstellingen te accepteren.

Stap 8 - Maak een server en installeer WordPress

Om uw eerste Wordpress-server aan de praat te krijgen, klikt u op het Virtualmin-dashboard Create Virtual Server. U moet een domeinnaam, beschrijving en een beheerderswachtwoord invoeren. De domeinnaam moet verschillen van de volledig gekwalificeerde Virtualmin-domeinnaam en u moet het DNS-record naar het IP-adres van uw server verwijzen.

Klik Create Server. Zodra Virtualmin klaar is met het maken van uw server, klikt u Install Scriptsop het linkermenu. Selecteer Wordpress, klik Show install optionsen kies op de volgende pagina de locatie van de installatie van Wordpress. Kies gewoon At top levelen klik Install Now.

Dat is alles wat u hoeft te doen - u kunt de Wordpress-installatie voltooien door naar uw http://example.net/wp-admin/install.php(waar example.netis deze virtuele servers-domeinnaam) te gaan. Als uw DNS-records nog niet zijn gepropageerd, gaat u naar Services > Preview Websitevanuit het Virtualmin-menu.

U kunt deze stap meerdere keren herhalen om meerdere Wordpress-sites allemaal op dezelfde Vultr-server te maken.



Leave a Comment

Fork CMS installeren op Fedora 28

Fork CMS installeren op Fedora 28

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Ghost v0.11 LTS implementeren op CentOS 7.3

Ghost v0.11 LTS implementeren op CentOS 7.3

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Ghost v0.11 LTS implementeren op Debian 8

Ghost v0.11 LTS implementeren op Debian 8

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Hoe installeer ik het Neos CMS op CentOS 7

Hoe installeer ik het Neos CMS op CentOS 7

Neos is een innovatief open source contentmanagementsysteem dat geweldig is voor het maken en bewerken van online content. Met het oog op auteurs en redacteuren, Neo

WordPress instellen met WooCommerce op CentOS 6

WordPress instellen met WooCommerce op CentOS 6

Vultr-instanties zijn een geweldige manier om uw WordPress-blog uit te voeren, maar een meer opvallende extensie voor WordPress is WooCommerce, een eCommerce-plug-in die de

MODX Revolution installeren op een FreeBSD 11 FAMP VPS

MODX Revolution installeren op een FreeBSD 11 FAMP VPS

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, open source, enterprise-grade Content Management System (CMS) geschreven in PHP. Het ik

MODX Revolution installeren op een Debian 9 LAMP VPS

MODX Revolution installeren op een Debian 9 LAMP VPS

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, gratis en open source, enterprise-grade Content Management System (CMS) geschreven i

Hoe Ghost v0.11 LTS op Fedora 25 te implementeren

Hoe Ghost v0.11 LTS op Fedora 25 te implementeren

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Installeer WordPress op OpenBSD 6.2

Installeer WordPress op OpenBSD 6.2

Introductie WordPress is het dominante contentmanagementsysteem op internet. Het ondersteunt alles, van blogs tot complexe websites met dynamische inhoud

Fork CMS installeren op Debian 9

Fork CMS installeren op Debian 9

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Ghost implementeren op Debian 8.7

Ghost implementeren op Debian 8.7

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds de release in 2013 aan populariteit wint onder ontwikkelaars en gewone gebruikers. ik

Dotclear installeren op Debian 9 (Stretch)

Dotclear installeren op Debian 9 (Stretch)

Gebruikt u een ander systeem? Dotclear is een heel eenvoudige blog-engine. Het is open source en makkelijk te gebruiken. Deze tutorial gaat door de installatie op

Ghost Professional Publishing Platform opzetten op OpenBSD 6

Ghost Professional Publishing Platform opzetten op OpenBSD 6

Ghost is de nieuwste en beste upstart om WordPress te evenaren. Thema-ontwikkeling is snel en gemakkelijk te leren omdat de Ghost-ontwikkelaars besloten om beide te gebruiken

WordPress draaien op OpenBSD 6.5 met OpenBSDs HTTPD

WordPress draaien op OpenBSD 6.5 met OpenBSDs HTTPD

Inleiding Hoe dichter u uw OpenBSD-installatie bij de standaard houdt en zonder zoveel toegevoegde pakketten, hoe veiliger het zal zijn. Terwijl de meer commo

Installeer en configureer een Ghost v1.0.0-blog op Ubuntu 16.04

Installeer en configureer een Ghost v1.0.0-blog op Ubuntu 16.04

Ghost is een modern, open source publicatieplatform gebouwd op Node.js met een Ember.js-beheerclient, een JSON-API en een thema-API, mogelijk gemaakt door Handlebars.js. Ghos

Ghost v0.11 LTS implementeren op Ubuntu 16.04

Ghost v0.11 LTS implementeren op Ubuntu 16.04

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Fork CMS installeren op CentOS 7

Fork CMS installeren op CentOS 7

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Het installeren van Typesetter CMS op CentOS 7

Het installeren van Typesetter CMS op CentOS 7

Typesetter is een open source CMS geschreven in PHP gericht op gebruiksgemak met True WYSIWYG-bewerking en opslag van platte bestanden. In dit artikel zullen we installeren

Hoe MODX Revolution op een Ubuntu 16.04 LAMP VPS te installeren

Hoe MODX Revolution op een Ubuntu 16.04 LAMP VPS te installeren

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, gratis en open source, enterprise-grade Content Management System (CMS) geschreven i

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.