You are currently viewing Kun vaihtaa vanhalta uudelle serverille: Roadmap

Kun vaihtaa vanhalta uudelle serverille: Roadmap

Kun virtuaaliserveri on Ubuntulla, niin eräällä tavalla järkevän perustelun aikaväli päivittää käyttöjärjestelmän takia on enintään kahden vuoden välein. Sillä aikavälillä Ubuntusta tulee aina LTS-versio, eli pidemmän tukiajan tuotos. Väliversioiden tuki loppuu nopeammin. En ymmärrä mikä tuon versioajattelun pointti on, mutta niin se vain menee. Itselläni serverit vaihtuvat erilaisista syistä – yleensä omien töppäilyjen takia – noin puolen vuoden välein. Sillä aikavälillä asennan ja asetan serverin aivan alusta toimintakuntoon ja joka kerta yritän muistaa mitä piti tehdä ja miksi. Siksi koostin roadmapin kaikesta mitä pitää tehdä, kun vaihtaa sivustot uudelle virtuaalipalvelimelle.

Lähtökohtana on, että vaihdetaan Ubuntusta toiseen version muuttuessa. Myös PHP:n versio muuttuu, jonka takia esimerkiksi Apachen moduuleja ei voida kopioida asennuksesta toiseen. SSH saattaisi kannattaa asettaa serverien välille, jolloin rsync muuttuu einen jouhevammaksi. En ole kuitenkaan vaivautunut, koska vanha serveri kuitenkin hävitetään.

Roadmap on vain tyhmä muistilista, jota seuraamalla pääsääntöisesti saan tehtyä siirrot vähimmällä vaivalla. Ei taatusti pienimmällä, mutta se on eri asia. Joskus ehkä opin niin paljon, että tuon saisi skriptiksi, tai sitten en.

Milloinkaan en ole onnistunut tekemään siirtoa kerralla valmiiksi. Aina on unohtunut joku PHP:n moduuli tai johonkin pakosta muokattavaan asetustiedostoon on tullut kirotusvirhe. Mitään sen suurempaa ongelmaa ei ole tullut vastaan.

Varnish tuotti hieman päänvaivaa, koska se päivittyi myös uudempaan. VCL:n syntaksia oli (taas) muutettu, jonka takia grace-asetukset siltä osin kun mukana oli return(miss); toimintoja, eivät menneet läpi. Ne oli muutetava return(deliver);. Ylipäätään näyttää siltä, että erillistä grace-aikaa ei enää tarvitse asettaa backendin kaatumisen varalle, vaan Varnish hoitaa asian itse. Idealtaan siis hieman samantapainen muutos kuin että Varnishissa ei enää tarvitse erikseen asettaa gzip-pakkausta, koska Varnish tekee sen aina lennossa.

Olen päivittänyt Githubiin käyttämäni default.vcl tiedoston sellaiseksi, että se toimii uuden Varnish 6.1 kanssa.

Samaten geo-blokkaus ei enää onnistu entisten ohjeiden mukaan ohjelmistopäivityksen takia. Päivitän sen kohdan, jahka saan asian fiksattua. Asian saa kierrettyä lataamalla tiedoston edellisen version. Löytyy varmaan githubistakin, mutta myös täältä. Vilkaise alkuperäiset ohjeet.

Siirron tekemiseen menee tunteja X. Jos kaikki menee suhteellisen jouhevasti, niin saan tehtyä kaiken parissa tunnissa. Jos en tee robottina urakkavauhdilla, niin olen varannut aikaa kaksi päivää: ensimmäisenä siirrän kaiken tarvittavan ja toisena päivänä laitan tietokannat ja domainit kuntoon yksitellen. 40 taalan droplet maksaa 1,30 päivä, joten rahan takia ei ole kiire.

Ubuntu on mahdollista päivittää terminaalissa komennolla do-release-upgrade. Olen sitä viisi kertaa kokeillut DigitalOceanissa ja kerran onnistunut. Silloinkin toiminnoissa oli jotain omituista, joka on suurin syy siirtyä versiosta 19.04 hieman turhan tuoreeseen 20.04 LTS:ään. Ylipäätään vanhan version päivitys paikalleen on aina hieman arveluttava ajatus, vaikka tavallisissa tietokoneissa niin tehdäänkin – eikä järjestelmän version muutos aina niin mallikkaasti mene Windowseissa ja OsX:ssäkään.

Koska Ubuntussa LTS vaihtuu kahden vuoden välein, niin päivitys kannattaa tehdä käsin.

Pystyt käyttämään ohjetta täysin uudenkin serverin asentamiseen, mutta silloin joudut keskittymään asetuksiin hiukan enemmän.

Tästä alkaa

  • Luo serveri

https://m.do.co/c/1a52415150cf (referraf DigitalOceaniin)

20.04 (LTS) x64
8 GB / 4 CPUs
160 GB SSD disk
40 USD/kk

Käytettävä setup

Nginx (SSL, http/2)
Varnish (reverse proxy)
Apache2 (backend sivustoille)
Redis (objekticache)
MariaDB (tietokanta/MySQL)
PHP/PHP7.4-FPM
iptables/ufw/Fail2ban (palomuuri ja geo-blokkaus)
Let’s Encrypt (SSL)
postfix (uloslähtevä email)
mosh (SSH-laajennos mobiileille)
Monit (järjestelmän seuranta)
Adminer (SQL-hallinta)
git (versiohallinta)
muuta

Sivustot:
Wordpress
Moodle
Matomo

Perusasetukset

Uudella serverillä.

Päivitykset

apt update
apt dist-upgrade
reboot

Luodaan käyttäjä

adduser [tunnus]
  • Annetaan käyttäjälle sudo
usermod -aG sudo [tunnus]

Asetetaan aikavyöhyke

timedatectl set-timezone Europe/Helsinki

Jakke Lehtonen

Teen B2B-markkinoille sisällöntuottoa sekä UX-testauksia. Samaan liittyy myös koulutukset yrityksille ja webmaailman kanssa muutoin painiville. Serverien sielunelämää on joutunut ohessa opettelmaan. Toinen puoli toiminnasta on koirien ravitsemuksen ja ruokinnan suunnittelua sekä varsinkin omistajien kouluttamista hoitamaan koiriaan oikein ja vielä paremmin. Profiili: Jakke Lehtonen

Keskustele foorumilla Meta/KATISKA