Uusi komento - Palvelinten hallinta viikkotehtävä 4
TLDR
Tässä tehtävässä loin uusia komentoja järjestelmään, loin saltiin kansion, jonka sisällä olevat komennot kopioituvat tilaa ajettaessa kaikkien käyttäjien käytettäväksi sekä analysoin ja testasin edellisen kurssin loppuprojekteja.
Hei komento! - Tehtävä A
Ensimmäisenä tehtävänäni oli luoda uusi hei maailma komento ja asentaa se orjien käytettäväksi saltilla. Loin siis heimaailma
nimisen tiedoston jonka
sisältö oli seuraava:
#!/bin/bash
echo Hello world
Muutin tiedoston kaikkien suoritettavaksi chmod u+x heimaailma
komennolla. Testasin toimivuuden ajamalla sen ./heimaailma
komennolla
Seuraavaksi kopioin scriptin /usr/local/bin
kansioon, jotta kaikki käyttäjät järjestelmässä pystyvät ajamaan sitä. Vaihdoin myös käyttäjää ja testasin toisella käyttäjällä
toimiiko tämä komento.
Suolaa maailmalle
Kopioin heimaailma scriptin /srv/salt/heimaailma/
kansion sisään. Tähän samaan kansioon loin init.sls
tiedoston salt tilaa varten.
#/srv/salt/heimaailma/init.sls sisältö
/usr/local/bin/heimaailma:
file.managed:
- source: salt://heimaailma/heimaailma
- mode: 755
Näin saltille kerrotaan, että mihin saltin halutaan kopioivan tiedosto, kun komento ajetaan. Source
kohdassa määritellään, mistä salt etsii kopioitavaa tiedostoa
ja file_mode
kohdassa määritellään tiedoston käyttöoikeudet.
Ennen testiajoa paikallisesti poistin /usr/local/bin
kansiosta heimaailma
tiedoston.
Seuraavaksi ajoin sudo salt-call --local state.apply heimaailma
komennon.
Komento siirtyi onnistuneesti paikoilleen /usr/local/bin
hakemistoon ja käyttöoikeudet sallivat kaikkien ajaa komentoa.
Whatsup.sh - Tehtävä B
Tässä tehtävässä tuli luoda komento, joka kertoo jotain hyödyllistä tietoa käyttäjälle ja asentaa se orjille. Pääitn jatkaa ensimmäistä heimaailma komentoa ja lisätä komennon kertomaan kuluvan päivän.
#!/bin/bash
echo Hello world
echo Tämän päivän päivämäärä sekä tämänhetkinen aika
date +"%d/%m/%Y %H:%M"
Seuraavaksi kopioin muokatun scriptin /srv/salt/heimaailma
kansion sisään ja ajoin sudo salt-call --local state.apply heimaailma
komennon uudestaan.
Näin onnistuneesti teimme komennon, joka näyttää tämän hetkisen päivän, sekä kellonajan järjestelmästä ja siirsimme sen saltin avulla orjille.
Hello.py - Tehtävä C
Tässä tehtävässä tuli tehdä samanlainen hei maailma komento kuin ensimmäisessäkin, mutta tällä kertaa käyttää pythonia bashin sijaan.
Loin hello
tiedoston ja sen sisään laitoin seuraavat rivit:
#!/usr/bin/python3
print("Hello there")
Muutin hello
tiedoston ajettavaksi chmod ugo+x hello
komennolla. Testasin toimivuuden ./hello
Kopioin tiedoston /srv/salt/heimaailma/
kansion sisään ja tein init.sls
tiedostoon seuraavat muutokset
#/srv/salt/heimaailma/init.sls sisältö
/usr/local/bin/heimaailma:
file.managed:
- source: salt://heimaailma/heimaailma
- mode: 755
/usr/local/bin/hello:
file.managed:
- source: salt://heimaailma/hello
- mode: 755
Ajoin sudo salt-call --local state.apply heimaailma
komennon ja tulos oli onnistunut
Laiskaa scriptailua - Tehtävä D
Nyt salt tila pystyy lisäämään uusia komentoja kaikille käyttäjille orjakoneissa. Mutta joka kerta, kun uuden komennon lisää jaettavaksi, täytyy käydä muuttamassa
init.sls
tiedoston sisältöä. Tässä tehtävässä luomme kansion /srv/salt/heimaailma/scriptit
sisään, jotta kaikki komennot voidaan jakaa kerralla kaikille käyttäjille.
$ sudo mkdir /srv/salt/heimaailma/scriptit
$ cd /srv/salt/heimaailma
$ sudo mv hello heimaailma scriptit/
Näin siirsimme olemassa olevat scriptit uuden kansion sisään. Seuraavaksi täytyi muokata init.sls
tiedostoa.
#/srv/salt/heimaailma/init.sls sisältö
/usr/local/bin:
- file.recurse:
- source: salt://heimaailma/scriptit
- file_mode: 755
Poistin /usr/local/bin
sisältä aikaisemmin luomani komennot tätä tehtävää varten. Ajoin tämän jälkeen sudo salt-call --local state.apply heimaailma
komennon ja tulos oli seuraava
Komento ajettiin onnistuneesti. Näin saatiin salt tilaan luotua kansio, jonka sisään voi laittaa uusia suoritettavia komentoja, jotka salt tilan ajettaessa siirtyvät
/usr/local/bin
hakemistoon, josta kaikki käyttäjät voivat ajaa komentoja järjestelmäassä.
Intel - Tehtävä E
Intel tehtävässä tuli etsiä kolme loppuprojektia joltain vanhalta kurssitoteutukselta, sekä analysoida niitä tarkasti.
PyChess
Ensimmäiseksi moduliksi valitsin Caius Juvosen modulin. Tässä modulissa on automatisoitu PyChessin asennus, sekä asetusten muokkaus mieleiseksi.
Raportissa oli loistavasti kuvailtu vaihe vaiheelta, kuinka moduli oli toteutettu. Asennus, sekä asetusten muuttaminen oli ensin toteutettu käsin ja sitten vasta viety
automatisoitavaksi. Raportissa käytettiin myös find
komentoa esimerkillisesti, jotta PyChessin asetustiedostot löytyivät. Tämä mahdollisti asetusten muokkaamisen
saltin kautta. Tehtävässä myös kopioitiin valmis PyChess configuraatio /etc/skel
kansioon, jotta asetukset tulevat voimaan uusia käyttäjiä luodessa järjestelmässä.
Minecraft palvelin
Toisena vuorossa oli Joona Karvosen rakentama salt moduli, joka automatisoi minecraft palvelimen asennuksen, sekä käyttöönoton.
Palvelimen toimimaan saaminen vaikutti olevan todella moniosainen, sekä konfigurointia vaativa toimenpide. Kuitenkin raportissa oli kuvailtu jokainen kohta
hyvin selkeästi, jotta lukija pysyy mukana. Itseä jäi vain mietityttämään nmap
sovelluksen asennus, sillä sitä ei käytetty kertaakaan raportissa.
Pihole
Viimeisenä vuorossa oli Joni Hakalan lopputyö. Raportissa asennettiin usealle eri käyttöjärjestelmälle eri ohjelmia.
Silmään pisti Pihole joka on itselläkin käytössä kotiverkossa. Raportissa on käytetty useita eri tiloja, ja kaikki ajetaan samanaikaisesti
top.sls
tiedoston avulla. Suoritettu lopputehtävä on selvästi ollut hyvin laaja, mutta olisin itse toivonut hieman tarkempaa kuvausta erinäisten asetustiedostojen
sisällöistä. Onneksi tämän lopputyön koodit ovat saatavilla Jonin githubista.
Lukua, ei luottamusta - Tehtävä E
Tämän tehtävän tarkoituksena oli kokeilla jotain vanhan lopputyön modulia itse. päädyin kokeilemaan Joni Hakalan Pihole asennus tilaa. Loin tehtävää varten uuden virtuaalikoneen, jotta pääseen kokeilemaan aivan tyhjältä pöydältä, kuinka tämä toimii.
Aloitin kloonaamalla github repositorion uuteen virtuaalikoneeseen ja kopioimalla pihole kansion /srv/salt/
kansioon.
$ sudo salt '*' state.apply pihole
Tila ajettiin onnistuneesti, sekä piholen adminpaneeli on näkyvillä selaimen kautta.