Sådan implementeres flere Wordpress-websteder ved hjælp af Virtualmin og Ansible på Ubuntu 16.04

En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne vejledning viser dig, hvordan du automatiserer konfigurationen af ​​en virtuel server fra bunden (ved hjælp af Ansible) og implementerer flere uafhængige Wordpress-websteder (ved hjælp af Webmin/Virtualmin). Virtualmin/Webmin er en grafisk brugergrænseflade, der giver dig mulighed for at administrere implementeringen af ​​flere virtuelle serverkonti på den samme maskine (komplet med LAMP/LEMP-stak). Virtualmin ligner meget cPanel og Plesk, og i denne vejledning vil vi bruge den gratis GPL-udgave. Efter indledende opsætning af Vultr-serveren og installation af Virtualmin, kan du meget hurtigt opsætte flere virtuelle servere fra Virtualmin-grænsefladen og direkte installere Wordpress på den virtuelle server komplet med sit eget domænenavn.

I denne vejledning vil vi i stedet for manuelt at indtaste en lang liste af kommandoer bruge Ansible. Ansible er et python-baseret automatiseringsværktøj, som giver dig mulighed for pålideligt og gentagne gange at automatisere serveropgaver. Det betyder, at når du har fulgt denne vejledning, vil du være i stand til at implementere en anden server på samme måde med blot et par kommandoer.

Forudsætninger

  • Mindst ét ​​fuldt kvalificeret domænenavn og adgang til DNS-posterne
  • En Vultr-konto

Trin 1 - Installation af Ansible på din lokale maskine

Installer Ansible på din lokale maskine eller en anden server.

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

Trin 2 - Generer SSH-nøgler og implementer server

Ansible fungerer ved at logge på din server via SSH. SSH-adgang er mest sikker, hvis vi bruger nøgler i stedet for en adgangskode. Lad os først generere et offentligt og et privat nøglepar.

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

I ssh_keysmappen vil der nu være to filer, ssh_keysog ssh_keys.pub. ssh_keyser din private nøglefil og bør opbevares sikkert. Du kan nu åbne ssh_keys.pub, som indeholder den offentlige nøgle.

Log ind på Vultr-webdashboardet, og klik på Deploy New Server.

Vælg en region, Servertype (Ubuntu 16.04), Serverstørrelse, og SSH keysklik derefter i del 6 ( ) Add New. Indsæt din offentlige nøgle på næste side og giv den et navn, og klik på Add SSH key. Sørg endelig for, at nøglen er valgt, og klik på Deploy now.
Når serveren er færdig med at installere, får du vist dens ip-adresse. Du skal logge ind på dit domænenavns DNS-server og pege den til denne adresse.

Trin 3 - Opret en grundlæggende Ansible-konfiguration

Ansibles automatiseringsfiler hedder roles. Vi opsætter først mappestrukturen (inde i den ansiblemappe, du lige har oprettet i trin 1), og de grundlæggende filer.

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

Rediger hostsfilen, så den indeholder følgende, og erstatter ip addressden server, du lige har oprettet. Ansible bruger python 2, som Ubuntu 16.04 ikke har installeret som standard. I hostsfilen fortæller vi Ansible at bruge python 3.

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

Rediger deploy.ymlfilen, så den indeholder følgende. Vi kommer til at bruge rootbrugeren.

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

Rediger /group_vars/allfilen, så den indeholder følgende. Disse variabler fortæller Ansible placeringen af ​​dine SSH-nøgler, swap-filparametre, dit fuldt kvalificerede domænenavn og root-adgangskoden. Husk ikke at inkludere filen i kildekontrol, da den indeholder din adgangskode i klartekst.

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

Rediger common/handlers/main.ymlfilen, så den indeholder følgende.

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

Trin 4 - Opret Ansible opgaver til grundlæggende serveropsætning

Ansible automatisering er lettere at forstå, hvis vi deler den op i opgaver. Lad os oprette filer til hver af vores opgaver i processen.

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

main.yml skal pege på hver fil, der indeholder Ansible-kommandoerne, så rediger den, så den indeholder følgende.

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

Det første trin i opsætningen af ​​en ny server er at opdatere repo-cachen og indstille tidszonen. Rediger common/handlers/setup.ymlfilen, så den indeholder følgende.

- apt: update_cache=yes
  sudo: yes

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

Nu giver vi root-brugeren en adgangskode (som vi skal bruge for at få adgang til virtualmin-webgrænsefladen), men deaktiverer adgangskodelogin over SSH (da vi bruger den mere sikre nøglemetode til godkendelse). Rediger for users.ymlat indeholde følgende.

- 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

Af sikkerhedsmæssige årsager har vi brug for en firewall. Vi bruger den ukomplicerede firewall til at tillade SSH-adgang på port 22, webadgang på port 80og sikker webadgang på port 443. Rediger ufw.ymlfilen, så den indeholder følgende.

- 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

Du kan eventuelt inkludere en swap-fil. Dette er vigtigt, hvis din server har mindre end 2 GB RAM for at undgå nedbrud i hukommelsen. Rediger for swap.ymlat indeholde følgende.

- 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

Trin 5 - Tilføj Ansible-opgave til virtualmin-opsætning

Virtualmin har sin egen installationsfil, som kan downloades og køres af Ansible. Her bruger vi den minimale installation ( LINK). De yderligere elementer er at konfigurere MySQL-serveradgangskoden, som ikke er indstillet, når den installeres af Virtualmin. Vi er nødt til midlertidigt at stoppe MySQL og tilføje autentificeringsmappen før vi ændrer adgangskoden. Rediger for virtualmin.ymlat indeholde følgende.

- 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

Ansible-rollen er nu afsluttet, og vi er klar til at implementere.

Trin 6 - Udfør installationen med Ansible

