Ako nasadiť viacero stránok Wordpress pomocou Virtualmin a Ansible na Ubuntu 16.04

Bežným používaním virtuálneho servera Vultr je hosťovanie webových stránok Wordpress. Táto príručka vám ukáže, ako automatizovať konfiguráciu virtuálneho servera od začiatku (pomocou Ansible) a nasadiť viacero nezávislých webových stránok Wordpress (pomocou Webmin/Virtualmin). Virtualmin/Webmin je grafické používateľské rozhranie, ktoré vám umožňuje spravovať nasadenie viacerých účtov virtuálneho servera na rovnakom počítači (kompletne so zásobníkom LAMP/LEMP). Virtualmin je veľmi podobný cPanel a Plesk a v tomto návode budeme používať bezplatnú edíciu GPL. Po úvodnom nastavení servera Vultr a inštalácii Virtualminu môžete veľmi rýchlo nastaviť viacero virtuálnych serverov z rozhrania Virtualmin a priamo nainštalovať Wordpress na tento virtuálny server s vlastným názvom domény.

V tomto návode namiesto manuálneho zadávania dlhého zoznamu príkazov použijeme Ansible. Ansible je automatizačný nástroj založený na pythone, ktorý vám umožňuje spoľahlivo a opakovane automatizovať úlohy servera. To znamená, že akonáhle budete postupovať podľa tohto návodu, budete môcť rovnakým spôsobom nasadiť ďalší server pomocou niekoľkých príkazov.

Predpoklady

  • Aspoň jeden plne kvalifikovaný názov domény a prístup k záznamom DNS
  • Účet Vultr

Krok 1 – Inštalácia Ansible na váš lokálny počítač

Nainštalujte Ansible na svoj lokálny počítač alebo iný server.

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

Krok 2 - Vygenerujte kľúče SSH a nasaďte server

Ansible funguje tak, že sa prihlásite na váš server cez SSH. Prístup SSH je najbezpečnejší, ak namiesto hesla používame kľúče. Najprv vygenerujme pár verejného a súkromného kľúča.

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

V ssh_keysadresári budú teraz dva súbory ssh_keysa ssh_keys.pub. ssh_keysje súbor vášho súkromného kľúča a mal by byť chránený. Teraz môžete otvoriť súbor ssh_keys.pub, ktorý obsahuje verejný kľúč.

Prihláste sa na webový panel Vultr a kliknite na Deploy New Server.

Vyberte oblasť, typ servera (Ubuntu 16.04), veľkosť servera a potom v časti 6 ( SSH keys) kliknite na Add New. Na ďalšej stránke prilepte svoj verejný kľúč, pomenujte ho a kliknite na tlačidlo Add SSH key. Nakoniec sa uistite, že je vybratý kľúč a kliknite na Deploy now.
Po dokončení nasadenia servera sa vám zobrazí jeho IP adresa. Budete sa musieť prihlásiť na server DNS názvu vašej domény a nasmerovať ho na túto adresu.

Krok 3 – Vytvorte základnú konfiguráciu Ansible

Automatizačné súbory Ansible sa nazývajú roles. Najprv nastavíme adresárovú štruktúru (v ansibleadresári, ktorý ste práve vytvorili v kroku 1) a základné súbory.

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

Upravte hostssúbor tak, aby obsahoval nasledovné, nahraďte ip addressserver, ktorý ste práve vytvorili. Ansible používa python 2, ktorý Ubuntu 16.04 nemá štandardne nainštalovaný. V hostssúbore povieme Ansible použiť python 3.

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

Upravte deploy.ymlsúbor tak, aby obsahoval nasledovné. Budeme používať rootpoužívateľa.

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

Upravte /group_vars/allsúbor tak, aby obsahoval nasledovné. Tieto premenné informujú Ansible o umiestnení vašich kľúčov SSH, parametroch odkladacieho súboru, vašom plne kvalifikovanom názve domény a koreňovom hesle. Nezabudnite, že súbor nesmiete zahrnúť do ovládacieho prvku zdroja, pretože obsahuje vaše heslo ako čistý text.

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

Upravte common/handlers/main.ymlsúbor tak, aby obsahoval nasledovné.

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

Krok 4 - Vytvorte Ansible úlohy pre základné nastavenie servera

Ansible automatizáciu je ľahšie pochopiť, ak ju rozdelíme na úlohy. V tomto procese vytvorte súbory pre každú z našich úloh.

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

main.yml by mal ukazovať na každý súbor obsahujúci príkazy Ansible, takže ho upravte tak, aby obsahoval nasledujúce.

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

Prvým krokom pri nastavovaní nového servera je aktualizácia vyrovnávacej pamäte repo a nastavenie časového pásma. Upravte common/handlers/setup.ymlsúbor tak, aby obsahoval nasledovné.

- apt: update_cache=yes
  sudo: yes

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

Teraz dáme používateľovi root heslo (ktoré budeme potrebovať na prístup k webovému rozhraniu virtualmin), ale zakážeme prihlasovanie heslom cez SSH (keďže používame bezpečnejšiu metódu autentifikácie pomocou kľúčov). Upraviť tak, users.ymlaby obsahovalo nasledovné.

- 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

Kvôli bezpečnosti potrebujeme firewall. Nekomplikovaný firewall použijeme na umožnenie prístupu SSH na porte 22, webového prístupu na porte 80a zabezpečeného webového prístupu na porte 443. Upravte ufw.ymlsúbor tak, aby obsahoval nasledovné.

- 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

Voliteľne môžete zahrnúť odkladací súbor. Je to nevyhnutné, ak má váš server menej ako 2 GB RAM, aby ste predišli výpadkom pamäte. Upraviť tak, swap.ymlaby obsahovalo nasledovné.

- 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

Krok 5 - Pridajte úlohu Ansible pre nastavenie virtualminu

Virtualmin má svoj vlastný inštalačný súbor, ktorý si môže stiahnuť a spustiť Ansible. Tu používame minimálnu inštaláciu ( LINK). Ďalšími položkami sú konfigurácia hesla servera MySQL, ktoré nie je nastavené pri inštalácii programom Virtualmin. Pred zmenou hesla musíme dočasne zastaviť MySQL a pridať autentifikačný adresár. Upraviť tak, virtualmin.ymlaby obsahovalo nasledovné.

- 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

Úloha Ansible je teraz dokončená a sme pripravení na nasadenie.

Krok 6 - Vykonajte inštaláciu pomocou Ansible

Z priečinka ansible teraz môžeme jednoducho spustiť nasledujúci príkaz a Ansible automaticky vykoná všetky úlohy, ktoré sme vytvorili. Pri prvom pripojení sa zobrazí upozornenie na kľúč SSH, stačí yesdo výzvy zadať „ “.

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

Ak chceme použiť iný server, môžeme jednoducho zmeniť IP adresu v súbore hosts a znova spustiť tento príkaz, aby sme dokončili presne to isté nastavenie.

Krok 7 – Sprievodca po inštalácii Virtualminu

Inštalácia je dokončená a teraz môžeme prejsť na https://192.0.2.1:10000(použite IP adresu vášho servera). Váš prehliadač vydá bezpečnostné upozornenie, pretože certifikát je podpísaný sám sebou, takže kliknite advanceda pridajte výnimku. Zobrazí sa vám prihlasovacia stránka. Používateľské meno je roota heslo je to, ktoré ste zadali do group_vars/allsúboru v kroku 3. Keď prvýkrát zadáte Virtualmin, zobrazí sa vám sprievodca po inštalácii. Môžete prejsť týmito nastaveniami manuálne alebo kliknutím cancelakceptovať predvolené hodnoty.

Krok 8 – Vytvorte server a nainštalujte WordPress

Ak chcete spustiť a spustiť svoj prvý server Wordpress, na paneli Virtualmin kliknite na Create Virtual Server. Budete musieť zadať názov domény, popis a heslo správcu. Názov domény by sa mal líšiť od úplného názvu domény Virtualmin a budete musieť nasmerovať DNS záznam na IP adresu vášho servera.

Kliknite na Create Server. Keď Virtualmin dokončí vytváranie vášho servera, kliknite Install Scriptsna ponuku vľavo. Vyberte Wordpress, kliknite na Show install optionsa na nasledujúcej stránke vyberte umiestnenie inštalácie Wordpress. Stačí si vybrať At top levela kliknúť Install Now.

To je všetko, čo musíte urobiť - inštaláciu Wordpress môžete dokončiť návštevou vašej domény http://example.net/wp-admin/install.php(kde example.netje názov domény virtuálnych serverov). Ak sa vaše záznamy DNS ešte nerozšírili, môžete prejsť na Services > Preview Websitez ponuky Virtualmin.

Tento krok môžete zopakovať niekoľkokrát, aby ste vytvorili viacero stránok Wordpress, všetky na rovnakom serveri Vultr.


Ako nainštalovať MODX Revolution na Ubuntu 16.04 LAMP VPS

