tavis nörttimaailmassa

EksisONE - artikkeleita ja ohjeita nörttimaailmasta

Virtuaalipalvelin 2: Ubuntu ja perusasetukset

Siirtymisessä webhotellista virtuaaliserveriin suurin kynnyskysymys on ympäristön asettaminen. Joutuu hoitamaan kaikki aivan itse (tai maksamaan jollekulle). Mutta aidosti kynnys ei ole sen suurempi kuin uuden tietokoneen ostamisessa. Se ensimmäinen tuntuu ihmeelliseltä, mutta hetken kuluttua se arkipäiväistyy. Uusi tietokone on muutenkin hyvä vertaus, koska aivan sama tehdään virtuaaliserverillä: käyttöjärjestelmä, säätö, ohjelmien asennus ja sitten tehdään duunia. Ja jos säädät vain säätämisen ilosta, niin vääjäämättä jossain vaiheessa systeemi hajoaa, ja sitten ihmetellään. Joten sisäistä tämä heti: tee vain tarpeellinen – ellet harrasta virittämistä.

Oletan, että olet DigitalOceanin asiakas. Jos et, niin aloita siitä. Tai vaihda sinne, jos olet jonkun muun asiakas. Kuitenkin, nämä ohjeet pätevät käytännössä aina ja joka paikassa, kunhan sinulla on Ubuntu alla. Jos ei, niin joudut soveltamaan – mutta samat asiat on silti tehtävä. Kirjoittamani ohjeet pätevät (ainakin) Ubuntu 18, 19  ja 20 sarjan versioissa. Muistaakseni jo 16-versiossa ei tarvinnut esimerkiksi apt-komennon yhteydessä muotoa apt-get, mutta vanhemmissa kylläkin.

Kuten uuden tietokoneen ostossa, niin dropletissa on käyttöjärjestelmä valmiina asennettuna ja periaatteessa toimintakunnossa. Silti määrätyt perusasiat on tehtävä asetuksissa. Apuohjelmiakin on asennetta – saman tapaan kuin vaikka uudelle tietokoneelle on kerrottava missä on printteri ja miten wifi toimii.

DigitalOceanilla ensimmäisellä kirjautumiskerralla on vaihdettava rootin (pääkäyttäjä) salasana. Oletan, että olet tehnyt sen, kirjautunut shellistä ulos ja takaisin sisään. Aletaan töihin.

Näiden tekemiseen saa varata vartin, tai jos kovin pähkäilet asioita, niin puoli tuntia. Kokeneella puhutaan minuuteista.

Perusasetukset

Vaikka puhun perusasetuksista, niin osa näistä on perustoiminnallisuuksia, joihin voi joutua tarpeen mukaan palaamaan takaisin myöhemminkin. Kuten vaikka uuden käyttäjän luominen. Tai sitten saat todennäköisesti unohtaa ensimmäisen kerran jälkeen – tuskin jotain aikavyöhykettä täytyy säätää koko ajan. Sen sijaan päivityksiä saa tehdä melkoisen usein.

Uusi käyttäjä

Yleisten suositusten mukaan root-tunnusta ei saisi käyttää, vaan turvallisuuden takia pitäisi olla oma tunnus, jolle annetaan mahdollisuus toimia root-roolissa erillisen sudo tai su komennon avulla. Minulle ei ole vielä kukaan kyennyt selittämään ymmärrettävästi, miksi en saa toimia rootina, minun dropletini ei ole mikään organisaation multi-user ympäristö. Mutta silti se oma tunnus kannattaa luoda.

adduser tunnus

Vaihda tunnus itsellesi sopivaksi. Sinulta kysytään liuta hyvinkin oleellisia kysymyksiä, kuten työhuonetta – anna jos haluat, tai jätä tyhjäksi. Ohitat kysymykset painamalla enter.

Lisätään tunnus sudo-ryhmään, jotta sillä olisi tarpeen mukaan root-oikeudet tehdä oikeita asioita.

usermod -aG sudo tunnus

Jos kirjaudut luodulla käyttäjätunnuksella sisään, niin antamalla komennon alkuun sudo, saat tehtyä työt root-oikeuksilla. Ja nyt tulee EksisONE esimerkkien suhteen yksi erikoisuus – kaikki muut lähteet yleensä esittävät ohjeet kuin oltaisiin kirjautuneena käyttäjänä, eli edessä on sudo. Paitsi jos asia on helpompi hoitaa root-tunnuksella, jolloin joudut päättelemään esimerkistä mistä on kyse: komentokehoitteessa # tarkoittaa rootia, $ käyttäjää – alussa noudatin noita itsekin, mutta en enää. Elämä on paljon helpompaa kun liikkuu rootina.

Joten jos itse käytät normaalia tunnusta ja sudo-komentoa, niin aika ajoin täältä kopioitu esimerkki antaa virheen, että siihen tarvitaan admin-oikeuksia. Laita sitten eteen sudo. Huomaat aika äkkiä koska sudo on pakollinen – spoilerina: käytännössä aina, ja siksi kirjaudun root-tunnuksella; olen laiska ja haluan päästä helpolla.

Aikavyöhyke

Aika ajoin erilaiset verkkosivuihin(kin) liittyvät asiat ovat hyvinkin tarkkoja siitä, että tiedetään mitä kello on ja mikä on päivämäärä. Serveri asettaa itse itsensä, mutta olettaa UTC-aikaa eli Greenwitchin yleisaikaa – me olemme Suomessa kaksi tuntia edellä (ja kesäaikana kolme tuntia). Joten jos asetat jonkun asian tapahtumaan vaikka kello 12, niin se saisi tapahtua kello 12, ei kello 10.

Tarkistetaan ensin mitä kello on:

timedatectl

Sinä saat muuta, mutta minulla näkyi tällaista:

Local time: Fri 2019-08-16 11:20:26 EEST
Universal time: Fri 2019-08-16 08:20:26 UTC
RTC time: Fri 2019-08-16 08:20:27
Time zone: Europe/Helsinki (EEST, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

Asetetaan local time, paikallinen aika, ja aikavyöhyke.

timedatectl set-timezone Europe/Helsinki

Aikavyöhyke asennetaan aina muodossa alue/kaupunki. Jos sinun pitää asettaa jokin muu aikavyöhyke, niin ensin sinun pitää katsoa sen nimi. Tällä tulee sitten melkoisen pitkä lista, pgup ja pgdn auttavat hyppimään sivu kerrallaan ja q päästää pois.

timedatectl list-timezones

Tuota pystyy rajaamaan. Tämä näyttää vain Euroopan.

timedatectl list-timezones | grep -i europe

Päivitykset

Tämä on asia, joka kannattaa opetella ulkoa. Tosin, se tehdään niin usein, että jää taatusti pitkäaikaismuistiin ja nopeasti.

Päivitykset tehdään kahdella komennolla, apt update ja apt upgrade tai apt dist-upgradedist-upgrade on parempi.

Ensin tarkistetaan mitä päivityksiä on saatavilla ja onko tullut uusia paketteja, joissa ohjelmat ja komennot piileskelevät. Tämä on muuten syytä ajaa aina ennen kuin asennat yhtään mitään uutta. Suurin syy siihen miksi jonkin paketin asentaminen ei onnistu, vaikka se pitäisi olla jakelussa, on juurikin updaten jättäminen välistä.

apt update

Sitten tehdään päivitys ja varmistetaan, että pakettien toinen toisistaan riippuvat sidokset ovat kunnossa.

apt dist-upgrade

Sinulle kerrotaan, että jotain on asennettava – vastaa y asennetaan päivitykset – tai että kaikki on kunnossa.

  • Törmäät jossain vaiheessa esimerkkiin, jossa neuvotaan komentamaan apt upgrade – se tekee periaatteessa saman kuin dist-upgrade, mutta hieman vähemmällä älykkyydellä.

auto-remove

Aika ajoin päivityksen jälkeen kerrotaan, että jokin on tarpeeton ja vinkataan ajamaan apt auto-remove. Se kannattaa tehdä, mutta en ainakaan minä sitä rutiinisti käytä.

reboot

Kun on tullut jokin eräällä tavalla järjestelmän ytimeen kohdistuva päivitys, niin serveri on käynnistettävä uudestaan. Yksi nyrkkisääntö on, että jos päivitettävien joukossa vilahtaa linux-jotain, niin reboot on odotettavissa.

Päinvastoin kuin Windows, niin serveri ei käynnistä itseään uudelleen ilman lupaa vain siksi, että se tuntuu koneen mielestä hyvältä idealta. Sinun täytyy tehdä se. Päivityksen jälkeen ei koskaan kerrota, että serveri pitäisi rebootata. Saat siitä tiedon kun kirjaudut seuraavan kerran shelliin – ja jos sillä hetkellä ei ole mitään suurta yleisöryntäystä, niin tee se.

Uudelleenkäynnistyminen kaataa kaikki alkaen SSH-yhteydestäsi aina web-sivuihin asti, joten luultavasti et halua tehdä sitä silloin kuin joku on juuri verkkokaupassa maksamassa isoa tilausta. Uudelleenkäynnistys vie alle 10 sekuntia, joten se on nopea – satunnainen surffaaja todennäköisesti lukee sen aikaa websivua eikä huomaa mitään.

Uudelleenkäynnistys on helppo:

reboot