Kako namestiti več spletnih mest Wordpress z uporabo Virtualmin in Ansible v Ubuntu 16.04

Običajna uporaba virtualnega strežnika Vultr je gostovanje spletnih mest Wordpress. Ta priročnik vam pokaže, kako avtomatizirati konfiguracijo navideznega strežnika iz nič (z uporabo Ansible) in uvesti več neodvisnih spletnih mest Wordpress (z uporabo Webmin/Virtualmin). Virtualmin/Webmin je grafični uporabniški vmesnik, ki vam omogoča upravljanje uvajanja več računov navideznega strežnika na istem računalniku (skupaj s skladom LAMP/LEMP). Virtualmin je zelo podoben cPanelu in Plesku, v tej vadnici pa bomo uporabljali brezplačno izdajo GPL. Po začetni nastavitvi strežnika Vultr in namestitvi Virtualmin lahko zelo hitro nastavite več virtualnih strežnikov znotraj vmesnika Virtualmin in neposredno namestite Wordpress na ta virtualni strežnik skupaj z lastnim imenom domene.

V tej vadnici bomo namesto ročnega vnosa dolgega seznama ukazov uporabili Ansible. Ansible je orodje za avtomatizacijo, ki temelji na pythonu, ki vam omogoča zanesljivo in večkratno avtomatizacijo strežniških nalog. To pomeni, da ko boste sledili tej vadnici, boste lahko na enak način namestili drug strežnik z le nekaj ukazi.

Predpogoji

  • Vsaj eno popolnoma kvalificirano ime domene in dostop do zapisov DNS
  • Vultr račun

1. korak - Namestite Ansible na vaš lokalni računalnik

Namestite Ansible na vaš lokalni računalnik ali drug strežnik.

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

2. korak - Ustvarite ključe SSH in namestite strežnik

Ansible deluje tako, da se prijavite v vaš strežnik prek SSH. Dostop SSH je najbolj varen, če uporabljamo ključe in ne geslo. Najprej ustvarimo par javnih in zasebnih ključev.

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

V ssh_keysimeniku bosta zdaj dve datoteki ssh_keysin ssh_keys.pub. ssh_keysje vaša datoteka z zasebnim ključem in jo je treba hraniti na varnem. Zdaj lahko odprete datoteko ssh_keys.pub, ki vsebuje javni ključ.

Prijavite se na spletno nadzorno ploščo Vultr in kliknite Deploy New Server.

Izberite regijo, vrsto strežnika (Ubuntu 16.04), velikost strežnika in nato v 6. delu ( SSH keys) kliknite Add New. Na naslednji strani prilepite svoj javni ključ in mu dajte ime ter kliknite Add SSH key. Na koncu se prepričajte, da je ključ izbran in kliknite Deploy now.
Ko se strežnik konča z uvajanjem, vam bo prikazan njegov naslov IP. Prijaviti se boste morali v strežnik DNS svojega imena domene in ga usmeriti na ta naslov.

3. korak - Ustvarite osnovno konfiguracijo Ansible

Ansibleove datoteke za avtomatizacijo se imenujejo roles. Najprej bomo nastavili strukturo imenika (znotraj ansibleimenika, ki ste ga pravkar ustvarili v 1. koraku) in 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 hostsdatoteko tako, da bo vsebovala naslednje, zamenjajte ip addressstrežnik, ki ste ga pravkar ustvarili. Ansible uporablja python 2, ki ga Ubuntu 16.04 privzeto nima nameščenega. V hostsdatoteki povemo Ansibleu, da uporablja python 3.

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

Uredite deploy.ymldatoteko, da bo vsebovala naslednje. Uporabili bomo rootuporabnika.

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

Uredite /group_vars/alldatoteko, da bo vsebovala naslednje. Te spremenljivke povedo Ansibleu lokacijo vaših ključev SSH, parametre izmenjalne datoteke, vaše popolnoma kvalificirano ime domene in korensko geslo. Ne pozabite, da datoteke ne vključite v izvorni nadzor, saj vsebuje vaše geslo v čistem besedilu.

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.ymldatoteko, da bo vsebovala naslednje.

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

4. korak - Ustvarite Ansible naloge za osnovno nastavitev strežnika

Ansible avtomatizacijo je lažje razumeti, če jo razdelimo na naloge. V procesu ustvarimo datoteke za vsako od naših nalog.

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

main.yml mora kazati na vsako datoteko, ki vsebuje ukaze Ansible, zato jo uredite tako, da vsebuje naslednje.

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

Prvi korak pri nastavitvi novega strežnika je posodobitev predpomnilnika repo in nastavitev časovnega pasu. Uredite common/handlers/setup.ymldatoteko, da bo vsebovala naslednje.

- apt: update_cache=yes
  sudo: yes

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

Zdaj bomo uporabniku root dali geslo (ki ga bomo potrebovali za dostop do spletnega vmesnika virtualmin), vendar onemogočili prijave z gesli prek SSH (ker uporabljamo metodo avtentikacije z bolj varnimi ključi). Uredite tako, users.ymlda vsebuje naslednje.

- 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

Zaradi varnosti potrebujemo požarni zid. Uporabili bomo nezapleteni požarni zid, da bomo omogočili dostop SSH na vratih 22, spletni dostop na vratih 80in varen spletni dostop na vratih 443. Uredite ufw.ymldatoteko, da bo vsebovala naslednje.

- 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 lahko vključite izmenjalno datoteko. To je bistveno, če ima vaš strežnik manj kot 2 GB RAM-a, da se izognete zrušitvam pomnilnika. Uredite tako, swap.ymlda vsebuje naslednje.

- 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

5. korak - Dodajte opravilo Ansible za nastavitev virtualmin

Virtualmin ima svojo namestitveno datoteko, ki jo lahko prenese in zažene Ansible. Tukaj uporabljamo minimalno namestitev ( LINK). Dodatne postavke so konfiguriranje gesla strežnika MySQL, ki ni nastavljeno, ko ga namesti Virtualmin. Preden spremenimo geslo, moramo začasno ustaviti MySQL in dodati imenik za preverjanje pristnosti. Uredite tako, virtualmin.ymlda vsebuje naslednje.

- 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

Vloga Ansible je zdaj končana in pripravljeni smo za uvajanje.

6. korak - Izvedite namestitev z Ansibleom

Iz mape ansible lahko zdaj preprosto zaženemo naslednji ukaz in Ansible bo samodejno izvedel vse naloge, ki smo jih ustvarili. Ko se prvič povežete, boste prejeli opozorilo o ključu SSH, yesv poziv samo vnesite » «.

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

Če želimo uporabiti drug strežnik, lahko preprosto spremenimo naslov IP v datoteki hosts in znova zaženemo ta ukaz, da dokončamo popolnoma enako nastavitev.

7. korak - čarovnik po namestitvi Virtualmin

Namestitev je končana in zdaj lahko gremo na https://192.0.2.1:10000(uporabite ip naslov vašega strežnika). Vaš brskalnik bo izdal varnostno opozorilo, ker je potrdilo samopodpisano, zato kliknite advancedin dodajte izjemo. Prikazala se vam bo stran za prijavo. Uporabniško ime je root, geslo pa je tisto, ki ste ga vnesli v group_vars/alldatoteko v 3. koraku. Ko prvič vstopite v Virtualmin, se vam bo prikazal čarovnik po namestitvi. Te nastavitve lahko pregledate ročno ali kliknete, cancelda sprejmete privzete nastavitve.

8. korak - Ustvarite strežnik in namestite WordPress

Če želite zagnati in zagnati svoj prvi strežnik Wordpress, na nadzorni plošči Virtualmin kliknite Create Virtual Server. Vnesti boste morali ime domene, opis in skrbniško geslo. Ime domene bi se moralo razlikovati od popolnoma kvalificiranega imena domene Virtualmin in zapis DNS boste morali usmeriti na naslov IP vašega strežnika.

Kliknite Create Server. Ko Virtualmin konča ustvarjanje vašega strežnika, kliknite Install Scriptsna levi meni. Izberite Wordpress, kliknite Show install optionsin na naslednji strani izberite lokacijo namestitve Wordpress. Samo izberite At top levelin kliknite Install Now.

To je vse, kar morate storiti – namestitev Wordpressa lahko dokončate tako, da obiščete svojo http://example.net/wp-admin/install.php(kje example.netje to ime domene virtualnih strežnikov). Če se vaši zapisi DNS še niso razširili, lahko odprete Services > Preview Websiteiz menija Virtualmin.

Ta korak lahko ponovite večkrat, da ustvarite več spletnih mest Wordpress na istem strežniku Vultr.


Ustvarjanje bloga Jekyll v Ubuntu 16.04

Ustvarjanje bloga Jekyll v Ubuntu 16.04

Uporaba drugega sistema? Jekyll je odlična alternativa WordPressu za bloganje ali deljenje vsebine. Ne zahteva nobenih baz podatkov in je zelo enostaven i

Kako namestiti MODX Revolution na Ubuntu 16.04 LAMP VPS

Kako namestiti MODX Revolution na Ubuntu 16.04 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To i

Namestite WordPress na OpenBSD 6.2

Namestite WordPress na OpenBSD 6.2

Uvod WordPress je prevladujoči sistem za upravljanje vsebin na internetu. Poganja vse, od blogov do zapletenih spletnih mest z dinamično vsebino

Ustvarjanje bloga Jekyll na CentOS 7

Ustvarjanje bloga Jekyll na CentOS 7

Uporaba drugega sistema? Jekyll je dobra alternativa WordPressu. Ne potrebuje baz podatkov in deluje z jezikom, ki ga mnogi poznajo

Kako namestiti MODX Revolution na CentOS 7 LAMP VPS

Kako namestiti MODX Revolution na CentOS 7 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Namestitev Fork CMS na CentOS 7

Namestitev Fork CMS na CentOS 7

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti Neos CMS na CentOS 7

Kako namestiti Neos CMS na CentOS 7

Neos je inovativen odprtokodni sistem za upravljanje vsebin, ki je odličen za ustvarjanje in urejanje spletnih vsebin. Z mislijo na avtorje in urednike, Neo

Kako namestiti Ghost v0.11 LTS na CentOS 7.3

Kako namestiti Ghost v0.11 LTS na CentOS 7.3

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki od leta 201.

Namestitev Fork CMS na Fedora 28

Namestitev Fork CMS na Fedora 28

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti SilverStripe CMS na FreeBSD 11 FAMP VPS

Kako namestiti SilverStripe CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? SilverStripe je prilagodljiv in razširljiv odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To je enostavno

Kako uvesti Ghost v0.11 LTS na Fedora 25

Kako uvesti Ghost v0.11 LTS na Fedora 25

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki od leta 201.

Kako namestiti več spletnih mest Wordpress z uporabo Virtualmin in Ansible v Ubuntu 16.04

Kako namestiti več spletnih mest Wordpress z uporabo Virtualmin in Ansible v Ubuntu 16.04

Običajna uporaba virtualnega strežnika Vultr je gostovanje spletnih mest Wordpress. Ta priročnik vam pokaže, kako avtomatizirati konfiguracijo navideznega strežnika od začetka

Nastavitev Ghost Professional Publishing Platform na OpenBSD 6

Nastavitev Ghost Professional Publishing Platform na OpenBSD 6

Ghost je najnovejši in največji začetnik v konkurenci WordPressu. Razvoj teme je hiter in enostaven za učenje, ker so se razvijalci Ghost odločili za uporabo obeh

Namestite in konfigurirajte blog Ghost v1.0.0 v Ubuntu 16.04

Namestite in konfigurirajte blog Ghost v1.0.0 v Ubuntu 16.04

Ghost je sodobna odprtokodna platforma za objavljanje, zgrajena na Node.js s skrbniškim odjemalcem Ember.js, API-jem JSON in API-jem za teme, ki ga poganja Handlebars.js. Ghos

Kako namestiti MODX Revolution na Fedora 26 LAMP VPS

Kako namestiti MODX Revolution na Fedora 26 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Kako namestiti Dotclear na Debian 9 (Raztegniti)

Kako namestiti Dotclear na Debian 9 (Raztegniti)

Uporaba drugega sistema? Dotclear je zelo preprost motor za bloganje. Je odprtokoden in enostaven za uporabo. Ta vadnica bo potekala skozi namestitev naprej

Kako namestiti SilverStripe CMS na Fedora 26 LAMP VPS

Kako namestiti SilverStripe CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? SilverStripe je prilagodljiv in razširljiv brezplačen in odprtokoden sistem za upravljanje vsebin (CMS), napisan v PHP. jaz

Namestitev Fork CMS na Ubuntu 16.04 LTS

Namestitev Fork CMS na Ubuntu 16.04 LTS

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti Ghost v Debian 8.7

Kako namestiti Ghost v Debian 8.7

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki od izdaje leta 2013 postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki. jaz

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več