Kako implementirati više Wordpress web-mjesta koristeći Virtualmin i Ansible na Ubuntu 16.04

Uobičajena upotreba Vultr virtualnog poslužitelja je hostiranje Wordpress web stranica. Ovaj vam vodič pokazuje kako automatizirati konfiguraciju virtualnog poslužitelja od nule (pomoću Ansiblea) i implementirati više neovisnih Wordpress web stranica (pomoću Webmin/Virtualmin). Virtualmin/Webmin je grafičko korisničko sučelje koje vam omogućuje upravljanje implementacijom više računa virtualnog poslužitelja na istom stroju (zajedno sa LAMP/LEMP stogom). Virtualmin je vrlo sličan cPanelu i Plesku, a u ovom vodiču koristit ćemo besplatno GPL izdanje. Nakon početnog postavljanja Vultr poslužitelja i instalacije Virtualmina, možete vrlo brzo postaviti više virtualnih poslužitelja unutar Virtualmin sučelja i izravno instalirati Wordpress na taj virtualni poslužitelj zajedno s vlastitim imenom domene.

U ovom vodiču, umjesto ručnog unosa dugačkog popisa naredbi, koristit ćemo Ansible. Ansible je alat za automatizaciju baziran na pythonu koji vam omogućuje pouzdanu i opetovanu automatizaciju zadataka poslužitelja. To znači da ćete nakon što slijedite ovaj vodič moći implementirati drugi poslužitelj na isti način sa samo nekoliko naredbi.

Preduvjeti

  • Najmanje jedan potpuno kvalificirani naziv domene i pristup DNS zapisima
  • Vultr račun

Korak 1 - Instaliranje Ansiblea na vašem lokalnom računalu

Instalirajte Ansible na vašem lokalnom računalu ili drugom poslužitelju.

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

Korak 2 - Generirajte SSH ključeve i implementirajte poslužitelj

Ansible radi prijavom na vaš poslužitelj putem SSH-a. SSH pristup je najsigurniji ako koristimo ključeve umjesto lozinke. Prvo generirajmo javni i privatni par ključeva.

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

U ssh_keysdirektoriju će sada biti dvije datoteke ssh_keysi ssh_keys.pub. ssh_keysje vaša datoteka privatnog ključa i treba je čuvati na sigurnom. Sada možete otvoriti ssh_keys.pub, koji sadrži javni ključ.

Prijavite se na Vultr web nadzornu ploču i kliknite Deploy New Server.

Odaberite regiju, vrstu poslužitelja (Ubuntu 16.04), veličinu poslužitelja, a zatim u dijelu 6 ( SSH keys), kliknite Add New. Na sljedećoj stranici zalijepite svoj javni ključ i dajte mu ime te kliknite Add SSH key. Na kraju provjerite je li ključ odabran i kliknite Deploy now.
Nakon što poslužitelj završi s implementacijom, bit će vam prikazana njegova IP adresa. Morat ćete se prijaviti na DNS poslužitelj imena svoje domene i usmjeriti ga na ovu adresu.

Korak 3 - Napravite osnovnu Ansible konfiguraciju

Ansibleove automatizacijske datoteke nazivaju se roles. Prvo ćemo postaviti strukturu direktorija (unutar ansibledirektorija koji ste upravo stvorili u koraku 1) i osnovne datoteke.

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

Uredite hostsdatoteku tako da sadrži sljedeće, zamjenjujući ip addressposlužitelj koji ste upravo stvorili. Ansible koristi python 2, koji Ubuntu 16.04 nema instaliran prema zadanim postavkama. U hostsdatoteci kažemo Ansibleu da koristi python 3.

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

Uredite deploy.ymldatoteku tako da sadrži sljedeće. Koristit ćemo rootkorisnika.

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

Uredite /group_vars/alldatoteku tako da sadrži sljedeće. Ove varijable govore Ansibleu lokaciju vaših SSH ključeva, parametre swap datoteke, vaš potpuno kvalificirani naziv domene i root lozinku. Ne zaboravite da ne uključujete datoteku u izvornu kontrolu jer sadrži vašu lozinku u čistom tekstu.

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

Uredite common/handlers/main.ymldatoteku tako da sadrži sljedeće.

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

Korak 4 - Stvorite Ansible zadatke za osnovno postavljanje poslužitelja

Ansible automatizaciju je lakše razumjeti ako je podijelimo na zadatke. Stvorimo datoteke za svaki naš zadatak u tom procesu.

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

main.yml treba pokazivati ​​na svaku datoteku koja sadrži Ansible naredbe, stoga je uredite tako da sadrži sljedeće.

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

Prvi korak u postavljanju novog poslužitelja je ažuriranje repo predmemorije i postavljanje vremenske zone. Uredite common/handlers/setup.ymldatoteku tako da sadrži sljedeće.

- apt: update_cache=yes
  sudo: yes

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

Sada ćemo root korisniku dati lozinku (koja će nam trebati za pristup web sučelju virtualmin), ali onemogućiti prijavu lozinkom preko SSH-a (budući da koristimo metodu provjere autentičnosti sa sigurnijim ključevima). Uredite tako users.ymlda sadrži sljedeće.

- 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

Za sigurnost nam je potreban vatrozid. Koristit ćemo Nekomplicirani vatrozid da omogućimo SSH pristup na portu 22, pristup webu na portu 80i siguran web pristup na portu 443. Uredite ufw.ymldatoteku tako da sadrži sljedeće.

- 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

Po želji možete uključiti swap datoteku. Ovo je bitno ako vaš poslužitelj ima manje od 2 GB RAM-a kako bi se izbjegla rušenja bez memorije. Uredite tako swap.ymlda sadrži sljedeće.

- 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

Korak 5 - Dodajte Ansible zadatak za postavljanje virtualmin

Virtualmin ima svoju datoteku za instalaciju koju Ansible može preuzeti i pokrenuti. Ovdje koristimo minimalnu instalaciju ( LINK). Dodatne stavke su konfiguriranje lozinke MySQL poslužitelja koja nije postavljena kada je Virtualmin instalira. Moramo privremeno zaustaviti MySQL i dodati direktorij za provjeru autentičnosti prije promjene lozinke. Uredite tako virtualmin.ymlda sadrži sljedeće.

- 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 uloga je sada gotova i spremni smo za implementaciju.

Korak 6 - Izvedite instalaciju s Ansibleom

Iz mape ansible sada jednostavno možemo pokrenuti sljedeću naredbu i Ansible će automatski izvršiti sve zadatke koje smo kreirali. Kada se prvi put povežete, dobit ćete upozorenje o SSH ključu, samo upišite " yes" na upit.

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

Ako želimo koristiti drugi poslužitelj, možemo jednostavno promijeniti IP adresu u datoteci hosts i ponovno pokrenuti tu naredbu kako bismo dovršili potpuno isto postavljanje.

Korak 7 - Virtualmin čarobnjak nakon instalacije

Instalacija je završena i sada možemo ići na https://192.0.2.1:10000(koristite ip adresu vašeg poslužitelja). Vaš preglednik će izdati sigurnosno upozorenje jer je certifikat samopotpisan, stoga kliknite advancedi dodajte iznimku. Bit će vam prikazana stranica za prijavu. Korisničko ime je root, a lozinka je ona koju ste unijeli u group_vars/alldatoteku u koraku 3. Kada prvi put uđete u Virtualmin, prikazat će vam se čarobnjak nakon instalacije. Možete proći kroz ove postavke ručno ili kliknuti cancelda prihvatite zadane postavke.

Korak 8 - Napravite poslužitelj i instalirajte WordPress

Da biste pokrenuli svoj prvi Wordpress poslužitelj, na nadzornoj ploči Virtualmin kliknite Create Virtual Server. Morat ćete unijeti naziv domene, opis i lozinku administratora. Naziv domene trebao bi se razlikovati od potpuno kvalificiranog naziva domene Virtualmin i morat ćete usmjeriti DNS zapis na IP adresu vašeg poslužitelja.

Kliknite Create Server. Nakon što Virtualmin završi kreiranje vašeg poslužitelja, kliknite Install Scriptsna izbornik s lijeve strane. Odaberite Wordpress, kliknite Show install optionsi na sljedećoj stranici odaberite mjesto instalacije Wordpressa. Samo odaberite At top leveli kliknite Install Now.

To je sve što trebate učiniti - možete dovršiti instalaciju Wordpressa tako što ćete posjetiti svoju http://example.net/wp-admin/install.php(gdje example.netje naziv domene ovog virtualnog poslužitelja). Ako se vaši DNS zapisi još nisu proširili, možete ići na Services > Preview Websites izbornika Virtualmin.

Ovaj korak možete ponoviti više puta kako biste stvorili više Wordpress stranica na istom Vultr poslužitelju.


Izrada Jekyll bloga na Ubuntu 16.04

Izrada Jekyll bloga na Ubuntu 16.04

Korištenje drugog sustava? Jekyll je izvrsna alternativa WordPressu za bloganje ili dijeljenje sadržaja. Ne zahtijeva nikakve baze podataka i vrlo je jednostavan i

Kako instalirati MODX Revolution na Ubuntu 16.04 LAMP VPS

Kako instalirati MODX Revolution na Ubuntu 16.04 LAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, besplatan i otvorenog koda, Enterprise-grade Content Management System (CMS) napisan i

Kako instalirati MODX Revolution na FreeBSD 11 FAMP VPS

Kako instalirati MODX Revolution na FreeBSD 11 FAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, open source, Enterprise-grade Content Management System (CMS) napisan u PHP-u. To i

Instalirajte WordPress na OpenBSD 6.2

Instalirajte WordPress na OpenBSD 6.2

Uvod WordPress je dominantni sustav za upravljanje sadržajem na internetu. Pokreće sve, od blogova do složenih web stranica s dinamičkim sadržajem

Izrada Jekyll bloga na CentOS 7

Izrada Jekyll bloga na CentOS 7

Korištenje drugog sustava? Jekyll je dobra alternativa WordPressu. Ne zahtijeva nikakve baze podataka i radi s jezikom koji je mnogima poznat

Kako instalirati MODX Revolution na CentOS 7 LAMP VPS

Kako instalirati MODX Revolution na CentOS 7 LAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, besplatan i otvorenog koda, Enterprise-grade Content Management System (CMS) napisan i

Instalacija Fork CMS-a na CentOS 7

Instalacija Fork CMS-a na CentOS 7

Korištenje drugog sustava? Fork je CMS otvorenog koda napisan u PHP-u. Izvorni kod Forks nalazi se na GitHubu. Ovaj vodič će vam pokazati kako instalirati Fork CM

Kako instalirati Neos CMS na CentOS 7

Kako instalirati Neos CMS na CentOS 7

Neos je inovativni sustav upravljanja sadržajem otvorenog koda koji je izvrstan za stvaranje i uređivanje online sadržaja. Imajući na umu autore i urednike, Neo

Kako implementirati Ghost v0.11 LTS na CentOS 7.3

Kako implementirati Ghost v0.11 LTS na CentOS 7.3

Korištenje drugog sustava? Ghost je platforma za blogove otvorenog koda koja postaje sve popularnija među programerima i običnim korisnicima od 201.

Kako instalirati SilverStripe CMS na FreeBSD 11 FAMP VPS

Kako instalirati SilverStripe CMS na FreeBSD 11 FAMP VPS

Korištenje drugog sustava? SilverStripe je fleksibilan i proširiv, otvorenog koda, Enterprise-grade Content Management System (CMS) napisan u PHP-u. To je lako

Kako implementirati Ghost v0.11 LTS na Fedora 25

Kako implementirati Ghost v0.11 LTS na Fedora 25

Korištenje drugog sustava? Ghost je platforma za blogove otvorenog koda koja postaje sve popularnija među programerima i običnim korisnicima od 201.

Kako implementirati više Wordpress web-mjesta koristeći Virtualmin i Ansible na Ubuntu 16.04

Kako implementirati više Wordpress web-mjesta koristeći Virtualmin i Ansible na Ubuntu 16.04

Uobičajena upotreba Vultr virtualnog poslužitelja je hostiranje Wordpress web stranica. Ovaj vodič pokazuje kako automatizirati konfiguraciju virtualnog poslužitelja ispočetka

Postavljanje Ghost Professional Publishing Platforme na OpenBSD 6

Postavljanje Ghost Professional Publishing Platforme na OpenBSD 6

Ghost je najnoviji i najveći početnik u konkurenciji WordPressu. Razvoj teme je brz i jednostavan za učenje jer su programeri Ghost odlučili koristiti oba

Instalirajte i konfigurirajte blog Ghost v1.0.0 na Ubuntu 16.04

Instalirajte i konfigurirajte blog Ghost v1.0.0 na Ubuntu 16.04

Ghost je moderna platforma za objavljivanje otvorenog koda izgrađena na Node.js s administratorskim klijentom Ember.js, JSON API-jem i API-jem za temu koji pokreće Handlebars.js. Ghos

Kako instalirati MODX Revolution na Fedora 26 LAMP VPS

Kako instalirati MODX Revolution na Fedora 26 LAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, besplatan i otvorenog koda, Enterprise-grade Content Management System (CMS) napisan i

Kako instalirati Dotclear na Debian 9 (Razvući)

Kako instalirati Dotclear na Debian 9 (Razvući)

Korištenje drugog sustava? Dotclear je vrlo jednostavan motor za bloganje. Otvoren je kod i jednostavan za korištenje. Ovaj vodič će proći kroz instalaciju

Instalacija Fork CMS-a na Ubuntu 16.04 LTS

Instalacija Fork CMS-a na Ubuntu 16.04 LTS

Korištenje drugog sustava? Fork je CMS otvorenog koda napisan u PHP-u. Izvorni kod Forks nalazi se na GitHubu. Ovaj vodič će vam pokazati kako instalirati Fork CM

Kako implementirati Ghost na Debian 8.7

Kako implementirati Ghost na Debian 8.7

Korištenje drugog sustava? Ghost je platforma za blogove otvorenog koda koja postaje sve popularnija među programerima i običnim korisnicima od svog izdanja 2013. godine. ja

Instalacija Fork CMS-a na Debian 9

Instalacija Fork CMS-a na Debian 9

Korištenje drugog sustava? Fork je CMS otvorenog koda napisan u PHP-u. Izvorni kod Forks nalazi se na GitHubu. Ovaj vodič će vam pokazati kako instalirati Fork CM

Kako instalirati Typesetter CMS na CentOS 7

Kako instalirati Typesetter CMS na CentOS 7

Typesetter je CMS otvorenog koda napisan u PHP-u usmjeren na jednostavnost korištenja s True WYSIWYG uređivanjem i pohranom ravnih datoteka. U ovom članku ćemo instalirati

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više