h6 – Palvelinten hallinta ict4tn022

Tehtävä löytyy osoitteesta: http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

a) Kultainen polku. Tee ensimmäinen versio modulistasi, joka toimii ainakin optimiolosuhteissa. Jos jokin säätö on poikkeuksellisen hankala, voit tehdä sen tässä versiossa käsin, ja dokumentoida ajamasi käskyt. (Valmis moduli tarvitaan vasta esitykseen ensi viikolla).

(Moduuli): https://github.com/Julmajamal/grafanadocker
– Ei ole salt-tilaa vielä, missä käyttäisi scriptejä oikeassa järjestyksessä, mutta huom. pitäisi toimia käyttämällä manuaalisesti järjestyksessä (ainakin minulla toimi):

$ sudo bash preq.sh
$ sudo bash keyadd.sh
$ sudo bash repoadd.sh
$ sudo bash install.sh
$ sudo bash influx.sh
$ sudo bash post.sh
$ sudo bash grafana.sh

Selaimeen: localhost:3000
Käyttäjä: admin
Salasana: salainen

(Curl pitää asentaa manuaalisesti, en tiedä vielä mikä on vialla kyseisessä scriptissä)

b) Kokeile moduliasi tyhjässä koneessa. Voit käyttää virtualboxia, vagranttia tai livetikkua.

uusitikku

clone

loytyy

grafanaa

zululworking

dashboard

paneeli

datapiste

 

 

c) Käyttäjätarina (user story): ketkä ovat modulisi käyttäjät? Mitä he haluavat saada aikaan modulillasi? Missä tilanteessa he sitä käyttävät? Mitkä ovat tärkeimmät parannukset käyttäjän kannalta, joita moduliin pitäisi vielä tehdä? Tähän c-kohtaan vain sanallinen vastaus, tämä kohta ei poikkeuksellisesti edellytä testejä tietokoneella.

Käyttäjäni ovat esimerkiksi tutkijat jotka tarvitsevat grafanaa, mutta yleensä grafanaa säädetään manuaalisesti. Moduulia voi käyttää käyttöönotossa, mutta siinä ei ole vielä ainakaan mitään erikoisia säätöjä. Käyttäjän kannalta isoin ja tärkein muutos olisi varmaan tehdä esimerkki käyttäjä joka voi käyttää grafanan dashboardia, mutta toimii nykyiselläänkin admin/salainen.

 

Lähteet:

https://docs.saltstack.com/en/latest/ref/states/all/salt.states.grafana.html
http://docs.grafana.org/installation/debian/

http://docs.grafana.org/installation/docker/
http://docs.grafana.org/administration/provisioning/
https://docs.docker.com/install/linux/docker-ce/ubuntu/
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.docker.html
https://github.com/grafana/grafana-docker
https://docs.docker.com/compose/install/

Harjoitus 4 – Palvelinten hallinta ICT4TN022-4

Harjoitus on sivulta: http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

h4

b) Tee kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummalekin orjalle mene eri tieto. Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

Aloitan tilanteesta jossa minulla on käytössäni Virtuaalipalvelin (Xubuntu 16.04.4) ja Läppäri (Xubuntu 16.04.3). Olen asettanut Virtuaalipalvelimen mestariksi ja orjaksi ja läppärini toimii toisena orjana.

Aloitetaan tekemällä kansio pillartesti

sudo mkdir /srv/salt/pillartesti

cd /srv/salt/pillartesti

sudoedit init.sls

initid

 

ja teemme myös pillartesti.txt tiedoston komennolla

sudoedit pillartesti.txt

45677888

Tässä vaiheessa meillä ei ole vielä pillareita joten teemme niille kansion

sudo mkdir /srv/pillar

ja teemme /srv/pillariin top.sls tiedoston käyttämällä komentoa

sudoedit top.sls

korjattutop

ja teemme kyseiset tilat nimillä testi1.sls ja testi2.sls

sudoedit testi1.sls

sudoedit testi2.sls

testi

Testataan käyttää komennolla

sudo salt ‘*’ state.apply pillartesti

varsinainentesti

Katsotaan tiedostot:

vivon

vilost

Voimme todeta että pillareita on käytetty oikein ja eri orjalla on eri sana.

c) Tee kahdella orjalla esimerkki, jossa toinen orja saa muuttujan pilarista ja toinen käyttää oletusarvoa (pillar.get). Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

Poistetaan vaikka testi1.sls hakemistosta /srv/pillar

sudo rm testi1.sls

Testataan käyttää komentoa

sudo salt ‘*’ state.apply pillartesti

tamahantoimii

Voimme todeta että nyt slaveslave orja käyttää oletusarvoa ‘omegalul’ kun taas zulolman orja saa tietonsa pillarista.

Tähän päättyy harjoitus 4.

Harjoitus 3 – ICT4TN022-4

Tehtävät ja materiaalit: http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

https://docs.saltstack.com/en/getstarted/config/jinja.html

https://docs.saltstack.com/en/getstarted/config/files.html

http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states

Tehtävän e) tila osoitteesta http://miikkavaltonen.com/

Harjoitus 3

Käytössäni on DigitalOceanilta vuokraamani virtuaalipalvelin masterina joka käyttää 16.04.4 LTS Ubuntua ja Läppäri jossa on 16.04.3

b) Tiedosto muotista: tee yksinkertainen SLS-tilatiedosto, joka laittaa muuttujan tiedostoon. Käytä jinjan kontekstimuuttujaa (template: jinja, context: …).

Aloitamme tekemällä directoryn jossa voimme testata tilaa

$ sudo mkdir /srv/salt/jinjatesti/

Jonne teemme kaksi tiedostoa

$ sudoedit init.sls

Laitamme sisään pohjan Tero Karvisen artikkelista http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states ja muokkaamme sinne omat tiedot tarvittaviin kohtiin.

{% for file in [‘testi.txt’] %}

/tmp/testaus/{{ file }}:
file.managed:
– source: salt://jinjatesti/testi.txt
– makedirs: True
– template: jinja
– context:
file: {{ file }}

{% endfor %}

Huom! WordPress saattaa kusta sisennykset

Ja teemme myös tiedoston nimeltä testi.txt komennolla

$ sudoedit testi.txt

Laitetaan vaikka sisällöksi

Tama olla  {{ file }}

Testataan tilaa komennolla

$ sudo salt ‘*’ state.apply jinjatesti

1

Tila näyttäisi toimivan ja kun käyn läppärillä katsomassa niin tiedosto on ilmestynyt sinne.

 

c) SLS tilaa Jinjalla: tee yksinkertainen SLS-tilatiedosto, joka käyttää for-in -silmukaa. Voit esimerkiksi tehdä kolme tiedostoa silmukalla. (Tässä tehtävässä siis käytetään jinjaa vain SLS-tiedoston sisällä, älä sotke samaan esimerkkiin tekstitiedostojen sisällön muuttamista.)

Muokataan edellisessä tehtävässä tehtyjä tiedostoja

$ cd /srv/salt/jinjatesti

$ sudoedit init.sls

Laitamme sisällöksi

{% for file in [‘testi.txt’, ‘zulul.txt’, ‘billy.txt’, ‘feelsgoodman.txt’, ‘ezclap.txt’] %}

/tmp/testaus/{{ file }}:
file.managed:
– source: salt://jinjatesti/testi.txt
– makedirs: True
– template: jinja
– context:
file: {{ file }}

{% endfor %}

Joka on melkein sama kuin ensimmäisessä tehtävässä, mutta tässä se tekee enemmän tiedostoja.

!Huom taas sisennykset voivat näyttää erilaisilta wordpressissä kuin ne näyttävät omalla koneellani

Muokataan myös testi.txt jotta huomaamme eroja

$ sudoedit testi.txt

2

Testaamme komennolla

$ sudo salt ‘*’ state.apply jinjatesti

32

Tila toimii odotetulla tavalla ja voin myös varmentaa läppäriltäni että tiedostot ovat tehty.

d) SSH-demonin portti: tee tila, joka asentaa SSH-demonin valittuun porttiin. Käytä portin valintaan Jinjaa, siten että sshd_config:issa “Port:”-kohdan arvo tulee Jinjan muuttujasta.

Aloitan tekemällä uuden testi directoryn

$ sudo mkdir /srv/salt/ninjaportti

Tässä vaiheessa tarvitsen sshd_config tiedoston joten kopioin sen käyttämällä komentoa

$ sudo cp /etc/ssh/sshd_config /srv/salt/ninjaportti/

Tehdään init.sls tila ja laitetaan vaihtamaan portti vaikkapa ‘777’

$ sudoedit init.sls

{% for port in [‘777’] %}

ssh:
pkg.installed

/etc/ssh/sshd_config:
file.managed:

– source: salt://ninjaportti/sshd_config
– makedirs: True
– template: jinja
– context:
port: {{ port }}

{% endfor %}

!Huom sisennykset voivat olla päin mäntyä wordpressissä

ninjaportti

Muokataan myös /srv/salt/ninjaportti/sshd_configista portin kohtaan {{ port }}

No ei kai tässä auta muu kuin testata joten käytämme komentoa

$ sudo salt ‘*’ state.apply ninjaportti

sshd

Testataan vielä menemällä läppärille laittamaan komento

$ ssh axel@uganda -p 777

Tulee connection refused =(

Yritän alkaa ratkomaan mysteeriä käynnistämällä uudelleen ssh:n

$ sudo systemctl restart ssh.service

ja varmuuden vuoksi myös

$ sudo systemctl restart sshd.service

Tämän jälkeen yritän uudelleen

$ ssh axel@uganda -p 777

leikkd

Voimme todeta että yhteys menee läpi ja portti on muutettu.

Uskon että virhe tuli sen takia, koska minulla oli SSH jo valmiiksi asennettuna ja sitä ei laitettu käynnistymään uudelleen ollenkaan init.sls tilassa.

e) Kokeile jonkun toisen opiskelijan tekemää Salt-tilaa. Kokeiltava tila voi olla mistä vain harjoituksesta. Opiskelijoiden raportteja ja koodeja löydät tämän sivun perästä kommenteista.

Aion kokeilla sysstat asennusta ja sen päivitystahdin muuttamista Miikka Valtosen johdolla.

Kyseinen tila löytyy osoitteesta http://miikkavaltonen.com

!HUOM! SUORA LAINAUS !HUOM!

“f) Asennetaan minionille sysstat, kytketään se päälle ja asetetaan sen päivitystahti minuutiksi.

Aluksi tehdään kansio /srv/salt/sysstat. Kopioidaan sinne sisään sysstatin asetustiedosto:

sudo cp /etc/default/sysstat /srv/salt/sysstat

Kopioidaan samalla ajastuksen konfigurointitiedosto, mutta laitetaan sen perään numero 2, jottei aikaisempi tiedosto ylikirjoitu:

sudo cp /etc/cron.d/sysstat /srv/salt/sysstat2

(Huomasin tässä kohtaa virheen. Sen pitäisi olla sudo cp /etc/cron.d/sysstat /srv/salt/sysstat/sysstat2) Ilmoitin virheestä Miikalle ja hän korjasi sen omaan ohjeeseensa.

!HUOM! VIELÄKIN SUORAA LAINAUSTA !HUOM! OMAT KOMMENTIT TULEVAT TEHTÄVÄN LOPPUUN – KOPIOITU OSOITTEESTA http://miikkavaltonen.com/ !HUOM!

Tehdään tiedostoihin tarvittavat muutokset, sysstatiin muutetaan seuraava:

ENABLED=”true”

Seuraavaan, sysstat2, muutetaan 5-55/10 tekstiksi */1, lopullinen rivi on siis:

*/1 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Seuraavaksi luodaan sysstat kansioon init.sls:

sysstat:

  pkg.installed

/etc/default/sysstat:

  file.managed:

    - source: salt://sysstat/sysstat

/etc/cron.d/sysstat:

  file.managed:

    - source: salt://sysstat/sysstat2
Kun asetukset on tehty, täytyy tila vielä lisätä /srv/salt/top.sls tiedostoon:

base:

  '*':

    - apache

    - hosting

    - sysstat

Sitten voidaankin lähteä ajamaan tilaa:

$ sudo salt ‘*’ state.highstate

!HUOM! SUORA LAINAUS LOPPUU TÄHÄN !HUOM!

Lainaus luvat saatu:

12.47 – Julmajamal: saanko suoraan lainata sulta tuolta jos laitan credittii
12.47 – Julmajamal: ettei tarvii kirjottaa kaikkee ite
12.47 – Miikkb ♪: tietenki
12.47 – Miikkb ♪: niinhän se ois tarkotus tehdä
12.47 – Miikkb ♪: kato vaa et sisennykset ei hajoo
12.47 – Miikkb ♪: koska yaml ja wp

zulul

Tila näyttäisi toimivan masterin puolelta. Testataan vielä komennolla sar -A minionilla toimiiko. Näyttää vielä 10 minuutin välein joten kokeilen käynnistää uudelleen komennolla

$ sudo systemctl restart sysstat.service

Josta tulee valitus että katso

$sudo systemctl status sysstat.service

9du2ZGe

Kokeilin purgea sysstatin minionilta ja käyttää uudelleen tilaa.

Virheenä oli että olin muokannut alkuperäistä sysstat asetustiedostoa ja kun laitoin sen takaisin normaaliin tilaan niin Miikka Valtosen tila toimi niin kuin sen kuuluikin.

 

H2 Palvelinten hallinta ICT4TN022-4

http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p#h1

https://docs.saltstack.com/en/latest/topics/tutorials/states_pt1.html

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html#how-do-i-use-salt-states

https://docs.saltstack.com/en/latest/topics/best_practices.html

http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port

https://github.com/saltstack/salt/wiki/Cheat-Sheet

https://mvaltonenblog.wordpress.com/2018/04/08/palvelinten-hallinta-h2/

https://ksyrjanen.me/2018/04/08/palvelinten-hallinta-harjoitus-2/

Harjoitukset ovat tehty Virtuaalipalvelimella ja läppärillä. Molemmissa on Xubuntu 16.04. Molempia hallitaan puTTylla.

b) Laita käyttäjien kotisivut toimimaan Apachella.

c) Laita PHP toimimaan käyttäjien kotisivuilla. (Huomaa, että PHP toimii oletuksena kaikkialla muualla kuin käyttäjien public_html-kotisivuilla.)

Asennetaan Läppärille minion komennolla

sudo apt-get install -y salt-minion

Asennetaan virtuaalipalvelimelle master komennolla

sudo apt-get install -y salt-master

Configuroidaan minion ja master jotta saadaan ne kytkettyä toisiinsa

Tämä aloitetaan komennolla

sudoedit /etc/salt/minion

Laitamme kyseisen tiedoston loppuun rivit

master: -ip-

id: slaaaves

Hyväksymme kyseisen avaimen masterilla komennolla

sudo salt-key -A

slaves2

Tehdään directory masterille

sudo mkdir /srv/salt/apache

Tänne tarvitsee tehdä init.sls tiedoston mutta ensin tarvitsee mennä kyseiseen kansioon komennolla

cd /srv/salt/apache

Sitten tehdään init.sls komennolla

sudoedit init.sls

2

Testataan toimiiko. Poistan vanhan apachen slavelta

sudo salt ‘*’ cmd.run ‘sudo apt-get -y purge apache2*’

Tämän jälkeen testaamme onko läppärillä apachea enää

Kirjoitamme selaimeen localhost

ja vastauksena tulee Unable to connect ja jonkinlainen sinisen marsun kuva. Voimme todeta että ei toimi.

Käytämme komentoa

sudo salt ‘*’ state.apply apache

3

4

Voimme todeta että tila meni läpi ilman virheitä.

Nyt otamme käyttöön php:n

Kusin kaiken kun yritin siirtää komennolla

sudo mv /etc/apache2/mods-available /srv/salt/apache

Tämä toi vahingossa kansion saltin apache kansioon ja kun olin niin hölmö niin laitoin vielä

sudo mv /srv/salt/apache /etc/apache2/mods-available

joten siirsin apache kansion apache2 modeihin. Päätin purgea kaiken käyttämällä komentoa

sudo apt-get purge -y apache2*

Ja sen jälkeen asensin takaisin apachen ja php:n käyttämällä komentoja

sudo apt-get install -y apache2

sudo apt-get install -y libapache2-mod-php

Tämän jälkeen päätin käyttää komentoa

sudo cp /etc/apache2/mods-available/php7.0.conf /srv/salt/apache

Voi himpskutti tämähän yliajoi apache kansioni ja teki php7.0.conf tiedoston joka on nimeltään apache

Motivaationi alkoi lipsua

Kirjoitin komennon

sudo mv /srv/salt/apache /srv/salt/php7.0.conf

Nyt minulla on php7.0.conf tiedosto /srv/saltissa ja joudun tekemään ensimmäisen kohdan init.sls ja directoryn uudelleen.

Teen nyt php tilan

sudoedit libapache2modphp.sls

5.JPG

Muokkaan nyt php7.0.conffia

laitan cd .. jotta pääsen /srv/salt

ja sitten

sudoedit php7.0.conf

Kommentoin alimmat rivit pois käyttämällä # merkkiä

Yritän käyttää tilaa komennolla

sudo salt ‘*’ state.apply libapache2modphp

Mutta heittää erroria

6

Sain korjattua errorin kun siirsin php7.0.confin apache kansioon ja libapache2modphp.sls:n suoraan /srv/salttiin

FeelsGoodMan testaamme käyttää tilaa komennolla

sudo salt ‘*’ state.apply libapache2modphp

7

Ja sehän toimii. Hurraa!

d) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

Nyt pääsemme leikkimään hosts tiedostolla. Nyt on pakko sanoa ettei ollut mitään muistikuvaa miten tämä tehdään, joten päädyin kysymään apua Miikka Valtoselta.

Aluksi teemme kansion

sudo mkdir /srv/salt/hostaus

ja laitamme sinne uuden init.sls tiedoston

initzulul

Sitten siirrämme Hosts ja 000-default.conf

sudo mv /srv/salt/apache/hosts /srv/salt/hostaus/hosts

sudo mv /srv/salt/apache/zulul-example.conf /srv/salt/hostaus/zulul-example.conf

zululllhostszulululul

Kokeilemme toimiiko tila käyttämällä komentoa

sudo salt ‘*’ state.apply hostaus

zulul

Ja sehän toimii.

e) Tee tila, joka laittaa esimerkkikotisivun uusille käyttäjille. Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‘adduser tero’ komennolla käyttäjiä luodessa.

Tehdään uusi tila

sudoedit skel.sls

superskel

Vaihdetaan top.sls

skel

Testataan komennolla

sudo salt ‘*’ state.highstate

skelslaveswork

f) Eri asetukset. Tee Package-File-Service tilalla eri asetuksia kuin ne, mitä tehtiin tunnilla; ja eri kuin mitä teit/teet h2 muissa kohdissa. Voit muuttaa jotain toista asetusta samoista demoneista tai valita kokonaan eri demonit.

Aloitetaan tekemällä kansio sysstatille

sudo mkdir /srv/salt/sysstat

Tämän jälkeen kopioidaan asetustiedosto ja konfigurointitiedosto

sudo cp /etc/default/sysstat /srv/salt/sysstat

Vaihdetaan sisälle seuraava

enabled

Sitten tehdään tännekkin tiedosto init.sls komennolla

sudoedit init.sls

systtat

Laitetaan tämäkin juttu top.sls tiedostoon

amazing

Kokeillaan komennolla

sudo salt ‘*’ state.highstate

dungeonmaster

Tila menee läpi, eli FeelsGoodMan.

 

 

 

 

Palvelinten hallinta ICT4TN022-4 – H1

H1 – Salt

Lähteet: http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p#h1

Photo by eberhard grossgasteiger from Pexels

Käytössäni on Virtual Private Server jonka tein edellisellä kurssilla ja kannettava tietokone jossa on Ubuntu.

c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

Asennan VPS:lleni salt-masterin käyttämällä komentoa

sudo apt-get install -y salt-master

Ja kannettavalle tietokoneelleni asennan salt-minionin käyttämällä komentoa

sudo apt-get install -y salt-minion

Avataan reiät tulimuuriin Virtuaalipalvelimessa, jotta master toimisi

sudo ufw allow 4505/tcp

sudo ufw allow 4506/tcp

Nyt käymme laittamassa minion koneella säädön että virtuaalipalvelimeni olisi master. Tämä onnistuu komennolla

sudoedit /etc/salt/minion

Lisäämme loppuun kaksi riviä

master: VPS ip-osoite

id: slaaaves

Kun olemme tehneet kyseiset muutokset käynnistämme minionin uudelleen käyttämällä komentoa

sudo systemctl restart salt-minion.service

Tarkistetaan masterilla löytyykö avainta komennolla

sudo salt-key

slaaves

Kuten näemme kuvasta niin kyseinen avain löytyy

Hyväksytään se komennolla

sudo salt-key -A

slaves2

Testataan vielä että avain on todella hyväksytty vaikkapa komennolla

sudo salt ‘*’ cmd.run ‘ls /’

slaves3

Voimme todeta että hallinta toimii.

d) Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.

Otetaan vaikka lamp.sls

https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

Sisältö näyttää seuraavalta:

salt4

Emme tarvitse muuta kuin ylimmät 5 riviä, joten poistamme muut rivit omasta versiostamme.

Aloitamme tekemällä kyseisen hakemiston komennolla

sudo mkdir /srv/salt

cd /srv/salt

Tämän jälkeen teemme lamp.sls tiedoston käyttämällä komentoa

sudoedit lamp.sls

salt5

Tehdään myös top.sls tiedosto

sudoedit top.sls

slaves5

Testataan komennolla

sudo salt ‘*’ state.highstate

slaves6

Voimme todeta että kyseinen komento toimii

e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

Käytetään komentoa

sudo salt ‘*’ grains.item cpu_model

slaveees

Haku toimi. Tämä komento näyttää minionin prosessorin mallin

Jos tahtoisimme enemmän tietoja käyttäisimme komentoa

sudo salt ‘*’ grains.items

Tästä komennosta tulee aivan hirveän pitkä lista, joten en laita sitä tänne.

Mutta kuten huomaamme niin haku toimi ja voimme todeta että tehtävä on tehty ainakin yhden koneen osalta.

f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

Tehdään vaikka tila, joka asentaa blenderin, jota tarvitsen kesän Blender kurssilla.

Tehdään tiedosto /srv/salt/blender.sls

blender

Laitetaan se top.sls jatkoksi

sdawdad

ja käytetään komentoa

sudo salt ‘*’ state.highstate

slaaaaaves

 

 

Lähteet:

http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

https://github.com/joonaleppalahti/CCM/tree/master/salt/srv/salt

https://docs.saltstack.com/en/getstarted/system/

https://docs.saltstack.com/en/getstarted/fundamentals/

https://docs.saltstack.com/en/getstarted/config/functions.html

 

 

 

Harjoitus 7 – 11.3.2018

Harjoitus 7 löytyy Tero Karvisen kotisivuilta: http://terokarvinen.com/2017/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op#h5

Harjoituksessa pyydetään ratkaisemaan jokin vanha laboratorioharjoitus tältä kurssilta ja valitsin omaksi tehtäväkseni: http://terokarvinen.com/2017/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-4-tiistai-alkusyksy-2017-%E2%80%93-5-op

Alustana harjoitukselle toimii luotettava kannettava tietokoneeni mallia HP 250 G5 ja juuri tekemäni livetikku.

Loin livetikun lataamalla http://ftp.lysator.liu.se/ubuntu-dvd/xubuntu/releases/16.04/release/ sivulta iso-tiedoston nimeltä xubuntu-16.04.3-desktop-amd64

Tämän jälkeen käytin Unetbootin nimistä ohjelmaa jossa valitsin kyseisen iso-tiedoston ja usb-tikun directoryn.

En tehnyt tikun asennustiedostoihin muutoksia kuten “toram noprompt

Kuitenkin aloitan tehtävän boottaamalla livetikulta valitsemalla “try xubuntu” ilman että asennan sitä.

Päästyäni käyttöjärjestelmään aloitan avaamalla terminaalin

Kirjoitan komennon setxkbmap fi jolla saan käyttööni suomalaisen keyboard layoutin.

Tämän jälkeen katselen tehtävää ja huomaan että siinä pitää tehdä käyttäjille esimerkkisivut joten päädyn menemään skele hakemistoon komennolla cd /etc/skele

h71

Teen skeleen kansion nimeltä public_html komennolla sudo mkdir public_html

Menen public_html hakemistoon komennolla cd public_html ja teen sinne tekstitiedoston käyttämällä komentoa sudoedit index.html

Nyt pitäisi jokaiselle uudelle käyttäjälle tulla valmiina public_html hakemisto jossa on tiedosto index.html

Tämän jälkeen palaan kotihakemistoon käyttämällä komentoa cd ja teen salasanat.txt tiedoston johon kirjoitan yhden rivin jotta voin muokata sen oikeuksia komennolla chmod go-rwx salasanat.txt

Tämän jälkeen käytän komentoa sudo apt-get update ja käyttäisin myös upgradea jos Tero Karvinen ei olisi sanonut että sitä ei kannata käyttää livetikulla koska muisti menee täyteen.

Tämän jälkeen tarvitsen vahvoja salasanoja käyttäjille joten lataan pwgenin komennolla sudo apt-get install -y pwgen

Okei nyt kaikki on valmiina LAMP:in asennusta varten

Aloitan asentamalla Apachen komennolla sudo apt-get install -y apache2

Tämän jälkeen asennan MySQL:n komennolla sudo apt-get install -y mysql-client mysql-server. Serverin asennuksesta tulee prompti jossa kysytään salasanaa (Pitää keksiä jokin todella hyvä).

Tämän jälkeen pitää asentaa PHP joka tapahtuu komennolla sudo apt-get install -y libapache2-mod-php7.0

PHP pitää aktivoida kuten myös käyttäjien kotisivut komennoilla:

sudo a2enmod userdir

sudoedit /etc/apache2/mods-available/php7.0.conf -> # kommentoi ifmodule kohdan

jonka jälkeen käytetään komentoa sudo systemctl restart apache2.service

Tämän jälkeen teen uuden ylläpitäjä käyttäjän nimeltä Jussi Laitavalo komennolla

sudo adduser jussi ja oikeudet sudo adduser jussi adm ja sudo adduser jussi sudo

Nyt voin siirtyä kohtaan Etätyötä kirjoittamalla komennon ssh jussi@xubuntu

Oho enpäs voikkaan! Hupsista pitää asentaa ssh komennolla sudo apt-get install -y ssh

Tässä vaiheessa minun kannattaa myös suojata kone tulimuurilla käyttämällä komentoa sudo ufw allow 22/tcp ja sudo ufw enable

h72

Nyt voin jatkaa komennolla ssh jussi@xubuntu

Hetkinen huomasin tehtävän WhoWhere joten laitan komennon exit jotta pääsen takaisin xubuntu-käyttäjälle.

Aloitan scriptin kirjoittamisen komennolla nano testi

Kirjoitan sisään

#!/bin/bash
echo Hello Ninja

hostname -I

whoami

Tallennan kyseisen tekstitiedoston ja kirjoitan terminaaliin chmod a+x testi jonka jälkeen kirjoitan sudo cp testi /usr/local/bin

h73

Voidaan todeta scriptin toimivuus kirjautumalla Jussina komennolla ssh jussi@xubuntu ja käyttämällä komentoa testi. Voi juku sehän toimii ja printtaa kyseiset tietueet terminaaliin.

Nyt puuttuu tehtävät Käyttäjät, SneakyGarden.Example.com ja NinjaTietokantaa käyttävä esimerkkiohjelma.

Aloitan tekemällä Käyttäjät:

sudo adduser nnerto (Nakke Nertola)

sudo adduser hvars (Håkan Värs)

sudo adduser emikko (Einari Mikkonen)

sudo adduser eoljy (Einari Öljysaari)

sudo adduser evaha (Eija Vähäkäähkä)

Teen pwgenillä jokaiselle käyttäjälle salasanat komennolla vaikkapa pwgen (numero) miten pitkän salasanan tahtoo

Nyt kun käyttäjät ovat luotu aloitetaan tekemään tietokantaa

Olen kirjautunut jussina ssh:n kautta ja aloitan käyttämällä komentoa mysql -u root -p

h74

Tästä tulee password prompti johon kirjoitan salasanan jonka keksin aikaisemmin asentaessani mysql-server osiota.

Aloitan komennolla

CREATE DATABASE ninjaliikkeet CHARACTER SET utf8;

USE ninjaliikkeet;

CREATE TABLE ninjamoves (liike varchar(255), vaikeus varchar(255));

INSERT INTO ninjamoves (liike, vaikeus) VALUES (‘Hyppykiertopotku’, ’27’);

INSERT INTO ninjamoves (liike, vaikeus) VALUES (‘Kuperkeikka’, ‘3’);

INSERT INTO ninjamoves (liike, vaikeus) VALUES (‘Karjaisu’, ‘1’);

h75

Voidaan tarkistaan että kyseiset tiedot ovat menneet perille käyttämällä komentoa SELECT * FROM (ninjamoves);

Ja nehän näkyvät!

Tässä vaiheessa pääni oli jo todella jumissa joten pidin ruokatauon. Jäljellä oli vielä kohdat “tee tietokantaa käyttävä esimerkkiohjelma” ja SneakyGarden.Example.com

Kaivoin esiin Tero Karvisen tekemän esimerkin osoitteesta: http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo ja aloin muokkaamaan valmiiseen pohjaan omia tietoja.

h77

 

Kun olin muokannut pohjan niin testasin menemällä selaimessa osoitteeseen localhost/~evaha ja huomasin että sivuilla näkyi nytten ninjaliikkeet ja niiden vaikeustaso.

h76

En muistanut mitään kohdasta SneakyGarden.Example.com, mutta onneksi meillä on infraopiskelijoiden keskeinen WhatsApp, joten kysyin sieltä ja Roope Varttila vastasi että hänellä on todella hyvin kyseinen aihe raportoituna blogissaan. Joten avasin https://roopelinux.wordpress.com/2018/02/13/harjoitus-4-raportti/.

Hetken silmäiltyä komentoja muistui mieleeni opetuskerta jossa Tero Karvinen opetti kyseisiä komentoja ja tehtävästä tuli helppo.

Kohdan voi aloittaa vaikka komennolla sudoedit /etc/apache2/sites-available/testi.conf

Kirjoittaa sisään:

h78

Sen jälkeen käynnistää sudo a2ensite testi.conf

ja sudo systemctl restart apache2.service

 

Nyt muokataan komennolla sudoedit /etc/hosts ja kirjoitetaan sisälle 127.0.0.1 http://SneakyGarden.Example.com ja 127.0.0.1 SneakyGarden.Example.com

h79

Voidaan testata tämä selaimella kirjoittamalla osoitekenttään http://SneakyGarden.Example.com

h711

 

Kuten kuvasta voi nähdä se toimii.

Tämä laboratorioharjoitus oli hauska tehdä ja siinä meni hetki kun yritti muistaa kaiken. Tero Karvisen materiaaleista oli todella paljon hyötyä tämän tekemisessä. En olisi varmaan saanut edes puolia pisteitä ilman katsomatta vanhoja muistiinpanoja. Uskon kyllä että tulen saamaan ihan hyväksyttävän suorituksen varsinaisessa laboratorioharjoituksessa jos se on yhtään samanlainen kuin tämä ja siinä saa käyttää internettiä apuna.

Erityiset kiitokset myös muille infraopiskelijoille jotka jakoivat mietteitään WhatsAppissa.

Lähteet:

http://terokarvinen.com/2016/mysql-install-and-one-table-database-sql-crud-tutorial-for-ubuntu

http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

https://roopelinux.wordpress.com/2018/02/13/harjoitus-4-raportti/