Cum să implementați mai multe site-uri Wordpress folosind Virtualmin și Ansible pe Ubuntu 16.04

O utilizare obișnuită a unui server virtual Vultr este să găzduiască site-uri web Wordpress. Acest ghid vă arată cum să automatizați configurația unui server virtual de la zero (utilizând Ansible) și să implementați mai multe site-uri web independente Wordpress (utilizând Webmin / Virtualmin). Virtualmin / Webmin este o interfață grafică de utilizator care vă permite să gestionați implementarea mai multor conturi de server virtual pe aceeași mașină (completă cu stiva LAMP / LEMP). Virtualmin este foarte asemănător cu cPanel și Plesk, iar în acest tutorial vom folosi ediția GPL gratuită. După instalarea inițială a serverului Vultr și instalarea Virtualmin, puteți configura foarte repede mai multe servere virtuale din interiorul interfeței Virtualmin și instalați direct Wordpress pe acel server virtual complet cu propriul nume de domeniu.

În acest tutorial, în loc să introducem manual o listă lungă de comenzi, vom folosi în schimb Ansible. Ansible este un instrument de automatizare bazat pe python care vă permite să automatizați în mod sigur și repetat sarcinile serverului. Aceasta înseamnă că, după ce ați urmat acest tutorial, veți putea să implementați un alt server în același mod cu doar câteva comenzi.

Cerințe preliminare

  • Cel puțin un nume de domeniu complet calificat și acces la înregistrările DNS
  • Un cont Vultr

Pasul 1 - Instalarea Ansible pe aparatul local

Instalați Ansible pe mașina locală sau pe un alt server.

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

Pasul 2 - Generați chei SSH și implementați serverul

Funcțiile sensibile funcționează conectându-vă la serverul dvs. prin SSH. Accesul SSH este cel mai sigur dacă folosim chei și nu o parolă. Să generăm mai întâi o pereche de chei publice și private.

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

În ssh_keysdirector vor fi acum două fișiere ssh_keysși ssh_keys.pub. ssh_keyseste fișierul dvs. cu cheie privată și trebuie păstrat în siguranță. Acum puteți deschide ssh_keys.pub, care conține cheia publică.

Conectați-vă la tabloul de bord Vultr și dați clic Deploy New Server.

Selectați o regiune, tipul serverului (Ubuntu 16.04), dimensiunea serverului, apoi SSH keysfaceți clic pe partea 6 ( ) Add New. Pe pagina următoare inserați cheia publică și să dea un nume și faceți clic Add SSH key. În sfârșit, asigurați-vă că este selectată tasta și faceți clic pe Deploy now.
După ce serverul a terminat de implementat, vi se va afișa adresa IP. Va trebui să vă conectați la serverul DNS al numelui dvs. de domeniu și să îl indicați către această adresă.

Pasul 3 - Creați o configurație Ansible de bază

Fișierele de automatizare ale Ansible sunt apelate roles. Mai întâi vom configura structura directorului (în interiorul ansibledirectorului pe care tocmai l-ați creat la pasul 1) și fișierele de bază.

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

Editați hostsfișierul pentru a conține următoarele, înlocuind ip addressserverul pe care tocmai l-ați creat. Ansible folosește python 2, pe care Ubuntu 16.04 nu l-a instalat implicit. În hostsfișier îi spunem lui Ansible să utilizeze python 3.

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

Editați deploy.ymlfișierul pentru a conține următoarele. Vom folosi rootutilizatorul.

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

Editați /group_vars/allfișierul pentru a conține următoarele. Aceste variabile spun Ansible locația cheilor dvs. SSH, parametrii fișierului swap, numele dvs. de domeniu complet calificat și parola rădăcină. Vă rugăm să vă amintiți să nu includeți fișierul în controlul sursă, deoarece conține parola într-un text clar.

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

Editați common/handlers/main.ymlfișierul pentru a conține următoarele.

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

Pasul 4 - Creați activități responsabile pentru configurarea serverului de bază

Automatizarea sensibilă este mai ușor de înțeles dacă o descompunem în sarcini. Să creăm fișiere pentru fiecare dintre sarcinile noastre din proces.

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

main.yml ar trebui să indice fiecare fișier care conține comenzile Ansible, așa că editați-l pentru a conține următoarele.

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

Primul pas în configurarea unui nou server este să actualizați memoria cache și să setați fusul orar. Editați common/handlers/setup.ymlfișierul pentru a conține următoarele.

- apt: update_cache=yes
  sudo: yes

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

Acum, vom oferi utilizatorului rădăcină o parolă (pe care va trebui să o accesăm la interfața web virtualmin), dar dezactivăm autentificările de parolă prin SSH (deoarece folosim metoda de autentificare a tastelor mai sigure). Editați users.ymlpentru a conține următoarele.

- 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

Pentru securitate, avem nevoie de un firewall. Vom folosi firewall-ul necomplicat pentru a permite accesul SSH în port 22, accesul web în port 80și acces securizat web în port 443. Editați ufw.ymlfișierul pentru a conține următoarele.

- 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

Opțional, puteți include un fișier swap. Acest lucru este esențial dacă serverul dvs. are mai puțin de 2 GB RAM pentru a evita blocarea memoriei. Editați swap.ymlpentru a conține următoarele.

- 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

Pasul 5 - Adăugați o sarcină sensibilă pentru configurarea virtualmin

Virtualmin are propriul fișier de instalare care poate fi descărcat și rulat de Ansible. Aici folosim instalarea minimă ( LINK). Elementele suplimentare sunt pentru a configura parola serverului MySQL care nu este setată atunci când este instalată de Virtualmin. Trebuie să oprim temporar MySQL și să adăugăm directorul de autentificare înainte de a schimba parola. Editați virtualmin.ymlpentru a conține următoarele.

- 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

Rolul Ansible este acum terminat și suntem gata să le implementăm.

Pasul 6 - Efectuați instalarea cu Ansible

Din folderul ansible, acum putem executa pur și simplu următoarea comandă, iar Ansible va efectua toate sarcinile pe care le-am creat automat. Prima dată când vă conectați, veți primi un avertisment cu cheie SSH, trebuie doar să tastați yesla prompt.

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

Dacă dorim să utilizăm un alt server, putem schimba pur și simplu adresa IP din fișierul gazdelor și rula această comandă pentru a finaliza exact aceeași configurare.

Pasul 7 - Expertul post-instalare Virtualmin

Instalarea este completă și acum putem merge la https://192.0.2.1:10000(folosiți adresa IP a serverului dvs.). Browserul dvs. va emite un avertisment de securitate deoarece certificatul este semnat automat, deci faceți clic advancedși adăugați o excepție. Vi se va prezenta o pagină de conectare. Numele de utilizator este root, iar parola este cea introdusă în group_vars/allfișier la pasul 3. Prima dată când introduceți Virtualmin, vi se va prezenta asistentul post-instalare. Puteți parcurge aceste setări manual sau faceți clic cancelpentru a accepta valorile implicite.

Pasul 8 - Creați un server și instalați WordPress

Pentru a începe să funcționeze primul server Wordpress, faceți clic pe tabloul de bord Virtualmin Create Virtual Server. Va trebui să introduceți un nume de domeniu, o descriere și o parolă a administratorilor. Numele de domeniu ar trebui să fie diferit de numele de domeniu complet calificat Virtualmin și va trebui să indicați înregistrarea DNS către adresa IP a serverului dvs.

Dați clic Create Server. După ce Virtualmin a terminat de creat serverul dvs., faceți clic Install Scriptspe meniul din stânga. Selectați Wordpress, faceți clic Show install options, iar în pagina următoare alegeți locația instalării Wordpress. Trebuie doar să alegeți At top levelși să faceți clic Install Now.

Aceasta este tot ce trebuie să faceți - puteți finaliza instalarea Wordpress vizitând dvs. http://example.net/wp-admin/install.php(unde example.neteste acest nume de domeniu al serverelor virtuale). Dacă înregistrările DNS nu s-au propagat încă, puteți accesa Services > Preview Websitemeniul Virtualmin.

Puteți repeta acest pas de mai multe ori pentru a crea mai multe site-uri Wordpress toate pe același server Vultr.



Leave a Comment

Instalați WordPress pe OpenBSD 6.2

Instalați WordPress pe OpenBSD 6.2

Introducere WordPress este sistemul dominant de gestionare a conținutului pe internet. Acesta alimentează totul, de la bloguri la site-uri web complexe, cu conținut dinamic

Instalați și configurați un blog Ghost v1.0.0 pe Ubuntu 16.04

Instalați și configurați un blog Ghost v1.0.0 pe Ubuntu 16.04

Ghost este o platformă de publicare modernă, open source, construită pe Node.js, cu un client de administrare Ember.js, o API JSON și o API temă alimentată de Handlebars.js. GHOS

Cum să implementați Ghost v0.11 LTS pe Ubuntu 16.04

Cum să implementați Ghost v0.11 LTS pe Ubuntu 16.04

Folosind un sistem diferit? Ghost este o platformă de bloguri de tip open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți încă din 201

Cum să implementați Ghost pe Debian 8.7

Cum să implementați Ghost pe Debian 8.7

Folosind un sistem diferit? Ghost este o platformă de bloguri open source care câștigă popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți din lansarea din 2013. eu

Cum se instalează Dotclear pe Debian 9 (Stretch)

Cum se instalează Dotclear pe Debian 9 (Stretch)

Folosind un sistem diferit? Dotclear este un motor de bloguri foarte simplu. Este open-source și ușor de utilizat. Acest tutorial va parcurge instalarea la

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Ghost este cel mai recent și cel mai mare upstart pentru a rivaliza cu WordPress. Dezvoltarea tematică este rapidă și ușor de învățat, deoarece dezvoltatorii Ghost au decis să utilizeze ambele aplicații

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Introducere Cu cât vă mențineți mai aproape instalarea OpenBSD la valoarea implicită și fără tot atâtea pachete adăugate, cu atât va fi mai sigur. În timp ce mai comun

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de administrare a conținutului (CMS) rapid, flexibil, scalabil, open source, de calitate a întreprinderii, scris în PHP. Este

Cum se instalează Neos CMS pe CentOS 7

Cum se instalează Neos CMS pe CentOS 7

Neos este un sistem inovativ de gestionare a conținutului open source, care este excelent pentru crearea și editarea de conținut online. Cu autori și editori în minte, Neo

Cum se instalează MODX Revolution pe un Fedora 26 LAMP VPS

Cum se instalează MODX Revolution pe un Fedora 26 LAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

Instalarea Fork CMS pe CentOS 7

Instalarea Fork CMS pe CentOS 7

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum se instalează Typesetter CMS pe CentOS 7

Cum se instalează Typesetter CMS pe CentOS 7

Typesetter este un CMS open source scris în PHP axat pe ușurința de utilizare cu editarea True WYSIWYG și stocarea fișierului plat. În acest articol, vom fi installin

Cum se instalează MODX Revolution pe un VPS CentOS 7 LAMP

Cum se instalează MODX Revolution pe un VPS CentOS 7 LAMP

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

Crearea unui blog Jekyll pe CentOS 7

Crearea unui blog Jekyll pe CentOS 7

Folosind un sistem diferit? Jekyll este o alternativă bună la WordPress. Nu are nevoie de baze de date și funcționează cu un limbaj pe care mulți îl cunosc

Cum să implementați Ghost v0.11 LTS pe Debian 8

Cum să implementați Ghost v0.11 LTS pe Debian 8

Folosind un sistem diferit? Ghost este o platformă de bloguri de tip open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți încă din 201

Instalarea Forks CMS pe Debian 9

Instalarea Forks CMS pe Debian 9

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum să implementați Ghost pe Ubuntu 16.04

Cum să implementați Ghost pe Ubuntu 16.04

Folosind un sistem diferit? Ghost este o platformă de bloguri open source care câștigă popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți din lansarea din 2013. eu

Instalarea Fork CMS pe Fedora 28

Instalarea Fork CMS pe Fedora 28

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum să implementați Ghost v0.11 LTS pe CentOS 7.3

Cum să implementați Ghost v0.11 LTS pe CentOS 7.3

Folosind un sistem diferit? Ghost este o platformă de bloguri de tip open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți încă din 201

Cum se instalează MODX Revolution pe un Debian 9 LAMP VPS

Cum se instalează MODX Revolution pe un Debian 9 LAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe