Palvelinten hallinta ICT4TN022-3005 Harjoitus 5

Muotteja & Moduleja


Tehtävän suorittaminen aloitettu 30.4.2020 klo. 13:00

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

  • Oracle VirtualBox 6.1.6
  • 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, sekä tehty muita muutoksia aikaisempien harjoitusten ja tuntitehtävien perusteella.


a) Hello templates! Tee muotilla esimerkkitiedosto, jossa on muuttujien (esim grains) arvoja.

Päätin tehdä muoteilla mukautetun motd-viestin yhdistäessä minionille ssh:n avulla. Aloitin luomalla varsinaisen motd-tiedoston /srv/salt/ -hakemistoon komennolla ”sudoedit /srv/salt/motd”, johon kirjoitin seuraavan:

Tämän jälkeen loin lisäsin aikaisemmin porttimäärittelyä varten tehtyyn sshd.sls tiedostoon seuraavan kohdan:

Tässä määrittelin motd-tiedoston löytyvän etc-hakemistosta, mikäli sitä ei ole (tässä tilanteessa ei vielä ole, koska oletuksena tiedosto pitää luoda manuaalisesti). ”Master” -tiedoston sijainnin polku on määritelty /srv/salt/ -sijaintiin (salt://motd) ja templaten formaattina käytetään jinjaa. Muutin myös aikaisemmassa tehtävässä luodusta sshd_config tiedostosta kohdan ”PrintMotd” no -> yes, mutta tämä sai aikaan luomani motd viestin printtautumisen kaksi kertaa (ajoin tässä välissä moneen otteeseen komentoa ”sudo salt ’*’ state.apply sshd”, muutosten tarkistelemiseksi). Laitoinkin tämän valinnan takaisin no-tilaan ja sain motd viestissäni näkymään käyttöjärjestelmän grainssin avulla.

Olin tässä kohtaa jo muutellut ja poistanut motd:sta kaiken ylimääräisen, mutta palaan tähän tarkemmin vasta kohdassa x.


b) Message of the Day. Sisäänkirjautuessa näytetään päivän viesti. Lisää päivän viestiin tietoa ympäristöstä käyttäen muotteja. Sopiva tiedosto on /etc/motd.

Olin aikaisemmassa kohdassa jo vahingossa tehnyt myös tämän kohdan. Päätinkin lisätä vielä lisää erilaisia muuttujia aikaisempaan motd-templateen. Päätin muuttaa motd-tiedostoa seuraavanlaiseksi:

Tämän jälkeen ajoin tilan vielä komennolla ”sudo salt ’*’ state.apply sshd”, joka ilmoitti muutosten onnistuneen. Kirjauduin ssh:n kautta minionille komennolla ”ssh -p 8888 tommy@10.0.2.15” ja uusi motd näkyikin oikein.


c) Bash. Tee bashiin asetuksia Saltilla. Ensin käsin, vasta toimivaa automatisoidaan. Muista testata lopputulos käyttäjän näkökulmasta.

Päätin vaihtaa shell promptin väriä ja muotoilua. Bash:in asetukset sijaitsivat ”.bashrc” tiedostossa, jota pääsin muokkaamaan komennolla ”nano /home/tommy/.bashrc”. Lisäsin tänne rivin Vivek Giten ohjeesta ja se vaihtoikin promptin väriä ja muotoilua.

Poistin aluksi lisäämäni rivin .bashrc-tiedostosta ja käynnistin terminaalin uudestaan, jolloin terminaalin promptin värit vaihtuivat takaisin oletuksiin. Loin uuden kansion komennolla ”sudo mkdir /srv/salt/bash”. Tein tämän kansion sisälle .sls -tiedoston komennolla ”sudoedit init.sls” johon kirjoitin seuraavan:

(Kuvissa värit ovat vaihdetut, sillä kuvat otettu tilan onnistuneen testaamisen jälkeen)

Tein myös toisen tiedoston kansioon komennolla ”sudoedit vari”, jonka sisälle liitin Vivek Giten aikaisemmin testatun värinvaihto-koodipätkän. Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply bash”, joka ilmoitti ajamisen onnistuneen. Käynnistin terminaalin uudestaan ja värit olivatkin vaihtuneet onnistuneesti.


d) Nginx. Tee nginx-weppipalvelimeen asetuksia Saltilla. Voit esimerkiksi tehdä uuden site:n, niin että etusivu vaihtuu. Kun nginx on todennäköisesti sinulle uusi palvelin, tässä tehtävässä on siis ensin laaja osuus valita sopiva asetus nginx:lle ja saada se toimimaan käsin. Vasta toimivaa, käsin kokeiltua kannattaa automatisoida. Muista lopputuloksen testaus käyttäjän näkökulmasta.

Virtuaalikoneella oli asennettuna valmiiksi aikaisempien tehtävien takia Apache2-webpalvelin, joten poistin sen ja kaikki sille tehdyt salt-tilat/moduulit ennen Nginx:n asentamista. Tyhjensin myös selaimen välimuistin, jolloin aikaisempaa sivua ei enää näkynyt. Jouduin myös poistamaan index.html tiedoston /var/www/html/ -hakemistosta, jolloin sain Nginx:n default sivun näkyviin selaimessa.

Aloitin asentamalla Nginx:n manuaalisesti komennolla ”sudo apt-get install nginx”. Tutkin tämän jälkeen demonin asetuksia /etc/-hakemistossa ja huomasin sen olevan hyvin samantyyppinen apachen kanssa. Testasin muuttaa oletussivun sisältöä komennolla ”echo ”tama on manuaalisen maarittelyn testi”|sudo tee /var/www/html/index.nginx-debian.html”. Käynnistin demonin uudestaan komennolla ”sudo systemctl restart nginx.service” ja sainkin haluamani sisällön näkyviin localhost-osoitteessa.

Tein uuden kansio /srv/salt/ -sijaintiin komennolla ”sudo mkdir nginx”, jonka sisälle loin .sls -tiedoston komennolla ”sudoedit init.sls”. Tiedoston sisälle kirjoitin seuraavan:

Tämän jälkeen loin myös samaan nginx-kansioon html-sivun komennolla ”sudoedit default-index.html”, johon kirjoitin satunnaisen lauseen. Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply nginx”, joka suoritettiin onnistuneesti. Selaimella localhost-osoitteessa näkyy myös sisällön muuttuneen manuaalisesti määritellystä uuteen html-sisältöön.

Voidaan siis päätellä tilan toimineen oikein.


x) Vapaaehtoinen: poista kaikki ylimääräinen motd:sta niin, että vain oma viestisi näkyy.

Poistin kaiken ylimääräisen motd:sta muokkaamalla sshd-määritystiedostoa komennolla ”sudoedit /etc/pam.d/sshd” ja kommentoimalla ulos rivin, jossa määritellään dynaamisesti luotu motd.

Jolloin vain itse luotu motd-tiedosto näkyy kirjautuessa ssh-yhteydellä.

Tunnilla selvisi kuitenkin, että pam.d -hakemistossa (Pluggable authentication modules) olevien tiedostojen muokkaamien voi olla väärin tehtynä riskialtista, joten parempi tapa ylimääräisen tiedon poistamiseen olisi ollut skriptien poistaminen/muuttaminen /etc/update-motd.d/ -hakemistosta.

Harjoitus suoritettu 30.4.2020 klo. 16:46


Lähteet

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

Lähdesmäki, Miko 2018: 3. Viikkotehtävä (Palvelinten hallinta). https://lahdemi.wordpress.com/2018/04/15/3-viikkotehtava/, Luettu 29.4.2020

Kunnari, Irene 2019: Packet-File-Service with Salt – homework 2. https://irenekunnari.wordpress.com/2019/04/09/packet-file-service-with-salt/, Luettu 29.4.2020

askubuntu.com: How do I disable the Message of the Day (MOTD) on Ubuntu 14.04?, Luettu 29.4.2020

SaltStack: SLS TEMPLATE VARIABLE REFERENCE. https://docs.saltstack.com/en/latest/ref/states/vars.html, Luetu 29.4.2020

Gite, Vivek: BASH Shell Change The Color of Shell Prompt on Linux or UNIX. https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/, Luettu 30.4.2020

3 thoughts on “Palvelinten hallinta ICT4TN022-3005 Harjoitus 5

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: