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:
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”