Si të vendosni shumë site Wordpress duke përdorur Virtualmin dhe Ansible në Ubuntu 16.04

Një përdorim i zakonshëm i një serveri virtual Vultr është të presë faqet e internetit të Wordpress. Ky udhëzues ju tregon se si të automatizoni konfigurimin e një serveri virtual nga e para (duke përdorur Ansible) dhe të vendosni shumë uebfaqe të pavarura Wordpress (duke përdorur Webmin/Virtualmin). Virtualmin/Webmin është një ndërfaqe grafike e përdoruesit që ju lejon të menaxhoni vendosjen e llogarive të shumëfishta të serverëve virtualë në të njëjtën makinë (e kompletuar me stack LAMP/LEMP). Virtualmin është shumë i ngjashëm me cPanel dhe Plesk, dhe në këtë tutorial ne do të përdorim edicionin falas të GPL. Pas konfigurimit fillestar të serverit Vultr dhe instalimit të Virtualmin, mund të konfiguroni shumë shpejt serverë virtualë nga brenda ndërfaqes Virtualmin dhe të instaloni drejtpërdrejt Wordpress në atë server virtual të plotë me emrin e tij të domenit.

Në këtë tutorial, në vend që të futim manualisht një listë të gjatë komandash, në vend të kësaj do të përdorim Ansible. Ansible është një mjet automatizimi i bazuar në python, i cili ju lejon të automatizoni në mënyrë të besueshme dhe të përsëritur detyrat e serverit. Kjo do të thotë që pasi të keni ndjekur këtë tutorial, do të jeni në gjendje të vendosni një server tjetër në të njëjtën mënyrë me vetëm disa komanda.

Parakushtet

  • Të paktën një emër domeni plotësisht i kualifikuar dhe qasje në të dhënat DNS
  • Një llogari Vultr

Hapi 1 - Instalimi i Ansible në kompjuterin tuaj lokal

Instaloni Ansible në kompjuterin tuaj lokal ose në një server tjetër.

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

Hapi 2 - Gjeneroni çelësat SSH dhe vendosni serverin

Ansible funksionon duke u identifikuar në serverin tuaj nëpërmjet SSH. Aksesi në SSH është më i sigurti nëse përdorim çelësat dhe jo fjalëkalimin. Le të gjenerojmë fillimisht një çift çelësash publik dhe privat.

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

ssh_keysdrejtori do të ketë tani dy skedarë, ssh_keysdhe ssh_keys.pub. ssh_keysështë skedari juaj i çelësit privat dhe duhet të mbahet i sigurt. Tani mund të hapni ssh_keys.pub, e cila përmban çelësin publik.

Hyni në pultin e internetit të Vultr dhe klikoni Deploy New Server.

Zgjidhni një rajon, llojin e serverit (Ubuntu 16.04), madhësinë e serverit dhe më pas në pjesën 6 ( SSH keys), klikoni Add New. Në faqen tjetër ngjisni çelësin tuaj publik dhe jepni një emër dhe klikoni Add SSH key. Më në fund sigurohuni që tasti është zgjedhur dhe klikoni Deploy now.
Pasi serveri të ketë mbaruar vendosjen, do t'ju shfaqet adresa e tij IP. Do t'ju duhet të identifikoheni në serverin DNS të emrit të domenit tuaj dhe ta drejtoni atë në këtë adresë.

Hapi 3 - Krijo një konfigurim bazë Ansible

Skedarët e automatizimit të Ansible quhen roles. Fillimisht do të konfigurojmë strukturën e drejtorisë (brenda ansibledrejtorisë që sapo krijuat në hapin 1) dhe skedarët bazë.

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

Redaktoni hostsskedarin që të përmbajë sa vijon, duke zëvendësuar ip addressserverin që sapo keni krijuar. Ansible përdor python 2, të cilin Ubuntu 16.04 nuk e ka të instaluar si parazgjedhje. Në hostsskedar i themi Ansible të përdorë python 3.

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

Redaktoni deploy.ymlskedarin që të përmbajë sa vijon. Ne do të përdorim rootpërdoruesin.

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

Redaktoni /group_vars/allskedarin që të përmbajë sa vijon. Këto variabla i tregojnë Ansible vendndodhjen e çelësave tuaj SSH, parametrat e skedarit të shkëmbimit, Emrin tuaj të Domenit plotësisht të Kualifikuar dhe fjalëkalimin rrënjë. Mos harroni të mos e përfshini skedarin në kontrollin e burimit pasi ai përmban fjalëkalimin tuaj në tekst të qartë.

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

Redaktoni common/handlers/main.ymlskedarin që të përmbajë sa vijon.

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

Hapi 4 - Krijoni detyra Ansible për konfigurimin bazë të serverit

Automatizimi ansible është më i lehtë për t'u kuptuar nëse e ndajmë atë në detyra. Le të krijojmë skedarë për secilën nga detyrat tona në proces.

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

main.yml duhet të tregojë për çdo skedar që përmban komandat Ansible, kështu që modifikojeni që të përmbajë sa vijon.

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

Hapi i parë në konfigurimin e një serveri të ri është përditësimi i cache-it të repos dhe vendosja e zonës kohore. Redaktoni common/handlers/setup.ymlskedarin që të përmbajë sa vijon.

- apt: update_cache=yes
  sudo: yes

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

Tani, ne do t'i japim përdoruesit rrënjë një fjalëkalim (i cili do të na duhet për të hyrë në ndërfaqen e internetit virtualmin), por do të çaktivizojmë hyrjet me fjalëkalim përmes SSH (pasi po përdorim metodën e vërtetimit të çelësave më të sigurt). Redakto users.ymlqë të përmbajë sa vijon.

- 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

Për siguri, na duhet një mur zjarri. Ne do të përdorim "Firewall-in e pakomplikuar" për të lejuar aksesin SSH në portë 22, hyrjen në ueb në port 80dhe aksesin e sigurt në ueb në port 443. Redaktoni ufw.ymlskedarin që të përmbajë sa vijon.

- 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

Opsionale, mund të përfshini një skedar shkëmbimi. Kjo është thelbësore nëse serveri juaj ka më pak se 2 GB RAM për të shmangur ndërprerjet e kujtesës. Redakto swap.ymlqë të përmbajë sa vijon.

- 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

Hapi 5 - Shtoni detyrën Ansible për konfigurimin e virtualmin

Virtualmin ka skedarin e vet të instaluesit i cili mund të shkarkohet dhe ekzekutohet nga Ansible. Këtu po përdorim instalimin minimal ( LINK). Artikujt shtesë janë për të konfiguruar fjalëkalimin e serverit MySQL i cili nuk vendoset kur instalohet nga Virtualmin. Duhet të ndalojmë përkohësisht MySQL dhe të shtojmë drejtorinë e vërtetimit përpara se të ndryshojmë fjalëkalimin. Redakto virtualmin.ymlqë të përmbajë sa vijon.

- 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

Roli i Ansible tani ka përfunduar dhe ne jemi gati të vendosemi.

Hapi 6 - Kryeni instalimin me Ansible

Nga dosja ansible, tani thjesht mund të ekzekutojmë komandën e mëposhtme dhe Ansible do të kryejë të gjitha detyrat që kemi krijuar automatikisht. Herën e parë që lidheni do të merrni një paralajmërim të çelësit SSH, thjesht shkruani " yes" në kërkesë.

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

Nëse dëshirojmë të përdorim një server tjetër, thjesht mund të ndryshojmë adresën ip në skedarin e hosteve dhe ta ekzekutojmë përsëri atë komandë për të përfunduar saktësisht të njëjtin konfigurim.

Hapi 7 - Magjistari Virtualmin pas instalimit

Instalimi ka përfunduar dhe tani mund të shkojmë te https://192.0.2.1:10000(përdorni adresën IP të serverit tuaj). Shfletuesi juaj do të lëshojë një paralajmërim sigurie sepse certifikata është e nënshkruar vetë, kështu që klikoni advanceddhe shtoni një përjashtim. Do t'ju paraqitet një faqe identifikimi. Emri i përdoruesit është rootdhe fjalëkalimi është ai që keni futur në group_vars/allskedar në hapin 3. Herën e parë që hyni në Virtualmin do t'ju paraqitet magjistari pas instalimit. Mund t'i kaloni këto cilësime manualisht ose të klikoni cancelpër të pranuar parazgjedhjet.

Hapi 8 - Krijoni një server dhe instaloni WordPress

Për të aktivizuar dhe funksionuar serverin tuaj të parë Wordpress, nga paneli i kontrollit Virtualmin klikoni Create Virtual Server. Do t'ju duhet të vendosni një emër domeni, përshkrim dhe një fjalëkalim administratori. Emri i domenit duhet të jetë i ndryshëm nga emri i domain-it plotësisht i kualifikuar Virtualmin dhe do t'ju duhet të drejtoni rekordin DNS në adresën IP të serverit tuaj.

Klikoni Create Server. Pasi Virtualmin të ketë mbaruar krijimin e serverit tuaj, klikoni Install Scriptsnë menunë e majtë. Zgjidhni Wordpress, klikoni Show install optionsdhe në faqen e mëposhtme zgjidhni vendndodhjen e instalimit të Wordpress. Thjesht zgjidhni At top leveldhe klikoni Install Now.

Kjo është gjithçka që duhet të bëni - mund të përfundoni instalimin e Wordpress duke vizituar http://example.net/wp-admin/install.php(ku example.netështë ky emër domaini i serverit virtual). Nëse të dhënat tuaja DNS nuk janë përhapur ende, mund të shkoni te Services > Preview Websitemenyja Virtualmin.

Ju mund ta përsërisni këtë hap disa herë për të krijuar faqe të shumta Wordpress të gjitha në të njëjtin server Vultr.


Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë