Jak nasadit více webů Wordpress pomocí Virtualmin a Ansible na Ubuntu 16.04

Běžným využitím virtuálního serveru Vultr je hostování webových stránek Wordpress. Tato příručka vám ukáže, jak automatizovat konfiguraci virtuálního serveru od začátku (pomocí Ansible) a nasadit více nezávislých webů Wordpress (pomocí Webmin/Virtualmin). Virtualmin/Webmin je grafické uživatelské rozhraní, které vám umožňuje spravovat nasazení více účtů virtuálního serveru na stejném počítači (kompletní se zásobníkem LAMP/LEMP). Virtualmin je velmi podobný cPanel a Plesk a v tomto tutoriálu budeme používat bezplatnou edici GPL. Po počátečním nastavení serveru Vultr a instalaci Virtualminu můžete velmi rychle nastavit více virtuálních serverů z rozhraní Virtualmin a přímo nainstalovat Wordpress na tento virtuální server s jeho vlastním názvem domény.

V tomto tutoriálu místo ručního zadávání dlouhého seznamu příkazů použijeme Ansible. Ansible je automatizační nástroj založený na pythonu, který vám umožňuje spolehlivě a opakovaně automatizovat úlohy serveru. To znamená, že jakmile budete postupovat podle tohoto návodu, budete moci stejným způsobem nasadit další server pomocí několika příkazů.

Předpoklady

  • Alespoň jeden plně kvalifikovaný název domény a přístup k záznamům DNS
  • Účet Vultr

Krok 1 – Instalace Ansible na váš místní počítač

Nainstalujte Ansible na místní počítač nebo jiný server.

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

Krok 2 - Vygenerujte klíče SSH a nasaďte server

Ansible funguje tak, že se na váš server přihlásíte přes SSH. Přístup SSH je nejbezpečnější, pokud místo hesla používáme klíče. Nejprve vygenerujeme pár veřejného a soukromého klíče.

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

V ssh_keysadresáři budou nyní dva soubory ssh_keysa ssh_keys.pub. ssh_keysje soubor vašeho soukromého klíče a měl by být uchováván v bezpečí. Nyní můžete otevřít soubor ssh_keys.pub, který obsahuje veřejný klíč.

Přihlaste se na webový panel Vultr a klikněte na Deploy New Server.

Vyberte oblast, Typ serveru (Ubuntu 16.04), Velikost serveru a poté v části 6 ( SSH keys) klikněte na Add New. Na další stránce vložte svůj veřejný klíč, pojmenujte jej a klikněte na Add SSH key. Nakonec se ujistěte, že je vybrán klíč, a klepněte na Deploy now.
Jakmile server dokončí nasazení, zobrazí se vám jeho IP adresa. Budete se muset přihlásit k serveru DNS názvu vaší domény a nasměrovat jej na tuto adresu.

Krok 3 – Vytvořte základní konfiguraci Ansible

Automatizační soubory Ansible se nazývají roles. Nejprve nastavíme adresářovou strukturu (uvnitř ansibleadresáře, který jste právě vytvořili v kroku 1) a základní soubory.

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

Upravte hostssoubor tak, aby obsahoval následující, nahraďte ip addressserver, který jste právě vytvořili. Ansible používá python 2, který Ubuntu 16.04 nemá ve výchozím nastavení nainstalovaný. V hostssouboru říkáme Ansible, aby používal python 3.

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

Upravte deploy.ymlsoubor tak, aby obsahoval následující. Budeme používat rootuživatele.

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

Upravte /group_vars/allsoubor tak, aby obsahoval následující. Tyto proměnné říkají Ansible umístění vašich klíčů SSH, parametry odkládacího souboru, vaše plně kvalifikované jméno domény a heslo uživatele root. Mějte na paměti, není -li soubor do řízení zdrojů, protože obsahuje heslo ve formátu prostého textu.

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.ymlsoubor tak, aby obsahoval následující.

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

Krok 4 - Vytvořte Ansible úlohy pro základní nastavení serveru

Ansible automatizaci je snazší pochopit, pokud ji rozdělíme na úkoly. Pojďme vytvořit soubory pro každý z našich úkolů v procesu.

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

main.yml by měl ukazovat na každý soubor obsahující příkazy Ansible, takže jej upravte tak, aby obsahoval následující.

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

Prvním krokem při nastavování nového serveru je aktualizace mezipaměti úložiště a nastavení časového pásma. Upravte common/handlers/setup.ymlsoubor tak, aby obsahoval následující.

- apt: update_cache=yes
  sudo: yes

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

Nyní dáme uživateli root heslo (které budeme potřebovat pro přístup k webovému rozhraní virtualminu), ale zakážeme přihlašování heslem přes SSH (protože používáme bezpečnější klíčovou metodu ověřování). Upravit tak, users.ymlaby obsahovala následující.

- 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 potřebujeme firewall. Použijeme nekomplikovaný firewall, abychom umožnili SSH přístup na portu 22, webový přístup na portu 80a bezpečný webový přístup na portu 443. Upravte ufw.ymlsoubor tak, aby obsahoval následující.

- 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

Volitelně můžete zahrnout odkládací soubor. To je nezbytné, pokud má váš server méně než 2 GB RAM, aby se předešlo výpadkům z nedostatku paměti. Upravit tak, swap.ymlaby obsahovala následující.

- 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 - Přidejte Ansible úlohu pro nastavení virtualminu

Virtualmin má svůj vlastní instalační soubor, který si může Ansible stáhnout a spustit. Zde používáme minimální instalaci ( LINK). Dalšími položkami je konfigurace hesla serveru MySQL, které se při instalaci Virtualminem nenastavuje. Před změnou hesla musíme dočasně zastavit MySQL a přidat autentizační adresář. Upravit tak, virtualmin.ymlaby obsahovala následující.

- 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

Role Ansible je nyní dokončena a jsme připraveni k nasazení.

Krok 6 - Proveďte instalaci pomocí Ansible

Ze složky ansible nyní můžeme jednoduše spustit následující příkaz a Ansible automaticky provede všechny úkoly, které jsme vytvořili. Při prvním připojení se zobrazí upozornění na klíč SSH, stačí yesdo výzvy zadat „ “.

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

Pokud chceme použít jiný server, můžeme jednoduše změnit IP adresu v souboru hosts a spustit tento příkaz znovu, abychom dokončili přesně stejné nastavení.

Krok 7 – Průvodce po instalaci Virtualminu

Instalace je dokončena a nyní můžeme přejít na https://192.0.2.1:10000(použijte IP adresu vašeho serveru). Váš prohlížeč vydá bezpečnostní varování, protože certifikát je podepsán sám sebou, takže klikněte advanceda přidejte výjimku. Zobrazí se vám přihlašovací stránka. Uživatelské jméno je roota heslo je to, které jste zadali do group_vars/allsouboru v kroku 3. Když poprvé vstoupíte do Virtualminu, zobrazí se vám průvodce po instalaci. Tato nastavení můžete buď projít ručně, nebo kliknutím cancelpřijmout výchozí nastavení.

Krok 8 – Vytvořte server a nainstalujte WordPress

Chcete-li zprovoznit svůj první server Wordpress, klikněte na ovládacím panelu Virtualmin na Create Virtual Server. Budete muset zadat název domény, popis a heslo správce. Název domény by se měl lišit od plně kvalifikovaného názvu domény Virtualmin a budete muset nasměrovat DNS záznam na IP adresu vašeho serveru.

Klikněte na Create Server. Jakmile Virtualmin dokončí vytváření vašeho serveru, klikněte Install Scriptsna nabídku vlevo. Vyberte Wordpress, klikněte Show install optionsna a na následující stránce zvolte umístění instalace Wordpressu. Stačí si vybrat At top levela kliknout Install Now.

To je vše, co musíte udělat – instalaci Wordpressu můžete dokončit tak, že navštívíte vaši http://example.net/wp-admin/install.php(kde example.netje název domény virtuálních serverů). Pokud se vaše DNS záznamy ještě nerozšířily, můžete přejít na Services > Preview Websitez nabídky Virtualmin.

Tento krok můžete opakovat několikrát, abyste vytvořili více webů Wordpress, všechny na stejném serveru Vultr.


Vytvoření blogu Jekyll na Ubuntu 16.04

Vytvoření blogu Jekyll na Ubuntu 16.04

Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i

Jak nainstalovat MODX Revolution na Ubuntu 16.04 LAMP VPS

Jak nainstalovat MODX Revolution na Ubuntu 16.04 LAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, open source podnikový systém správy obsahu (CMS) napsaný v PHP. To i

Nainstalujte WordPress na OpenBSD 6.2

Nainstalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantním redakčním systémem na internetu. Pohání vše od blogů po složité webové stránky s dynamickým obsahem

Vytvoření blogu Jekyll na CentOS 7

Vytvoření blogu Jekyll na CentOS 7

Používáte jiný systém? Jekyll je dobrou alternativou k WordPressu. Nevyžaduje žádné databáze a pracuje s jazykem, který mnozí zná

Jak nainstalovat MODX Revolution na CentOS 7 LAMP VPS

Jak nainstalovat MODX Revolution na CentOS 7 LAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i

Instalace Fork CMS na CentOS 7

Instalace Fork CMS na CentOS 7

Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM

Jak nainstalovat Neos CMS na CentOS 7

Jak nainstalovat Neos CMS na CentOS 7

Neos je inovativní open source systém pro správu obsahu, který je skvělý pro vytváření a úpravy online obsahu. S ohledem na autory a editory, Neo

Jak nasadit Ghost v0.11 LTS na CentOS 7.3

Jak nasadit Ghost v0.11 LTS na CentOS 7.3

Používáte jiný systém? Ghost je open source platforma pro blogování, která si od roku 201 získává oblibu mezi vývojáři i běžnými uživateli.

Jak nainstalovat SilverStripe CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat SilverStripe CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? SilverStripe je flexibilní a rozšiřitelný, open source, podnikový systém správy obsahu (CMS) napsaný v PHP. Je to snadné

Jak nasadit Ghost v0.11 LTS na Fedoře 25

Jak nasadit Ghost v0.11 LTS na Fedoře 25

Používáte jiný systém? Ghost je open source platforma pro blogování, která si od roku 201 získává oblibu mezi vývojáři i běžnými uživateli.

Jak nasadit více webů Wordpress pomocí Virtualmin a Ansible na Ubuntu 16.04

Jak nasadit více webů Wordpress pomocí Virtualmin a Ansible na Ubuntu 16.04

Běžným využitím virtuálního serveru Vultr je hostování webových stránek Wordpress. Tato příručka vám ukáže, jak automatizovat konfiguraci virtuálního serveru od nuly

Nastavení Ghost Professional Publishing Platform na OpenBSD 6

Nastavení Ghost Professional Publishing Platform na OpenBSD 6

Ghost je nejnovější a největší nováček konkurenčního WordPressu. Vývoj tématu je rychlý a snadno se učí, protože vývojáři Ghost se rozhodli použít oba th

Nainstalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Nainstalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Ghost je moderní platforma pro publikování s otevřeným zdrojovým kódem postavená na Node.js s administračním klientem Ember.js, rozhraním JSON API a tematickým API založeným na Handlebars.js. Ghos

Jak nainstalovat MODX Revolution na Fedora 26 LAMP VPS

Jak nainstalovat MODX Revolution na Fedora 26 LAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i

Jak nainstalovat Dotclear na Debian 9 (Stretch)

Jak nainstalovat Dotclear na Debian 9 (Stretch)

Používáte jiný systém? Dotclear je velmi jednoduchý blogovací engine. Je to open source a snadno se používá. Tento tutoriál projde instalací na

Jak nainstalovat SilverStripe CMS na Fedora 26 LAMP VPS

Jak nainstalovat SilverStripe CMS na Fedora 26 LAMP VPS

Používáte jiný systém? SilverStripe je flexibilní a rozšiřitelný bezplatný a open source podnikový systém správy obsahu (CMS) napsaný v PHP. já

Instalace Fork CMS na Ubuntu 16.04 LTS

Instalace Fork CMS na Ubuntu 16.04 LTS

Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM

Jak nasadit Ghost na Debianu 8.7

Jak nasadit Ghost na Debianu 8.7

Používáte jiný systém? Ghost je open source platforma pro blogování, která si od svého vydání v roce 2013 získává na popularitě mezi vývojáři i běžnými uživateli. já

Instalace Fork CMS na Debian 9

Instalace Fork CMS na Debian 9

Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více