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.

Zanechať komentár

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.

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.

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.

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