Korvaava harjoitus – moduuliarviointi

Palvelinten hallinta -kurssin viimeisten tuntien korvaava harjoitus, jossa arvioin 10 kurssitoverieni lopputyömoduulia.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

1. Aleksandr Harjumäki

Lähde: https://kishin684536525.wordpress.com/2018/05/10/palvelinten-hallinta-pt-6/.

Moduulin tavoitteena on ilmeisesti tyhjän koneen saattaminen valmiiksi näyttelykuntoon mahdollisille asiakkaille. Moduulin tarkoitus ei käy heti niin selväksi vastauksesta, eikä itse moduuliakaan saa ladattua mistään, ainakaan vielä. Saattaa johtua siitä, että tila on keskeneräinen ja tekijä saattanee sen loppuun esityspäiväksi. Esivaatimuksista ei ole puhetta, esim. Saltin asennus ja konfigurointi puuttuu kokonaan. En myöskään saanut selville, mitä kaikki moduulin osat tekisivät.

Asensin salt-minionin, loin /srv/salt-hakemiston ja muutin /etc/salt/minion-tiedostoon master: localhost. Ajoin kaikki kokeilut sudo salt-call –local -komennolla.

Kirjoitin kuvan avulla tilan itselleni, muokaten hieman lennosta verkon tietoja vastaamaan omaa konettani.

Ensimmäisessä kokeilussa ohjelmien asennuspalikan ajaminen epäonnistui, eikä tila asentanut mitään pyydetyistä ohjelmista. Kokeilin pelkällä puttyllä, sen suostui asentamaan.

Lisäsin tilaan heureka-kohdan, joka loi käyttäjän, se toimi mainiosti. Security/nmap-kohta ei onnistunut, sain virheilmoituksen.

Myöskään verkko- sekä palomuuriasetukset eivät toimineet minulla.

Arvio: Moduulin tarkoitus ei käy tekstistä selväksi, eikä se, mitä sen eri osat tekevät. Moduulia ei ainakaan toistaiseksi saa ladattua mistään, tämä korjaantunee moduulin valmistuttua. Teksti on laadittu ehkä hieman enemmän tekijälle itselleen kuin muille sitä hyödyntäville. Selkeyttä ja rakennetta raporttiin sekä edellämainitut moduulin parantelut tekisivät tästä paremman tuotoksen.

 

2. Jami Jernvall

Lähde: https://jernvall.com/2018/05/08/viikko-6-palvelinten-hallinta-oman-moduulin-kasaaminen/

Tässä työstetään Bitcoin-louhintaan tarvittava työkalu, mikä käy selvästi ilmi jo johdannossa. Tätä en itse lähtenyt varsinaisesti testaamaan, sillä minulla ei ole tunnuksia vaadittavaan palveluun, jolloin itse tilan ajo olisi epäonnistunut.

Alussa on selitetty hyvin GitHubiin repon luonti ja peruskomennot linuxilla. Kuvakaappauksia on mukavasti koko raportissa, mikä selkeyttää lukemista varsinkin jos käyttö ei ole tuttua. Tilojen tekemistä ja niiden osia on ryhmitelty hieman eri osiohin, mutta kaipaisin väliotsikoita selkeyttämään. Tilojen sisällöt ja muut mahdollisesti kopioitavat tiedot on hyvin merkitty kopioitavana tekstinä. Itse tila on testattu vielä tyhjällä asennuksella ja todettu toimivaksi kuvakaappausten kera.

Arvio: Pieniä oikeinkirjoituspuutteita lukuun ottamatta raportti ja itse tilan aihe oli mielenkiintoinen. Joitain jäsentelyjä kaipaisin lisää väliotsikoiden avulla, mutta ymmärsin mistä on kyse ja kuvien kanssa raporttia oli helppo lukea.

 

3. Miikka Valtonen

Lähde: https://github.com/Miikkb/nextcloudwithsalt sekä https://miikkavaltonen.com/2018/05/06/palvelinten-hallinta-kurssityo/

Moduulin tarkoitus on ottaa NextCloud-pilvitallennuspalvelu käyttöön saltin avulla. Tämä käy ilmi selvästi, kiitos tarpeeksi suuren ja tummennetun fontin! Readme-tiedostossa on selvät ohjeet tilan käyttöönottoon, joten kokeilin heti.

Tähän jouduin ensin asentamaan myös masterin koneelleni. Sen asennettuani kloonasin repon koneelleni Miikan ohjeistuksen mukaisesti:

sudo git clone https://github.com/Miikkb/nextcloudwithsalt /srv/salt/nextcloudwithsalt
sudo sh /srv/salt/nextcloudwithsalt/nextcloudwithsalt.sh

Pitkän asennuksen jälkeen kaikki meni kuitenkin onnistuneesti läpi. Itse en käytä NextCloudia, joten käyttöä en varsinaisesti pystynyt testaamaan.

Arvio: Simppelit ohjeet, joissa mainittu, että tilassa on vielä virheitä ja purkkaviritelmiä. Miikan kotisivuilla on vielä mukava ja mielenkiintoinen video, jossa hän kertoo enemmän moduulistaan. Todennäköisesti siis jollekin käyttökelpoinen moduuli, jos salasana- ja viritysongelmat saadaan korjattua.

 

4. Miko Lähdesmäki

Lähde: https://lahdemi.wordpress.com/2018/05/11/6-viikkotehtava-palvelinten-hallinta/

Mikon moduuli asentaa irssin ja sen käyttöön liittyvät lisäkkeet, sekä etätyöskentelyyn tarvittavat ohjelmat, graafisesti sekä SSH:lla käytettäväksi.

Aloitin Mikon omien testien mukaisesti kloonaamalla hänen reponsa komennolla

git clone https://github.com/mikokala/bash.git

Sen jälkeen siirryin oikeaan kansioon komennolla cd bash/ ja ajoin itse skriptin:

sudo sh high.sh

Asennus pyörii ja jää johonkin suht alkuvaiheeseen kiinni, eikä jatka siitä eteenpäin. Keskeytin skriptin suorittamisen ja yritin uudestaan, mutta se jäi jumiin samaan kohtaan.

Arvio: Erittäin onnistunut raportti, pitkä, mutta selkeä. Vaihe vaiheelta kuvattu eteneminen ja paljon (hyvälaatuisia) kuvia. Moduulin tehtävä on selitetty selkeästi ja raportissa on kerrottu kattavasti mitä kukin kohta tai asennus tekee, ja mitä käyttäjältä vaaditaan. Komennot on eroteltu selkeästi preformatted-muotoon. Irkkaajalle oikein hyvä työkalu, itse sen jätin jo noin viisi vuotta sitten. 🙂

 

5. Tatu Erkinjuntti

Lähde: http://erkinjuntti.me/opiskelu/palvelinten-hallinta/palvelinten-hallinta-h6/ sekä https://github.com/TatuE/CentOS-server-configuration

Tatun moduulin tarkoituksena on automatisoida Tatun oman palvelimen ohjelmien asennukset ja asetukset CentOS-käyttikselle. Moduuli käyttää puppetia, jota en itse osaa käyttää, joten arvioin tässä tehtävässä vain itse raporttia. Idea kuulostaa loistavalta ja sillä on pohjaa oikeassa maailmassa ja käyttäjälleen siitä on varmasti hyötyä. Asennettavat ohjelmat ja moduulin toiminta on selitetty selkeästi ja GitHubissa Tatulla on vielä lisäohjeita moduulin käyttöön. Itse kloonauksesta tosin ei ole ohjeita.

Raportti vaatii hieman lukutaitoa kyseisestä aiheesta, ja siinä selitetään toteamus-tyyppisesti toteutetut asiat. Kuvakaappauksia on paljon, mikä helpottaa perässä pysymistä. Tähän raporttiin kaipaisin väliotsikointeja, tekstiä on paljon ja vasta-alkajan on hieman vaikea seurata sitä. En tiedä, onko raportti hieman keskeneräinen, sillä se loppuu kovin äkisti ja minulle tuli tunne, että jotain vielä puuttuu. CentOSin ja puppetin aloitteleville käyttäjille tämä raportti on varmasti hyödyllinen, itse koin ehkä hieman jääväni aiheen ulkopuolelle.

Arvio: Moduuli vaikuttaa käyttökelpoiselta ja hyödylliseltä, ja se on raportoitu tarkasti. Raporttiin kaipaisin jäsentelyjä, johdanto on ehdottomasti paras osio selkeällä sisältökuvauksellaan. Aloittelijana kaipaisin ehkä ohjeita moduulin käyttöönottoon.

 

6. Jaakko Veijonen

Lähde: https://veijonen.com/2018/05/10/harjoitus-6/ sekä https://github.com/Jaketin/windowsgames

Jaakon moduulissa helpotetaan Windows-koneen käyttöönottoa pelaamista varten. Raportti on erittäin selkeän näköinen ja siinä on kerrottu kaikki mitä pitääkin, lyhyesti se, mitä tehdään, ja siirrytään heti itse asiaan. Komennot on laitettu preformatted-muotoon, joka erottuu hyvin muun tekstin seasta. Myös ongelmatilanteet ja havaitut poikkeamat on kerrottu.

Myös GitHubissa on ohjeistettu asiaa vielä tarkemmin, ja kaikki tuntuu yksinkertaiselta ja helpolta suorittaa myös aloittelijalle.

Arvio: Mukava moduuli pelaajalle, joka haluaa kontrolloida jotain toista Windows-konetta pelailutarkoitukseen. Varsinaista tosielämän hyötyä en välttämättä tällä näe, mutta idea on hauska. Raportti on varsin selkeä ja hyvin jäsennelty ja sitä on helppo lukea – myös vasta-alkajan.

 

7. Jaana Putro

Lähde: https://jaanaputro.wordpress.com/ ja https://github.com/jputro/mern-module

Jaanan moduulissa asennetaan MERN-stack. Jaanalla on selkeät ohjeet GitHubissa siitä, miten hänen moduulinsa asennetaan, joten seurasin niitä.

wget https://raw.githubusercontent.com/jputro/mern-module/master/run.sh
bash run.sh

Blogissa oli maininta, että run.sh pitää ajaa kahteen kertaan, jotta Mongo DB asentuu. Tein näin, ensimmäisellä kerralla sls antoi virheen, mutta toisella kerralla asennus meni läpi. NPM:n sekä Bracketsin asennukset puuttuvat tästä moduulista ja Jaana on toistaiseksi tehnyt ne käsin, joten niitä odotellaan vielä valmiiseen moduuliin.

Arvio: Dokumentaatio on selkeää ja vielä kun saadaan loputkin osiot toimimaan (sekä tuo Mongon asennus yhdellä skriptin ajolla) niin eiköhän tästä hyvä tule. Moduuli on mielenkiintoinen ja stäkki itselleni täysin tuntematon, käyttäjäkunnalleen varmasti varsin näppärä aloitusmoduuli.

 

8. Roope Varttila

Lähde: https://roopelinux.wordpress.com/2018/05/11/palvelinten-hallinta-harjoitus-6-raportti/ sekä https://github.com/roopelinux/saltpress

Roopen moduuli asentaa WordPressin. Olen itsekin harkinnut tätä omalle palvelimelleni, joten projekti kiinnostaa henkilökohtaisestikin. Moduulin tavoite on selitetty hyvin ja myös ongelmatilanteet kuvattu. Blogissa on ohjeet asennukseen, joten aloitin komennolla:

git clone https://github.com/roopelinux/saltpress.git

Kohta 6: ”liikutin tilat /srv/salt/-hakemistoon (sudo mv tiedosto/hakemisto /srv/salt)” on hieman epäselvä, kommentissa ei mainita, mitkä tilat pitää siirtää. Siirsin koko saltpress-kansion saltin kansioon. Komento sudo salt ‘*’ state.highstate antoi virheen. Myös kohta 8 ”liikutin esitäytetyn wp-config-tiedoston /var/www/html/-hakemistoon” on hieman epäselvä, missä tuo wp-config-tiedosto on? Näistä voisi kertoa hieman selvemmin, toki tekijä ja edistyneempi käyttäjä tietää ja osaa etsiä.

Roopen sanoin moduulista puuttuu vielä osia, jotka täydentyvät esittelyyn mennessä.

Arvio: Dokumentaatio selkeää, mutta siitä puuttuu idioottivarmoja selityksiä. Omat sudenkuopat merkitty hyvin ja tähän käytännölliseen tilaan varmasti saa vielä parannuksia ennen esitystä.

 

9. Ville Touronen

Lähde: https://github.com/villetouronen/Module

Villen moduuli asentaa joitakin ohjelmia ja muokkaa SSH:n oletusporttia. Readme on vielä kovin tyhjä, asennusohjeita ei ole. Kloonasin repon koneelleni, siirryin sen kansioon ja ajoin module.sh-skriptin.

Sain yhden virheilmoituksen tilan ajosta, palomuurin käyttöönotosta. Jostain syystä komento ei mennyt läpi toisellakaan yrittämällä.

Villen blogissa (https://villetouronen.wordpress.com/blogi/) ei ollut raporttia tehtävästä, joten en tiedä miten se on hänen mielestään sujunut.

Arvio: Readme-tiedostoa täytyy vielä täydentää ja riippuen siitä, johtuiko tuo palomuuriongelma vain minun koneestani vai onko se universaali, sitä täytyy katsoa. Idea on simppeli mutta kattava, tästä kun saisi luettavaksi vielä raportin.

 

10. Vili Viita

Lähde: https://github.com/Vipa94/Module/blob/master/h6raportti.md

Moduulin tarkoitus on ottaa Apache ja käyttäjien kotisivut käyttöön, asentaa SSH ja muokata sitä sekä ottaa käyttöön sysstat.

Raportissa on ohjeet käyttöönottoon, samat tutut komennot

wget https://raw.githubusercontent.com/Vipa94/Module/master/test.sh
bash tesh.sh

Skripti soljuu loppuun asti kunniakkaasti, Vili on merkinnyt että aluksi viimeisen suoritettavan skriptin osalta oli ongelmia, mutta se on korjattu. Moduuli itse on hyvin perinteinen mutta kattaa Apachen peruspaketin, josta monelle on hyötyä. Dokumentaatio on hyvää, joskin readme-tiedostoon voisi kirjoittaa pikaohjeet ja tiedot moduulista.

Vilin blogissa (https://viliviita.wordpress.com/2018/05/10/harjoitus-6-2/) on vain linkki GitHubiin, eli sen suurempia analyyseja ei ole. Githubin raportissa toki näkyy perusasiat siitä, mitä on tehty.

Arvio: Hyvää peruskauraa, dokumenttiin voisi ehkä lisätä vielä vähän tarkempaa sisältöä ja readme-tiedostoon kirjoittaa, mistä moduulissa on kyse. Jos perussettiä haluaa parantaa, tähän voisi keksiä joitain edistyneempiä toimintoja tai pakettien asennuksia.

 

Mainokset

Modifying live USB Linux with Salt state

Palvelinten hallinta -kurssin harjoitus 5 ja lopputyön ensimmäinen versio.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Uusi repositio GitHubiin ja hello-tiedosto

Loin uuden repon GitHubiin nimellä kinuski. Osoite https://github.com/Miyune/kinuski. Loin sinne kansion srv/salt/desktop, johon loin tiedoston init.sls. Tähän kirjoitin asennettavien pakettien nimet:

applications:
  pkg.installed:
    - pkgs:
      - vlc
      - gimp

Loin kansion srv/salt/helloiina, johon tein tiedoston init.sls. Tähän kirjoitin:

/tmp/helloiina.txt
  file.managed:
    - source: salt://helloiina/helloiina.txt

Loin kyseiseen kansioon myös tiedoston helloiina.txt, johon kirjoitin tervehdyksen.

 

Terminaalin asetukset

Loin uuden kansion srv/salt/terminal, johon loin tiedoston init.sls. Sen sisältö oli seuraava:

/home/xubuntu/.config/xfce4/terminal/terminalrc:
  file.managed:
    - source: salt://terminal/settings
    - user: xubuntu
    - group: xubuntu
    - replace: False
    - makedirs: True

Loin kansion alle myös tiedoston settings, johon kopioin livetikkuni terminaalista muuttamani tiedot (tiedostosta /home/xubuntu/.config/xfce4/terminal/terminalrc):

[Configuration]
ColorForeground=#ffffffffffff
ColorBackground=#000000000000
ColorCursor=#0f4999
ColorSelection=#163b59
ColorSelectionUseDefault=FALSE
ColorBoldUseDefault=FALSE
ColorPalette=#000000;#aa0000;#44aa44;#aa5500;#0039aa;#aa22aa;#1a92aa;#aaaaaa;#777777;#ff8787;#4ce64c;#ded82c;#295fcc;#cc58cc;#4ccce6;#ffffff
FontName=Courier 10 Pitch 11
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBordersDefault=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=80x24
MiscInheritGeometry=FALSE
MiscMenubarDefault=TRUE
MiscMouseAutohide=FALSE
MiscToolbarDefault=FALSE
MiscConfirmClose=TRUE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscScrollAlternateScreen=TRUE
TabActivityColor=#0f4999
BackgroundDarkness=0.580000

 

Taustakuvan vaihto

Seuraavaksi loin kansion srv/salt/background taustakuvan vaihdolle. Tähän vaihtoon on haettu ohjeita Juho Syrjäsen blogista: https://juhosyrjanen.com/2015/11/26/salt-change-default-background-with-saltstack/.

Background-kansioon loin init.sls-tiedoston sekä uppasin vapaaseen käyttöön tarkoitetun taustakuvan pexels.comista. Tilatiedostoon kirjoitin seuraavaa:

#!pyobjects
 
File.managed("/usr/share/xfce4/backdrops/xubuntu-wallpaper.png", source="salt://background/img.png")

Tämä tarvitsee uudelleenkirjautumisen.

 

Top.sls

Loin srv/salt-kansioon top.sls-nimisen tiedoston, johon kirjoitin seuraavaa:

base:
  '*':
    - desktop
    - helloiina
    - terminal
    - background

 

Setup.sh

Tein tiedoston, jossa tapahtuu GitHubista nouto sekä muita pieniä asetuksia, kuten näppäimistön vaihtaminen suomenkieliseksi. Tiedosto tuli kinuski-repon juureen ja nimeksi setup.sh, sisältö:

#!/bin/bash

echo "Konffaat livelinuxiasi kinuskilla"
set -o verbose

echo "Asennetaan Salt ja Git"
sudo apt-get update
sudo apt-get -y install git salt-minion

echo "Muutetaan asetuksia ja haetaan tilat"
echo 'master: localhost'|sudo tee /etc/salt/minion
git clone https://github.com/Miyune/kinuski.git
cd kinuski/

echo "Desktopin muokkausta"
setxkbmap fi
sudo timedatectl set-timezone Europe/Helsinki
git config --global credential.helper "cache --timeout=3600"
git config --global push.default simple

echo "Valmista!"

 

 

Käyttäjätarina

Kinuski-moduulin käyttäjät ovat uusia Linuxin käyttäjiä, jotka haluavat nopeasti saada käyttökelpoisen livetikun toimintaan. Moduuli tekee perusasetukset valmiiksi ja asentaa pari peruskäyttäjän varmasti tarvitsemaa ohjelmaa (VLC ja Gimp). Moduulia käytetään joka kerta livetikun käynnistyksessä, joten se säästää ensimmäiset 10 minuuttia koneen käynnistyksestä. Paranneltavaa löytyy ehkä vielä monipuolisuudessa, uusia tiloja voisi luoda nostamaan käytettävyyttä vielä enemmän ja poistamaan lisää käsityötä livetikkujen alkusäädöistä.

 

Git-perusteet

Komennot ja perusteiden ohjeet Haaga-Helian Palvelinten hallinta -kurssilta Tero Karviselta, www.terokarvinen.com.
Osa tehtävistä GitHubissa: https://github.com/Miyune.

 

Pohja

Asenna Git ja luo uusi kansio projektille TAI kloonaa uusi repositorio GitHubista.

 

Komennot:

git init

Luo reposition.

git add .

Valmistelee kaikki kansion tiedostot siirtoa varten.

git commit

Siirtää tiedostot, kommentoi.

git reset --hard

Palaa edelliseen commitiin.

git blame tiedosto

Näyttää, kuka on kirjoittanut rivit.

git diff id id2

Näyttää muutokset kahden commitin välillä.

git log

Näyttää tehdyt commitit ja tekijät sekä aikaleimat.

git log -p

Näyttää kaikkien tehtyjen commitien sisällöt.

git add . && git commit; git pull && git push

Tekee kaiken yhdellä kertaa.

Pilarit

Palvelinten hallinta -kurssin harjoitus 4.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Saltin käyttöönotto

Otin ensin Saltin käyttöön asentamalla master-slave -arkkitehtuurin.

Asensin salt masterin ja slaven samalle koneelle komennolla sudo apt-get -y install salt-master salt-minion. Tarkistin IP-osoitteen komennolla hostname -I, jonka jälkeen muokkasin tiedostoa sudoedit /etc/salt/minion. Tiedoston loppuun kirjoitetaan rivit:

master: ip-osoite
id: mikki

Tallennus ctrl + X Y enter. Sen jälkeen daemonin uudelleenkäynnistys komennolla sudo systemctl restart salt-minion.service.

Tätä harjoitusta varten asensin toisenkin minionin webbipalvelimelleni. Tein sille saman muutoksen /etc/salt/minion-tiedostoon, mutta eri id:llä:

master: ip-osoite
id: minni

Käynnistin minionin uudelleen komennolla sudo systemctl restart salt-minion.service.

Tarkistin masterin autentikaatiotilanteen komennolla sudo salt-key. Komento näyttää, että hyväksymättömiä avaimia on yksi: mikki. Toisen minionin avainta ei siis näkynyt ollenkaan. Kokeilin debuggia ja sain tulokseksi seuraavaa:

Screenshot_2018-04-21_09-01-16

Virheilmoitus ei kertonut minulle mitään, googlettamalla virheilmoituksilla ei löytynyt mitään hyödyllistä. Yritin vaihtaa omistajuutta Saltin dokumentaation mukaan, mutta se sotki minionia enemmän. En siis onnistunut tekemään useamman minionin asennusta.

Salt-tila, jinja, muotit

Palvelinten hallinta -kurssin harjoitus 3.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Saltin käyttöönotto

Otin ensin Saltin käyttöön asentamalla master-slave -arkkitehtuurin.

Asensin salt masterin ja slaven samalle koneelle komennolla sudo apt-get -y install salt-master salt-minion. Tarkistin IP-osoitteen komennolla hostname -I, jonka jälkeen muokkasin tiedostoa sudoedit /etc/salt/minion. Tiedoston loppuun kirjoitetaan rivit:

master: ip-osoite
id: mikki

Tallennus ctrl + X Y enter. Sen jälkeen daemonin uudelleenkäynnistys komennolla sudo systemctl restart salt-minion.service.

Tarkistin masterin autentikaatiotilanteen komennolla sudo salt-key. Komento näyttää, että hyväksymättömiä avaimia on yksi: mikki. Hyväksyin avaimen komennolla sudo salt-key -A.

Testasin toimivuuden komennolla sudo salt ’mikki’ cmd.run ’hostname’. Komento tulosti minionin hostnamen, joten yhteys toimii.

Poistin vielä turhan varoitustekstin salt-tulosteen alusta muokkaamalla masterin asetustiedostoa komennolla sudoedit /etc/salt/master ja kirjoittamalla tiedoston loppuun file_ignore_glob: [].

Loin vielä Saltille sls-tiedostoja varten kansion komennolla sudo mkdir /srv/salt/.

 

Tilatiedosto Jinjan kontekstimuuttujalla

Loin tilan komennolla sudoedit /srv/salt/context.sls. Kirjoitin sen sisälle seuraavanlaisen tilan:

/home/xubuntu/heippa.txt:
 file.managed:
   - source: salt://terve.txt
   - template: jinja
   - context:
   person: 'Iina'

Loin tekstitiedoston, johon Salt syöttää kontekstin, komennolla sudoedit /srv/salt/terve.txt. Kirjoitin tiedostoon lyhyesti: Hei {{ person }}!.

Ajoin tilan komennolla sudo salt ’mikki’ state.apply context. Ajo meni läpi, ei virheilmoituksia.

Testasin vielä tiedoston muuttuneen komennolla cat /home/xubuntu/heippa.txt. Tuloste oli oikea, eli tila ja jinja toimi.

Screenshot_2018-04-15_15-50-40.png

 

SLS-tila Jinjalla: for-in

Lainasin tukea ja inspiraatiota Robert Ridalin tehtävistä: https://robertridal.wordpress.com/2018/04/13/linux-server-management-assignment-3-salt-jinja/.

Loin uuden tilatiedoston komennolla sudoedit /srv/salt/forin.sls. Kirjoitin tiedostoon seuraavan:

{% for file in ['koira.txt', 'kissa.txt', 'kettu.txt'] %}

/home/xubuntu/{{ file }}:
  file.managed:
    - source: salt://forintext.txt
    - template: jinja

{% endfor %}

Loin tiedoston forin.txt: sudoedit /srv/salt/forin.txt ja kirjoitin sinne Hello jinja world!.

Ajoin tilan komennolla sudo salt ’*’ state.apply forin.

Komento onnistui ja tarkistin yhden tiedoston sisällön, joka oli oikea:

Screenshot_2018-04-15_16-24-48

 

SSH:n portin muuttaminen tilalla

Lainasin Joni Mattssonilta apuja tehtävään: https://mattssonjoni.wordpress.com/2018/04/15/palvelinten-hallinta-h3/.

Aloitin SSH:n asennuksella: sudo apt-get -y install openssh-server. Kopioin SSH:n asetustiedoston komennolla: sudo cp /etc/ssh/sshd_config /srv/salt.

Sudoedit /srv/salt/sshd_config -> muutin Port-rivin muotoon: Port: {{ port }}.

Loin uuden tilatiedoston: sudoedit /srv/salt/sshd.sls ja kirjoitin sinne seuraavasti:

openssh-server:
 pkg.installed

/etc/ssh/sshd_config:
 file.managed:
 - source: salt://sshd_config
 - template: jinja
 - context:
 port: 1188

sshd:
 service.running:
 - watch:
 - file: /etc/ssh/sshd_config

Ajoin tilan komennolla sudo salt ’*’ state.apply sshd. Käsky meni läpi ja /etc/ssh/sshd_configiin oli muuttunut portti antamakseni (1188).

 

Kokeile jonkun toisen tilaa

Käytin Valtteri Partasen tilaa Sysstatin asennuksesta: https://valtteripartanen.wordpress.com/2018/04/08/palvelinten-hallinta-h2/.

Ensin asensin sysstatin käsin komennolla sudo apt-get -y install sysstat. Laitoin sysstatin päälle muuttamalla tiedostossa sudoedit /etc/default/sysstat rivin ”ENABLE: true”.

Uudelleenkäynnistin palvelun komennolla sudo systemctl restart sysstat.

Testasin komennolla sar ja sain tietoja ulos:

Screenshot_2018-04-15_17-11-56.png

Kopioin muokatun asetustiedoston salt-kansioon komennolla sudo cp /etc/default/sysstat /srv/salt/. Loin uuden tilan komennolla sudoedit /srv/salt/sysstat.sls ja kirjoitin sen sisälle:

sysstat:
  pkg.installed

/etc/default/sysstat:
  file.managed:
    - source: salt://sysstat

sysstatservice:
  service.running:
    - name: sysstat
    - watch:
      - file: /etc/default/sysstat

Seuraavaksi postin Sysstatin koneelta: sudo apt-get -y purge sysstat.

Testasin tilan toimivuutta komennolla sudo salt ’*’ state.apply sysstat. Komento onnistui, muutoksia tuli kolme (asennus, tiedoston muokkaus ja restart).

Apache name-based virtual hosts

Virtualhosts.sls-tiedostoon:

apache2:
 pkg.installed

/etc/apache2/sites-available/termos.conf:
 file.managed:
   - source: salt://termos.conf

/etc/apache2/sites-enabled/termos.conf:
 file.managed:
   - target: /etc/apache2/sites-available/termos.conf

/etc/apache2/sites-enabled/000-default.conf:
 file.absent

apache2.service:
 service.running:
   - watch:
     - file: /etc/apache2/sites-enabled/termos.conf

Hosts-tiedostoa pitää olla muutettu ja ennen staten ajamista täytyy myös luoda conf-tiedosto komennolla sudoedit /srv/salt/termos.conf.
Tähän tiedostoon kopioidaan tiedostosta /etc/apache2/sites-available/000-default.conf koko setti (tai vain ei-kommentoitu osio) ja lisätään seuraavat:

ServerName http://www.palvelin.com
ServerAlias palvelin.com
<Directory documentroot (kopioi samasta tiedostosta)>
Require all granted
</Directory>

Lopuksi ajetaan sudo salt ’*’ state.apply virtualhosts.