Salt & Idempotenssi
Tehtävän suorittaminen aloitettu 5.4.2020 klo. 22:00
Laitteen/alustan tiedot, jolla tehtävä suoritettiin:
- Oracle VirtualBox 6.1.4
- Xubuntu 18.04.03 LTS (+ VirtualBox guest additions)
- 512MB RAM
- 8GB Levytilaa (dynaaminen)
a) Asenna Salt ja siihen uusi orja. Voit tehdä ne esimerkiksi uudelle virtuaalikoneelle, niin pääset kokeilemaan puhtaalta pöydältä.
Aloitin ajamalla peruskomennot ”sudo apt-get update
” ja ”sudo ufw enable
”. Tämän jälkeen tein vielä palomuuriin reiät Salttia varten komennoilla ”sudo ufw allow 4505/tcp
” ja ”sudo ufw allow 4506/tcp
”.
Tämän jälkeen aloitin varsinaisesti itse salt masterin asentamisen virtuaalikoneelle. Asensin virtuaalikoneelle molemmat salt-masterin ja salt-minionin komennoilla ”sudo apt-get -y install salt-master
” ja ”sudo apt-get -y install salt-minion
”. Tämän jälkeen selvitin koneen IP-osoitteen komennolla ”hostname -I
”, jotta voin editoida salt-minionin konfiguraatiotiedostoa sisältämään masterin IP:n. Tämän jälkeen editoin salt-minionin konfiguraatioita komennolla ”sudoedit /etc/salt/minion
”. Poistin kommentoinnin ”master:” ja ”id:” kohdista ja lisäsin master kohtaan aikaisemmasta hostname-komennosta saamani IP-osoitteen ja id kohtaan laitoin salt-minionin nimeksi luovasti ”tommyminion”.

Tämän jälkeen käynnistin salt-minionin vielä uudestaan komennolla ”sudo systemctl restart salt-minion.service
”, jolloin tekemäni muutokset tulivat voimaan. Komennolla ”sudo salt-key -A
” sainkin hyväksyttyä luomani minionin

Testasin vielä minionin ja masterin välisen yhteyden toimivuutta ajamalla komennon ”sudo salt ’*’ cmd.run ’whoami’
”, joka palauttikin vastauksena minionin nimen ja (oletettavasti) oikeudet.

b) Tee saltille idempotenssi hei maailma (siis tiedostosta, foo.sls)
Aloitin luomalla uuden kansion komennolla ”sudo mkdir -p /srv/salt/
”, jonne loin foo.sls -tiedoston komennolla ”sudoedit /srv/salt/foo.sls
”. Tiedoston sisällön kopioin Tero Karvisen ohjeesta (http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this), jonka jälkeen tiedoston sisältö oli seuraava:

Tämän jälkeen tein vielä tekstitiedoston, jonka sisällä ”Hei maailma” teksti oli. Tämä tapahtui komennolla ”sudoedit /srv/salt/footommy.txt
”. Tehtyäni nämä toimet levitin vielä tämän tekstitiedoston kaikille minioneilleni (eli tässä tilanteessa vain tommyminion) komennolla ”sudo salt ’*’ state.apply foo
”, joka ilmoitti komennon onnistuneen.

Loin tämän jälkeen vielä top.sls -tiedoston komennolla ”sudoedit /srv/salt/top.sls
”, jonka sisältö oli myös Tero Karvisen ohjeesta. Sisältö näytti seuraavalta:

Tiedoston ideana on automaattisesti määrittää, mitä paketteja minioneilla pitää olla asennettuna. Levitinkin tämän tiedoston heti komennolla ”sudo salt ’*’ state.highstate
”, jolloin sain viestin komennon onnistumisesta.

d) Kerää tietoa koneesta saltin avulla (grains.items)
Keräsin tietoa komennoilla ”sudo salt ’*’ grains.items
” ja ”sudo salt ’*’ grains.items|less
”, joita tarkastelemalla selviää tietoja salt-minionista. Näitä tietoja olivat esimerkiksi koneen prosessorin tiedot, käyttöjärjestelmän versio ja IP-osoitteet.
e) Kokeile jotain toista tilaa kuin file.managed. Tärkeitä ovat pkg.installed, file.managed, service.running, file.symlink, user.present, group.present. Ohjeita saa esim ‘sudo salt kissa sys.state_doc pkg.installed|less’
Päätin testata pkg.installed -tilaa komennolla ”sudo salt tommyminion pkg.install httpie
”. Olin aluksi hieman yllättynyt sillä komento, joko ei koskaan tullut valmiiksi ja jouduin tappamaan sen painamalla ctrl + c, tai se antoi seuraavan vastauksen:

Tämän takia luinkin tilan ohjeita komennolla ”sudo salt tommyminion sys.state_doc pkg.installed|less
”. En kuitenkaan löytänyt ohjeista mitään merkkiä mahdollisesta kirjoitusvirheestä yms. komentoa ajaessani. Päätinkin testata komennon ajamista uudelleen n. 15 minuuttia ensimmäisestä yrityksestä, jolloin komento menikin yhtäkkiä läpi ja sain seuraavan vastauksen:

Mietin mistä tällainen oikkuilu olisi voinut johtua ja päädyin siihen lopputulokseen, että RAM-muistin vähäinen määrä (512MB) voisi aiheuttaa ongelmia järjestelmälle. Huomasin nimittäin yrittäessäni avata selainta virtuaalikoneella sen olevan melkeinpä käyttökelvottoman hidas. Tarkistinkin muistin käytön komennolla ”free -m
”, josta selvisikin muistia olevan saatavilla erittäin niukasti virtuaalikoneen perustilassa salt-master ja -minion asennettuna.

Pitääkin siis tulevaisuudessa allokoida enemmän muistia virtuaalikoneelle, jotta ongelma ei toistuisi.
Tehtävä suoritettu 6.4.2020 klo. 1:50
Muokkaukset:
8.4.2020, Korjattu top.sls -tiedoston toiminnan väärä selitys ja tekstin muotoilu (mb -> MB, gb -> GB)
Lähteet
Karvinen, Tero 2020: Configuration Managment Systems – Palvelinten Hallinta – Spring 2020, h1. http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/, Luettu 6.4.2020
Karvinen, Tero 2018: Salt Quickstart – Salt Stack Master and Slave on Ubuntu Linux. http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux, Luettu 6.4.2020
Karvinen, Tero 2018: Salt States – I Want My Computers Like This. http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this, Luettu 6.4.2020
Karvinen, Tero 2020: Remote Learning Tools for Tero’s Courses. http://terokarvinen.com/2020/remote-learning-tools-for-my-courses/, Luettu 6.4.2020
Oracle VirtualBox: https://www.virtualbox.org/