Fra ansible-mappen kan vi nu blot køre følgende kommando, og Ansible udfører alle de opgaver, vi har oprettet automatisk. Første gang du opretter forbindelse vil du få en SSH-nøgleadvarsel, skriv bare " yes" ved prompten.

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

Hvis vi ønsker at bruge en anden server, kan vi blot ændre ip-adressen i hosts-filen og køre den kommando igen for at fuldføre nøjagtig den samme opsætning.

Trin 7 - Virtualmin efterinstallationsguide

Installationen er færdig, og vi kan nu gå til https://192.0.2.1:10000(brug ip-adressen på din server). Din browser vil udsende en sikkerhedsadvarsel, fordi certifikatet er selvsigneret, så klik advancedog tilføj en undtagelse. Du vil blive præsenteret for en login-side. Brugernavnet er root, og adgangskoden er den, du indtastede i group_vars/allfilen i trin 3. Første gang du indtaster Virtualmin, vil du blive præsenteret for efterinstallationsguiden. Du kan enten gå igennem disse indstillinger manuelt eller klikke for cancelat acceptere standardindstillingerne.

Trin 8 - Opret en server og installer WordPress

For at få din første Wordpress-server op at køre, skal du klikke på fra Virtualmin-dashboardet Create Virtual Server. Du skal indtaste et domænenavn, en beskrivelse og en administratoradgangskode. Domænenavnet skal være forskelligt fra Virtualmins fuldt kvalificerede domænenavn, og du skal pege DNS-posten til din servers ip-adresse.

Klik på Create Server. Når Virtualmin er færdig med at oprette din server, skal du klikke Install Scriptspå menuen til venstre. Vælg Wordpress, klik på Show install options, og vælg placeringen af ​​Wordpress-installationen på den følgende side. Bare vælg At top levelog klik Install Now.

Det er alt, du skal gøre - du kan fuldføre Wordpress-installationen ved at besøge dit http://example.net/wp-admin/install.php(hvor example.neter dette virtuelle servers domænenavn). Hvis dine DNS-poster ikke har spredt sig endnu, kan du gå til Services > Preview Websitefra Virtualmin-menuen.

Du kan gentage dette trin flere gange for at oprette flere Wordpress-websteder alle på den samme Vultr-server.


Oprettelse af en Jekyll-blog på Ubuntu 16.04

Oprettelse af en Jekyll-blog på Ubuntu 16.04

Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs

Sådan installeres MODX Revolution på en Ubuntu 16.04 LAMPE VPS

Sådan installeres MODX Revolution på en Ubuntu 16.04 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold

Oprettelse af en Jekyll-blog på CentOS 7

Oprettelse af en Jekyll-blog på CentOS 7

Bruger du et andet system? Jekyll er et godt alternativ til WordPress. Det kræver ingen databaser, og det fungerer med et sprog, som mange kender til

Sådan installeres MODX Revolution på en CentOS 7 LAMPE VPS

Sådan installeres MODX Revolution på en CentOS 7 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Installation af Fork CMS på CentOS 7

Installation af Fork CMS på CentOS 7

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Neos CMS på CentOS 7

Sådan installeres Neos CMS på CentOS 7

Neos er et innovativt open source-indholdsstyringssystem, som er fantastisk til at skabe og redigere onlineindhold. Med forfattere og redaktører i tankerne, Neo

Sådan implementeres Ghost v0.11 LTS på CentOS 7.3

Sådan implementeres Ghost v0.11 LTS på CentOS 7.3

Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201

Sådan installeres SilverStripe CMS på en FreeBSD 11 FAMP VPS

Sådan installeres SilverStripe CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er let

Sådan installeres Ghost v0.11 LTS på Fedora 25

Sådan installeres Ghost v0.11 LTS på Fedora 25

Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201

Sådan implementeres flere Wordpress-websteder ved hjælp af Virtualmin og Ansible på Ubuntu 16.04

Sådan implementeres flere Wordpress-websteder ved hjælp af Virtualmin og Ansible på Ubuntu 16.04

En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne guide viser dig, hvordan du automatiserer konfigurationen af ​​en virtuel server fra bunden

Opsætning af Ghost Professional Publishing Platform på OpenBSD 6

Opsætning af Ghost Professional Publishing Platform på OpenBSD 6

Ghost er den seneste og bedste opkomling til at konkurrere med WordPress. Temaudvikling er hurtig og nem at lære, fordi Ghost-udviklerne besluttede at bruge både th

Installer og konfigurer en Ghost v1.0.0-blog på Ubuntu 16.04

Installer og konfigurer en Ghost v1.0.0-blog på Ubuntu 16.04

Ghost er en moderne, open source publiceringsplatform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet af Handlebars.js. Ghos

Sådan installeres MODX Revolution på en Fedora 26 LAMPE VPS

Sådan installeres MODX Revolution på en Fedora 26 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Sådan installeres Dotclear på Debian 9 (Stretch)

Sådan installeres Dotclear på Debian 9 (Stretch)

Bruger du et andet system? Dotclear er en meget simpel blogging-motor. Det er open source og nemt at bruge. Denne tutorial vil gennemgå installationen på

Sådan installeres SilverStripe CMS på en Fedora 26 LAMP VPS

Sådan installeres SilverStripe CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt gratis og open source enterprise-grade Content Management System (CMS) skrevet i PHP. jeg

Installation af Fork CMS på Ubuntu 16.04 LTS

Installation af Fork CMS på Ubuntu 16.04 LTS

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Ghost på Debian 8.7

Sådan installeres Ghost på Debian 8.7

Bruger du et andet system? Ghost er en open source-blogplatform, der er ved at vinde popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. jeg

Installation af Fork CMS på Debian 9

Installation af Fork CMS på Debian 9

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere