Palvelinten hallinta ICT4TN022-3005 Harjoitus 4

Modulikimara


Tehtävän suorittaminen aloitettu 27.4.2020 klo. 12:00

Laitteen/alustan tiedot, jolla tehtävä suoritettiin:

  • Oracle VirtualBox 6.1.4
  • Xubuntu 18.04.03 LTS (+ VirtualBox guest additions)
  • 4GB RAM
  • 8GB Levytilaa (dynaaminen)

Aloitin harjoituksen suorittamisen ajamalla komennot ”sudo apt-get update”, ”sudo  ufw status” ja ”sudo salt ’*’ cmd.run ’whoami’”. Virtuaalikoneelle oli asennettu Salt master/slave -installaatio aikaisempien harjoitusten pohjalta.


b) Modulikimara.
Moduuli/tila 1. UFW

Päätin luoda palomuurille moduulin, joka varmistaa palomuurin olevan päällä ja avaa SSH-hallintaa varten portin 22. Moduulin luonti perustui Tero Karvisen tunnilla näyttämään esimerkkiin, jota en sillä hetkellä ehtinyt itse vielä testata.

Aloitin navigoimalla itseni /srv/salt/ -tiedostosijaintiin, johon moduuleita luodaan. Loin tänne uuden kansion komennolla ”sudo mkdir ufw”. Tämän jälkeen loin init.sls tiedoston tähän kansioon komennolla ”sudoedit ufw/init.sls”, jonne kirjoitin seuraavan:

Jonka jälkeen tarkistin palomuurin tilan komennolla ”sudo ufw status”, joka palautti seuraavan

Tästä selvisi, että portti 22, ei ollut valmiiksi auki esimerkiksi aikaisempien tehtävien takia. Ajoin moduulin komennolla ”sudo salt ’*’ state.apply ufw”, joka ilmoitti toiminnon onnistuneen. Ajoin moduulin vielä uudestaan varmistuakseni sen olevan idempotentti ja tällä kertaa mitään muutoksia ei tehty, eli moduuli toimii oikealla tavalla. Tämän jälkeen tarkistin vielä varmuuden vuoksi ufw:n statuksen ja portti 22 oli kuin olikin auki.


Moduuli/tila 2. Apache

Toiseksi päätin tehdä moduulin, joka luo automaattisesti käyttäjille mahdollisuuden luoda omat kotisivunsa. Tein tämän Tero Karvisen ohjeiden pohjalta.

Aloitin luomalla kansion komennolla ”sudo mkdir apache” ja tämän kansion sisälle loin komennolla ”sudoedit apache/init.sls” moduulin määritystiedoston. Tämän tiedoston sisälle kopioin seuraavan sisällön Tero Karvisen ohjeesta:

Ja tein vielä samaan kansioon default-index.html -tiedoston komennolla ”sudoedit apache/default-index.html”, jonka sisälle kirjoitin yksinkertaisesti tekstin ”This is the default-index.html page!”. Tämän jälkeen ajoin vain luoman moduulin komennolla ”sudo salt ’*’ state.apply apache”, joka ilmoitti toiminnon onnistuneen ja selatessa localhost-osoitetta selaimessa sainkin kirjoittamani tekstin näkyviin.

Tämän jälkeen navigoin itseni vielä käyttäjän tommy, hakemistoon ja testasin käyttäjän kotisivujen luomista komennoilla ”mkdir public_html” ja tämän kansion sisälle loin index.html tiedoston komennolla ”nano public_html/index.html”. Kirjoitin tämän tiedoston sisälle ”Kayttajan Tommy kotisivut!” ja ajoin moduulin vielä kertaalleen uudestaan jolloin sain kotisivut näkyviin!


Moduuli/tila 3. Krita

Halusin tehdä moduulin joka muuttaisi Kritan asetuksia automaattisesti tiettyihin asetuksiin. Valitsin asetukseksi taustavärin sovelluksessa, jota muutin ensin manuaalisesti sovelluksen käyttöliittymästä ja tämän jälkeen etsin tiedostosijaintia find-komennolla. Löydettyäni sijainnin etsin asetustiedostosta taustavärin kohtaa komennolla ”cat kritarc|grep Background”, joka palautti seuraavan:

En kuitenkaan onnistunut tekemään tiedostoon muutoksia ja testaaman manuaalisesti värin vaihtamista, sillä yrittäessäni sudoeditillä muokata tiedostoa sain vastaukseksi vain ”sudoedit: kritarc: editing files in a writable directory is not permitted”. En saanut selvitettyä mahdollista syytä tälle ongelmalle, joten jätin moduulin luonnin tähän.


Moduuli/tila 4. Verkkotyökaluja

Loin seuraavaksi tilan Saltstackin verkkosivujen ohjeesta. Tein uuden kansion komennolla ”sudo mkdir nettools” ja tein tämän kansion sisälle sls-tiedoston komennolla ”sudoedit nettools/init.sls” johon kirjoitin seuraavan.

Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply nettools” ja tilan ajaminen onnistui onnistuneesti. Ajoin tilan vielä uudestaan varmistuakseni sen toimivuudesta ja ettei se yrittäisi asentaa tiedostossa olevia paketteja jostain syystä uudestaan. Mitään muutoksia ei tapahtunut, joten tiedosto toimi onnistuneesti. Testasin vielä asennettujen pakettien toimimista komennolla ”sudo salt ’*’ cmd.run ’curl localhost’” ja sainkin vastaukseksi seuraavan

Josta voin päätellä tilan asentaneen paketit onnistuneesti.


Moduuli/tila 5. SSH

Tein seuraavaksi tilan, joka muutti SSH:n porttia Tero Karvisen ohjeen mukaan. Aloitin luomalla SSH tilan komennolla ”sudoedit sshd.sls” jonka sisään liitin ohjeesta seuraavan koodin:

Tämän jälkeen loin toisen tiedoston, jossa varsinaiset konfiguraatiot sijaitsevat komennolla ”sudoedit sshd_config”, johon liitin ohjeesta seuraavan tekstin:

Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply sshd”, joka suoritti komennon onnistuneesti. Testasin uuden portin toimivuutta ensin yrittämällä ottaa yhteyden normaaliin 22 porttiin. Tämä vastasi ”Connection refused”. Testasin seuraavaksi yhteyttä porttiin 8888 komennolla ”ssh -p 8888 tommy@10.0.2.15” ja tämä päästikin minut sisään, eli tila toimi.


Moduuli/tila 6. Dokumentti

Jäin tässä kohtaa jumiin tehtäväannossa, sillä en keksinyt mitään moduulia tai tilaa, jota vielä suorittaa aikaisempien lisäksi. Päätinkin siis vain tehdä simppelin tekstitiedoston, jotta saisin kuudennen moduulin edes tehtyä.

Tein uuden .sls-tiedoston komennolla ”sudoedit teksti.sls”, johon kirjoitin seuraavan:

Tämän jälkeen tein vielä uuden tekstitiedoston komennolla ”sudo tekstitiedosto.txt”, johon lisäsin satunnaisen tekstin. Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply teksti”. Tarkistin, että tiedosto oli varmasti kopioitunut tmp-kansioon ja otin muodon vuoksi vielä ssh-yhteyden minioniin. Tiedosto oli paikallaan, joten voidaan päätellä tilan toimineen.

Tehtävä suoritettu 27.4.2020 klo: 16:45


Lähteet

Karvinen, Tero 2020: Configuration Managment Systems – Palvelinten Hallinta – Spring 2020, h4. http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/, Luettu 27.4.2020

Karvinen, Tero 2018: Apache User Homepages Automatically – Salt Package-File-Service Example. http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example, Luettu 27.4.2020

Karvinen, Tero 2018: Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port. http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port, Luettu 27.4.2020

SALTSTACK: Create a Salt State. https://docs.saltstack.com/en/getstarted/fundamentals/states.html, Luettu 27.4.2020

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: