Uusi komento

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.

Tehtävänanto

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

heimaailma

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.

heimaailma2

ls-labusrbinlocal

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.

deleet

Seuraavaksi ajoin sudo salt-call --local state.apply heimaailma komennon.

saltajo

workingagain

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"

uusiscripti

Seuraavaksi kopioin muokatun scriptin /srv/salt/heimaailma kansion sisään ja ajoin sudo salt-call --local state.apply heimaailma komennon uudestaan.

uusisalt

uusiheimaailma

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

helloworks

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

pythonsalt

pythonuser

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/binsisä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

kansiosalt

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

komennon lopputulos

piholeWebconsole

Tila ajettiin onnistuneesti, sekä piholen adminpaneeli on näkyvillä selaimen kautta.

Linkkejä