Palvelinten hallinta ICT4TN022-3005 Harjoitus 1

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:

Muotoilu erittäin tärkeä, väärin sisennetty tiedosto ei toimi.

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/

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: