Palvelinten hallinta – Korvaava tehtävä + vertaisarvioinnit

Tehtävänanto

“Asenna, testaa ja arvioi kolme modulia esittelytilaisuudesta. Raportoi samalla tavalla kuin kotitehtävät. Voit halutessasi kertoa kommenttisi myös modulien tekijöille.”
-Tero Karvinen

Harjoituksessa käytetty laitteisto/ohjelmisto:

  • 16GB Kingston DataTraveler 100 G3 USB 3.0 muistitikku
  • Tietokone (Asus Z170-A, i7-6700K , 16GB DDR4 3200MHz, Evga 1070 sc)
  • Oheishärpäkkeet
  • Xubuntu 16.04.1 LTS
  • Puppet versio: 3.8.5

Alustavat valmistelut:

Boottasin Xubuntu-livetikulle valitsemalla USB-muistitikun käynnistyksen yhteydessä bootattavaksi levyksi.  Kun kysyttiin haluanko testata Xubuntua vaiko asentaa sen, valitsin vaihtoehdon “Try Xubuntu without installing“. Lyhyen latauksen päästä pääsin työpöydälle.
Yhdistin heti kotini langattomaan verkkoon työpöydän oikeasta yläkulmasta sekä muutin näppäimmistön layoutin suomiversioksi komennolla terminaalin komennolla “$ setxkbmap fi”.
Seuraavaksi syötin komennon “$ sudo apt-get update“. Kyseinen komento päivittää pakettivarastot, ja se kannattaa suorittaa aina ennen kuin hyödyntää paketinhallintaa mihinkään.
Asensin Puppetin ja Gitin toisten opiskelijoiden moduulien testausta varten:
$ sudo apt-get install puppet
$ sudo apt-get install git

Testattavat moduulit:

Päätin katsastaa seuraavien opiskelijoiden moduulit:

  • Oona Lähteenmäki
  • Mika Selvinen
  • Jani Markkula

Oonan moduuli

Ensimmäisenä kokeilin Oona Lähteenmäen Puppet moduulia. Oonan mukaan kyseinen moduuli asentaa tekstinkäsittelyyn tarvittavat ohjelmat, ssh:n, gitin sekä myös Apachen ja php-ohjelmointikielen. Ajettaessa moduulin, käyttäjä saa myös automaattisesti public_html hakemiston ja valmiin index.php tiedoston.
Moduuli löytyi: https://github.com/oonalinnea/mymodule
Asennus ja testaus
Asensin Oonan moduulin komennolla:
$ sudo git clone https://github.com/oonalinnea/mymodule.git
Tämän jälkeen siirsin tiedostot tarvittaviin paikkoihin:
$ sudo mv /home/xubuntu/mymodule/ /etc/puppet/modules/
Nyt, kun moduulin osat ovat oikeilla paikoillaan, niin katsotaan, mitä init.pp pitää sisällään:
Screenshot_2017-01-23_20-05-42.png
Näyttäisi sisältävän myös MySQL serverin ja clientin, vaikka Oona ei omassa kuvauksessaan tietokannasta maininnutkaan. Toimiessaan, tulisi siis olla koko LAMP-stack kasassa.
Ajetaan moduuli seuraavasti:
$ sudo puppet apply -e ‘class {mymodule:}’
Tulos:

Notice: Compiled catalog for xubuntu in environment production in 0.30 seconds
Notice: /Stage[main]/Mymodule/Package[ssh]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/Package[gedit]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/Package[mysql-client]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/Package[mysql-server]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/Package[apache2]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/Package[libapache2-mod-php]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/File[/etc/apache2/mods-enabled/userdir.conf]/ensure: created
Notice: /Stage[main]/Mymodule/File[/etc/apache2/mods-enabled/userdir.load]/ensure: created
Notice: /Stage[main]/Mymodule/File[/var/www/html/index.html]/content: content changed '{md5}9ad421244b28db9cb4a6857edd297ef5' to '{md5}09c1501636b44f4d5d518e07b24f2766'
Notice: /Stage[main]/Mymodule/Package[libreoffice]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/File[/etc/skel/public_html]/ensure: created
Notice: /Stage[main]/Mymodule/File[/etc/skel/public_html/index.php]/ensure: defined content as '{md5}b6c1ffedb40d9dc46cacf82c4fc59062'
Notice: /Stage[main]/Mymodule/Package[php7.0]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Mymodule/File[/etc/apache2/mods-available/php7.0.conf]/content: content changed '{md5}7b91f8ac555faba6042a634ac4749a31' to '{md5}de93d33dc7a3b3b288e0a541780abc2a'
Notice: /Stage[main]/Mymodule/Service[apache2]: Triggered 'refresh' from 3 events
Notice: Finished catalog run in 88.67 seconds

Apache:
Screenshot_2017-01-24_14-24-28.png
Gedit:
Screenshot_2017-01-24_14-26-58.png
Gedit oli asentunut oikein.
Php:
screenshot_2017-01-24_14-28-28
Php7.0.conf tiedostosta on kommentoitu ifmodulet pois, jotta php toimisi käyttäjän myös kotihakemistossa.
Libre:
Sieppaa1.JPG
Libre tosin on Xubuntussa asennettu valmiiksi jo muutenkin. Gitin asensin itse ennen, kuin aloin tätä vertaisarviointia tekemään.
MySQL:
Tarkistin, että onko mysql client ja -server asennettuna.

xubuntu@xubuntu:~$ sudo apt-get install mysql-server mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
mysql-client is already the newest version (5.7.17-0ubuntu0.16.04.1).
mysql-server is already the newest version (5.7.17-0ubuntu0.16.04.1).
0 upgraded, 0 newly installed, 0 to remove and 271 not upgraded.

Yritin kirjautua MySql rootille:
$ mysql -u root -p

xubuntu@xubuntu:~$ mysql -u -root -p
Enter password:
ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password: NO)

Moduuli ei aseta salasanaa automaattisesti, vaan se tulee jälkeenpäin asettaa itse.
Palaute ja kehitysehdotukset
Käytännössä kyseessä on taas yksi LAMP moduuli, johon on vain lisätty muutama yksityistoive käyttäjälle itselleen. Tuntui kuitenkin siltä, että tätä pyrittiin markkinoimaan vähän muista LAMP-moduuleista poiketen.
Itse moduuli on toimiva ja helppo asentaa. Olin itseasiassa yllättynyt, ettei tullut vastaan yhtään erroria edes ensimmäisellä ajolla. Asennus kesti noin puolitoista minuuttia.
Kehitysehdotuksena olisi MySQL tietokannan konfigurointi mahdollisimman helpoksi. Root-salasanan vaihtaminen olisi ehkä hyvä tapahtua heti moduulissa, koska käsittääkseni, jos ajaisin tämän moduulin usealle koneelle samanaikasesti herra-orja-arkkitehtuurilla, niin minun tulisi mahdollisesti asettaa tietokannan root-salasana manuaalisesti jokaiselle tietokoneelle erikseen. En tosin väitä tietäväni, miten tämän tulisi oikeaoppisesti tapahtua, ja tiedän, että MySQL tuotti eniten hankaluuksia kaikilla muillekkin LAMP-stackia sivuaville aiheille (itseni mukaanlukien).
Hyvää moduulissa on sen yksinkertaisuus, ja arvostan sitä, että moduuli toimi välittömästi myös live-tikulla. Kuitenkin kannustaisin kehittämään siitä vähän yksilöllisemmän, koska vastaavia moduuleita syntyi kurssin aikana enemmän kuin tarpeeksi, ja en tiedä onko tästä moduulista tekijälle itselleen hirveästi hyötykäyttöä. Virheitä en Oonan moduulista löytänyt.

Mikan moduuli

Toisena moduulina tarkastelin Mika Selvisen Puppet moduulia. Aiheena Mikalla on ollut valokuvaus ja kuvankäsittely.
Mikan oman kuvauksen mukaisesti moduulista tulisi löytyä kaikki tarpeellinen raakakuvien nopeaan muokkaukseen mm. ulkomailla, kun kotikoneen omat softat eivät ole käytettävissä. Moduuli sisältää myös muita käyttöohjelmia tekijän omien mieltymysten takia.
Moduuli löytyi: https://github.com/mikaselvinen/camera
Asennus ja testaus
Asensin Mikan moduulin seuraavasti:
$ sudo git clone https://github.com/mikaselvinen/camera.git
Kuten Oonankin moduulin kohdalla, siirsin tiedostot oikeisiin paikkoihin ennen moduulin ajamista. Katsoin myös, mitä init.pp pitää sisällään:
Screenshot_2017-01-24_15-10-58.png
Sitten ajoin moduulin:
$ sudo puppet apply /etc/puppet/manifests/site.pp
Tulos:

Notice: Compiled catalog for xubuntu in environment production in 0.25 seconds
Notice: /Stage[main]/Camera/Package[rawtherapee]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Camera/Package[tree]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Camera/Package[vlc]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Camera/Package[xul-ext-ublock-origin]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Camera/Package[pinta]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Camera/File[/etc/firefox/syspref.js]/content: content changed '{md5}09e457e65435a1a043521f2bd19cd2a1' to '{md5}272ba906084add7cede2b3166005b452'
Notice: /Stage[main]/Camera/Service[firefox]: Triggered 'refresh' from 1 events
Notice: /Stage[main]/Camera/Package[darktable]/ensure: ensure changed 'purged' to 'present'
Notice: Finished catalog run in 52.62 seconds

Screenshot_2017-01-24_15-21-24.png
Sieppaa2.JPG
Kaikki näyttäisi toimivan toivotusti.
Palaute ja kehitysehdotukset
Darktable, vlc, pinta, tree, rawtherapee, gedit heti toimivat moitteettomasti. Firefox selain piti sulkea ja käynnistää uudelleen, jotta ublock tuli käyttöön. Moduulin asennus ei tuottanut yhtään virheilmoitusta ja se kesti noin minuutin verran.
Pidän siitä, että Mika on valinnut aiheen, joka häntä oikeasti kiinnosti ja josta on hänellä arkipäiväistä hyötyä. En itse harrasta valokuvausta tai kuvanmuokkausta, joten en osaa ottaa kantaa Mikan valitsemiin ohjelmiin. Näin ulkopuolisin silmin valikoima vaikuttaa kuitenkin hyvältä. Ymmärrän täysin moduulin hyödyn esimerkiksi ulkomaan matkoilla, jolloin mukana on pelkkä läppäri. Raakakuvat voivat viedä jäätävästi tallennustilaa, joten saattaa tulla tilanteita, joissa kuvia olisi hyvä käsitellä ennen kuin ne heitetään esim. pilveen jatkotalletusta varten. UBlock lisäosan sisällyttämistä arvostan suuresti.
Itse moduuli on kirjoitettu selkeästi, se toimii heti live-tikulla, enkä muutenkaan huomaa mitään suoranaisia puutteita siinä tai sen toiminnassa. Vaikkei moduuli näytäkkään kovin mahtipontiselta toteutukselta, niin siinä on kuitenkin järkeä ja oikeaa hyötyä tekijälleen. Muutenkaan moduulin käytössä ei ollut itselläni mitään syytä valittamiseen.
Kehitysehdotuksia en osaa oikeastaan tuohon lisätä, koska en kyseisiin työkaluihin ole ennen tutustunut. Mika tosin oli itse jo havainnut jatkokehityskohteita, jotta valokuvat saataisiin mm. automaattisesti ladattua portfolioon, joten niistä kannattaa jatkaa. Motivaatiotakin kehittämiselle varmasti on, kun aihe on kerran hänelle erittäin läheinen. Kaiken kaikkiaan ihan mukava toteutus.

Janin moduuli

Lopuksi testasin Jani Markkulan moduulia.
Janin Puppet moduuli asentaa VoIP eli Voice over Internet Protocol ohjelmat kommunikointiin sekä konfiguroi Mumble serverin, johon voi asennuksen jälkeen liittyä. Mumble on siis vapaan lähdekoodin VoIP ohjelmisto. Tavoitteena on kuulemma saada tietystä koneesta tarvittaessa nopeasti alusta Mumble servua varten.
Jani kuitenkin painottaa sivullaan, että lopullinen versio on viimeistelty ja testattu toimivaksi kotiolosuhteissa hänen koneellaan, joten jää nähtäväksi, miten se toimii omalla koneellani.
Moduuli löytyi: https://github.com/janilius/voip
Asennus ja testaus
Asensin Janin moduulin Gitillä seuraavasti:
$ sudo git clone https://github.com/janilius/voip.git

Seuraavaksi siirsin init.pp:n ja mumble-server.ini-tiedoston oikeille paikoilleen /etc/puppet/-hakemiston alle.
Vilkaisin, miltä init.pp näyttää:
Screenshot_2017-01-24_18-26-20.png
Sitten ajoin moduulin:
$ sudo puppet apply -e ‘class {voip:}’
Tulos:

Notice: Compiled catalog for xubuntu in environment production in 0.20 seconds
Notice: /Stage[main]/Voip/Package[mumble]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Voip/File[/etc/mumble-server.ini]/ensure: defined content as '{md5}108f7132d1707576f1e86fab5cd2337a'
Notice: /Stage[main]/Voip/Package[mumble-server]/ensure: ensure changed 'purged' to 'present'
Notice: Finished catalog run in 14.06 seconds

Mumble olikin asentunut koneelleni. Avatessani sen ensimmäisen kerran, se halusi, että säädän äänikorttini ja mikrofonini asetukset kuntoon. Suljin kuitenkin ohjelman, ja avatessani sen uudestaan sain seuraavan näkymän:
Screenshot_2017-01-24_18-31-11.png
Oletan, että tuo “Moduuli Serveri” on Janin oma servu. Alempaa voin katsoa, mihin muihin suomalaisiin servereihin voin yhdistää itseni:
Screenshot_2017-01-24_18-34-29.png
Yritin yhdistää itseni tuohon Janin servuun tekemällä siinä käyttäjän nimeltä Testi. En kuitenkaan saanut yhdistettyä palveluun, koska minulta vaadittiin salasanaa, mikä onkin täysin ymmärrettävää:
Screenshot_2017-01-24_18-36-46.png
Voisin nyt halutessani konfiguroida äänilaitteeni optimaaliseksi Mumblea varten configuren Audio Wizardin kautta. En nyt kuitenkaan ala sitä tekemään, sillä ohjelma näyttää toimivan hyvin.
Screenshot_2017-01-24_18-39-20.png

Palaute ja kehitysehdotukset

Moduuli oli toimiva: virheitä ei tullut asennuksen yhteydessä ja asennus oli nopea. Aiheena mielestäni ihan kiva, koska se ei ollut turhan yleinen aihe kurssilaistemme keskuudessa, kuten esimerkiksi LAMP. Ohjelman perustoiminnut vaikuttivat toimivan hyvin, eikä minulla ole moduulin rakenteesta mitään valittettavaa. Lataaminen onnistui GitHubista ilman ongelmia.
Kehitysehdotuksia minun on hankala esittää, koska en käytä kyseistä ohjelmaa puheviestintään. Moduuli oli kuitenkin aika vaisu, sillä loppuen lopuksi se käytännössä asentaa vain kaksi ohjelmaa paketinhallinnan kautta. Ehkä Jani voisi kokeilla vaikkapa automatisoida äänilaitteiston konfiguroinnin, kun palvelu otetaan ensimmäistä kertaa käyttöön. Toki, kun ympäristö ja laitteisto ovat ihmisillä erilaiset, niin manuaalinen säätö on luotettavinta. Janin omassa kotiympäristössä ehkä kuitenkin kokeilemisen arvoinen idea, jos haluaa jatkaa moduulin kehitystä. Jotain persoonallisuutta pakettiin mukaan.
Loppuen lopuksi minulla ei ole mitään pahaa sanottavaa. Se tekee sen, mitä Jani tahtoikin, ja ilman ongelmia asennuksen tai käyttöönoton kanssa. Jos tämä oli Janille itselleen mieluisa ja hyödyllinen projekti, niin siinä suhteessa ihan onnistunut. En kuitenkaan tiedä, kuinka usein tuo Mumble tulee tekijällä tai käyttäjillä ylipäätänsä asennettua uudelleen, joten onkohan tälläinen keskitetty automatisaatio tarpeellista ylipäätänsä.

Lähteet

Oonan GitHub:
https://github.com/oonalinnea/mymodule
Mikan GitHub:
https://github.com/mikaselvinen/camera
Janin GitHub:
https://github.com/janilius/voip

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 3 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html” Markus Pyhäranta

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top