Ako nainštalovať MODX Revolution na Ubuntu 16.04 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. To i

Nainštalujte WordPress na OpenBSD 6.2

Nainštalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantný redakčný systém na internete. Poháňa všetko od blogov až po zložité webové stránky s dynamickým obsahom

Vytvorenie blogu Jekyll na CentOS 7

Vytvorenie blogu Jekyll na CentOS 7

Používate iný systém? Jekyll je dobrou alternatívou k WordPress. Nevyžaduje žiadne databázy a pracuje s jazykom, ktorý mnohí poznajú

Ako nainštalovať MODX Revolution na CentOS 7 LAMP VPS

Ako nainštalovať MODX Revolution na CentOS 7 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Inštalácia Fork CMS na CentOS 7

Inštalácia Fork CMS na CentOS 7

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať Neos CMS na CentOS 7

Ako nainštalovať Neos CMS na CentOS 7

Neos je inovatívny open source systém na správu obsahu, ktorý je skvelý na vytváranie a úpravu online obsahu. S ohľadom na autorov a redaktorov, Neo

Ako nasadiť Ghost v0.11 LTS na CentOS 7.3

Ako nasadiť Ghost v0.11 LTS na CentOS 7.3

Používate iný systém? Ghost je open source platforma na blogovanie, ktorá si od roku 201 získava na popularite medzi vývojármi aj bežnými používateľmi.

Inštalácia Fork CMS na Fedora 28

Inštalácia Fork CMS na Fedora 28

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať SilverStripe CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať SilverStripe CMS na FreeBSD 11 FAMP VPS

Používate iný systém? SilverStripe je flexibilný a rozšíriteľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. Je to ľahké

Ako nasadiť Ghost v0.11 LTS na Fedore 25

Ako nasadiť Ghost v0.11 LTS na Fedore 25

Používate iný systém? Ghost je open source platforma na blogovanie, ktorá si od roku 201 získava na popularite medzi vývojármi aj bežnými používateľmi.

Ako nasadiť viacero stránok Wordpress pomocou Virtualmin a Ansible na Ubuntu 16.04

Ako nasadiť viacero stránok Wordpress pomocou Virtualmin a Ansible na Ubuntu 16.04

Bežným používaním virtuálneho servera Vultr je hosťovanie webových stránok Wordpress. Táto príručka vám ukáže, ako automatizovať konfiguráciu virtuálneho servera od začiatku

Nastavenie platformy Ghost Professional Publishing Platform na OpenBSD 6

Nastavenie platformy Ghost Professional Publishing Platform na OpenBSD 6

Ghost je najnovší a najväčší počiatok konkurenčného WordPressu. Vývoj tém sa dá rýchlo a ľahko naučiť, pretože vývojári Ghost sa rozhodli použiť obe th

Nainštalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Nainštalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Ghost je moderná, open source publikačná platforma postavená na Node.js s administračným klientom Ember.js, JSON API a tematickým API založeným na Handlebars.js. Ghos

Ako nainštalovať MODX Revolution na Fedora 26 LAMP VPS

Ako nainštalovať MODX Revolution na Fedora 26 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Ako nainštalovať Dotclear na Debian 9 (Stretch)

Ako nainštalovať Dotclear na Debian 9 (Stretch)

Používate iný systém? Dotclear je veľmi jednoduchý blogovací nástroj. Je to open source a ľahko sa používa. Tento návod prejde inštaláciou na

Ako nainštalovať SilverStripe CMS na Fedora 26 LAMP VPS

Ako nainštalovať SilverStripe CMS na Fedora 26 LAMP VPS

Používate iný systém? SilverStripe je flexibilný a rozšíriteľný bezplatný a open source podnikový systém správy obsahu (CMS) napísaný v PHP. ja

Inštalácia Fork CMS na Ubuntu 16.04 LTS

Inštalácia Fork CMS na Ubuntu 16.04 LTS

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nasadiť Ghost na Debiane 8.7

Ako nasadiť Ghost na Debiane 8.7

Používate iný systém? Ghost je platforma na blogovanie s otvoreným zdrojom, ktorá si od svojho vydania v roku 2013 získava na popularite medzi vývojármi a bežnými používateľmi. ja

Ako nainštalovať Typesetter CMS na CentOS 7

Ako nainštalovať Typesetter CMS na CentOS 7

Typesetter je open source CMS napísaný v PHP zameraný na jednoduché použitie s True WYSIWYG editáciou a plochým ukladaním súborov. V tomto článku budeme inštalovať

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac