Kaip įdiegti kelias „Wordpress“ svetaines naudojant „Virtualmin“ ir „Ansible“ Ubuntu 16.04

Įprastas „Vultr“ virtualaus serverio naudojimas yra „Wordpress“ svetainių talpinimas. Šiame vadove parodyta, kaip automatizuoti virtualaus serverio konfigūraciją nuo nulio (naudojant Ansible) ir įdiegti kelias nepriklausomas Wordpress svetaines (naudojant Webmin / Virtualmin). „Virtualmin“ / „Webmin“ yra grafinė vartotojo sąsaja, leidžianti valdyti kelių virtualaus serverio paskyrų diegimą tame pačiame kompiuteryje (sukomplektuota su LAMP / LEMP krūva). „Virtualmin“ yra labai panašus į „cPanel“ ir „Plesk“, todėl šioje pamokoje naudosime nemokamą GPL leidimą. Pradinę „Vultr“ serverio sąranką ir „Virtualmin“ įdiegimą galite labai greitai nustatyti kelis virtualius serverius naudodami „Virtualmin“ sąsają ir tiesiogiai įdiegti „Wordpress“ tame virtualiame serveryje su savo domeno pavadinimu.

Šioje pamokoje vietoje to, kad rankiniu būdu įvestume ilgą komandų sąrašą, mes naudosime Ansible. Ansible yra python pagrįstas automatizavimo įrankis, leidžiantis patikimai ir pakartotinai automatizuoti serverio užduotis. Tai reiškia, kad atlikę šią mokymo programą, galėsite įdiegti kitą serverį tokiu pačiu būdu, naudodami tik keletą komandų.

Būtinos sąlygos

  • Bent vienas visiškai kvalifikuotas domeno vardas ir prieiga prie DNS įrašų
  • „Vultr“ paskyra

1 veiksmas – „Ansible“ diegimas vietiniame kompiuteryje

Įdiekite Ansible savo vietiniame kompiuteryje arba kitame serveryje.

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

2 veiksmas – generuokite SSH raktus ir įdiekite serverį

Ansible veikia prisijungus prie serverio per SSH. SSH prieiga yra saugiausia, jei naudojame raktus, o ne slaptažodį. Pirmiausia sukurkime viešųjų ir privačių raktų porą.

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

Į ssh_keyskatalogą dabar bus du failai, ssh_keysir ssh_keys.pub. ssh_keysyra jūsų privataus rakto failas ir turi būti saugomas. Dabar galite atidaryti ssh_keys.pub, kuriame yra viešasis raktas.

Prisijunkite prie „Vultr“ žiniatinklio informacijos suvestinės ir spustelėkite Deploy New Server.

Pasirinkite regioną, serverio tipą (Ubuntu 16.04), serverio dydį, tada 6 dalyje ( SSH keys) spustelėkite Add New. Kitame puslapyje įklijuokite savo viešąjį raktą ir suteikite jam pavadinimą, tada spustelėkite Add SSH key. Galiausiai įsitikinkite, kad pasirinktas raktas, ir spustelėkite Deploy now.
Kai serveris baigs diegti, jums bus parodytas jo IP adresas. Turėsite prisijungti prie savo domeno vardo DNS serverio ir nukreipti jį šiuo adresu.

3 veiksmas – sukurkite pagrindinę Ansible konfigūraciją

Ansible automatizavimo failai vadinami roles. Pirmiausia nustatysime katalogo struktūrą ( ansiblekatalogas, kurį ką tik sukūrėte atlikdami 1 veiksmą), ir pagrindinius failus.

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

Redaguokite hostsfailą, kad jame būtų toliau nurodyta, pakeisdami ip addresską tik sukurtą serverį. Ansible naudoja python 2, kurio Ubuntu 16.04 pagal numatytuosius nustatymus neįdiegė. Į hostsfailą mes pasakyti Ansible naudoti python 3.

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

Redaguokite deploy.ymlfailą, kad jame būtų toliau nurodyta. Mes ketiname naudoti rootvartotoją.

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

Redaguokite /group_vars/allfailą, kad jame būtų toliau nurodyta. Šie kintamieji nurodo Ansible jūsų SSH raktų vietą, apsikeitimo failo parametrus, jūsų visiškai kvalifikuotą domeno vardą ir pagrindinį slaptažodį. Atminkite, nėra įtraukti į šaltinio kontrolės failą, nes jame yra slaptažodį atviru tekstu.

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

Redaguokite common/handlers/main.ymlfailą, kad jame būtų toliau nurodyta.

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

4 veiksmas – sukurkite galimas užduotis pagrindinei serverio sąrankai

Galimas automatizavimas yra lengviau suprantamas, jei suskirstysime jį į užduotis. Sukurkime failus kiekvienai mūsų atliekamai užduočiai.

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

main.yml turėtų nukreipti į kiekvieną failą, kuriame yra Ansible komandos, todėl redaguokite jį, kad būtų toliau nurodyta.

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

Pirmasis naujo serverio nustatymo veiksmas yra atnaujinti repo talpyklą ir nustatyti laiko juostą. Redaguokite common/handlers/setup.ymlfailą, kad jame būtų toliau nurodyta.

- apt: update_cache=yes
  sudo: yes

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

Dabar pagrindiniam vartotojui suteiksime slaptažodį (kurio turėsime pasiekti virtualmin žiniatinklio sąsają), bet išjungsime slaptažodžių prisijungimus per SSH (nes naudojame saugesnių raktų autentifikavimo metodą). Redaguoti, users.ymlkad būtų toliau nurodyta.

- 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

Dėl saugumo mums reikia ugniasienės. Naudosime nesudėtingą užkardą, kad suteiktume SSH prieigą prie prievado 22, žiniatinklio prieigą prie prievado 80ir saugią žiniatinklio prieigą prie prievado 443. Redaguokite ufw.ymlfailą, kad jame būtų toliau nurodyta.

- 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

Pasirinktinai galite įtraukti apsikeitimo failą. Tai būtina, jei jūsų serveryje yra mažiau nei 2 GB RAM, kad išvengtumėte atminties gedimų. Redaguoti, swap.ymlkad būtų toliau nurodyta.

- 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 veiksmas – pridėkite galimą užduotį virtualmino sąrankai

„Virtualmin“ turi savo diegimo failą, kurį gali atsisiųsti ir paleisti „Ansible“. Čia mes naudojame minimalų diegimą ( LINK). Papildomi elementai yra sukonfigūruoti MySQL serverio slaptažodį, kuris nėra nustatytas įdiegus Virtualmin. Prieš keisdami slaptažodį, turime laikinai sustabdyti MySQL ir pridėti autentifikavimo katalogą. Redaguoti, virtualmin.ymlkad būtų toliau nurodyta.

- 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 vaidmuo dabar baigtas ir mes pasiruošę dislokuoti.

6 veiksmas. Įdiekite naudodami Ansible

Iš aplanko ansible dabar galime tiesiog paleisti šią komandą, o Ansible automatiškai atliks visas mūsų sukurtas užduotis. Kai prisijungiate pirmą kartą, gausite SSH rakto įspėjimą, tiesiog įveskite " yes" į raginimą.

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

Jei norime naudoti kitą serverį, galime tiesiog pakeisti IP adresą hosts faile ir paleisti tą komandą dar kartą, kad užbaigtume tą pačią sąranką.

7 veiksmas – „Virtualmin“ diegimo vedlys

Diegimas baigtas ir dabar galime eiti į https://192.0.2.1:10000(naudokite savo serverio IP adresą). Jūsų naršyklė pateiks saugos įspėjimą, nes sertifikatas yra pasirašytas savarankiškai, todėl spustelėkite advancedir pridėkite išimtį. Jums bus pateiktas prisijungimo puslapis. Vartotojo vardas yra root, o slaptažodis yra tas, kurį įvedėte group_vars/allfaile atlikdami 3 veiksmą. Pirmą kartą įėjus į Virtualmin, jums bus pateiktas podiegimo vedlys. Šiuos nustatymus galite atlikti rankiniu būdu arba spustelėti, cancelkad priimtumėte numatytuosius nustatymus.

8 veiksmas – sukurkite serverį ir įdiekite „WordPress“.

Norėdami sukurti ir paleisti pirmąjį „Wordpress“ serverį, „Virtualmin“ prietaisų skydelyje spustelėkite Create Virtual Server. Turėsite įvesti domeno pavadinimą, aprašą ir administratoriaus slaptažodį. Domeno vardas turi skirtis nuo Virtualmin visiškai kvalifikuoto domeno vardo, todėl DNS įrašą turėsite nukreipti į savo serverio IP adresą.

Spustelėkite Create Server. Kai „Virtualmin“ baigs kurti serverį, spustelėkite Install Scriptskairėje esantį meniu. Pasirinkite Wordpress, spustelėkite Show install optionsir kitame puslapyje pasirinkite Wordpress diegimo vietą. Tiesiog pasirinkite At top levelir spustelėkite Install Now.

Tai viskas, ką jums reikia padaryti – galite užbaigti Wordpress diegimą apsilankę savo http://example.net/wp-admin/install.php(kur example.netyra šis virtualaus serverio domeno pavadinimas). Jei jūsų DNS įrašai dar Services > Preview Websitenepaplatinti, galite eiti į Virtualmin meniu.

Galite pakartoti šį veiksmą kelis kartus, kad sukurtumėte kelias Wordpress svetaines tame pačiame Vultr serveryje.


Jekyll tinklaraščio kūrimas Ubuntu 16.04

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Naudojate kitą sistemą? „Jekyll“ yra puiki „WordPress“ alternatyva dienoraščių rašymui ar turinio dalijimuisi. Tam nereikia jokių duomenų bazių ir tai labai paprasta

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

„Jekyll“ tinklaraščio kūrimas „CentOS 7“.

„Jekyll“ tinklaraščio kūrimas „CentOS 7“.

Naudojate kitą sistemą? Jekyll yra gera „WordPress“ alternatyva. Tam nereikia jokių duomenų bazių ir jis veikia daugeliui pažįstama kalba

Kaip įdiegti MODX Revolution CentOS 7 LAMP VPS

Kaip įdiegti MODX Revolution CentOS 7 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

„Fork CMS“ diegimas „CentOS 7“.

„Fork CMS“ diegimas „CentOS 7“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti „Neos CMS“ „CentOS 7“.

Kaip įdiegti „Neos CMS“ „CentOS 7“.

Neos yra naujoviška atvirojo kodo turinio valdymo sistema, puikiai tinkanti kuriant ir redaguojant internetinį turinį. Turint omenyje autorius ir redaktorius, Neo

Kaip įdiegti Ghost v0.11 LTS CentOS 7.3

Kaip įdiegti Ghost v0.11 LTS CentOS 7.3

Naudojate kitą sistemą? Ghost yra atvirojo kodo tinklaraščių platforma, kuri populiarėja tarp kūrėjų ir paprastų vartotojų nuo 201 m.

„Fork CMS“ diegimas „Fedora 28“.

„Fork CMS“ diegimas „Fedora 28“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti Ghost v0.11 LTS Fedora 25

Kaip įdiegti Ghost v0.11 LTS Fedora 25

Naudojate kitą sistemą? Ghost yra atvirojo kodo tinklaraščių platforma, kuri populiarėja tarp kūrėjų ir paprastų vartotojų nuo 201 m.

Kaip įdiegti kelias „Wordpress“ svetaines naudojant „Virtualmin“ ir „Ansible“ Ubuntu 16.04

Kaip įdiegti kelias „Wordpress“ svetaines naudojant „Virtualmin“ ir „Ansible“ Ubuntu 16.04

Įprastas „Vultr“ virtualaus serverio naudojimas yra „Wordpress“ svetainių talpinimas. Šiame vadove parodyta, kaip automatizuoti virtualaus serverio konfigūravimą nuo nulio

Įdiekite ir sukonfigūruokite Ghost v1.0.0 tinklaraštį Ubuntu 16.04

Įdiekite ir sukonfigūruokite Ghost v1.0.0 tinklaraštį Ubuntu 16.04

„Ghost“ yra moderni atvirojo kodo publikavimo platforma, sukurta naudojant Node.js su Ember.js administratoriaus klientu, JSON API ir temine API, kurią palaiko Handlebars.js. Ghos

Kaip įdiegti MODX Revolution Fedora 26 LAMP VPS

Kaip įdiegti MODX Revolution Fedora 26 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „SilverStripe CMS“ Fedora 26 LAMP VPS

Kaip įdiegti „SilverStripe CMS“ Fedora 26 LAMP VPS

Naudojate kitą sistemą? SilverStripe yra lanksti ir išplečiama nemokama ir atviro kodo įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. aš

„Fork CMS“ diegimas „Ubuntu 16.04 LTS“.

„Fork CMS“ diegimas „Ubuntu 16.04 LTS“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti Ghost Debian 8.7

Kaip įdiegti Ghost Debian 8.7

Naudojate kitą sistemą? Ghost yra atvirojo kodo tinklaraščių platforma, kuri populiarėja tarp kūrėjų ir paprastų vartotojų nuo pat 2013 m. aš

„Fork CMS“ diegimas „Debian 9“.

„Fork CMS“ diegimas „Debian 9“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti Typesetter CMS „CentOS 7“.

Kaip įdiegti Typesetter CMS „CentOS 7“.

Typesetter yra atvirojo kodo TVS, parašyta PHP, orientuota į naudojimo paprastumą su True WYSIWYG redagavimu ir fiksuotų failų saugykla. Šiame straipsnyje mes įdiegsime

„WordPress“ nustatymas naudojant „WooCommerce“ „CentOS 6“.

„WordPress“ nustatymas naudojant „WooCommerce“ „CentOS 6“.

„Vultr“ egzemplioriai yra puikus būdas paleisti „WordPress“ tinklaraštį, tačiau ryškesnis „WordPress“ plėtinys yra „WooCommerce“, el. prekybos papildinys, praplečiantis

Kaip įdiegti MODX Revolution Debian 9 LAMP VPS

Kaip įdiegti MODX Revolution Debian 9 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „SilverStripe CMS“ Ubuntu 16.04 LAMP VPS

Kaip įdiegti „SilverStripe CMS“ Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? SilverStripe yra lanksti ir išplečiama nemokama ir atviro kodo įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. aš

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį