Palvelinten hallinta – h4

H4

http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine

http://terokarvinen.com/2018/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p#h4

Tehtävänä on tehdä kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummallekin orjalle mene eri tieto.

Harjoitus tehdään omalla koululäppärillä, jossa Xubuntu 16.04.4, vagrantia hyväksikäyttäen. Orjat siis tehdään vagrantin kautta virtuaalisesti. Ohjeet vagrantin käyttöönottoon löytyy Tero Karvisen sivulta http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine.

Tehdään tehtävä niin, että tmp kansioon ilmestyy molemmalle orjalle tiedosto, mutta tiedoston sisältö on orjilla eri. c) kohta vaatii, että tilaan lisätään oletusarvo, mikäli jollekkin orjalle ei anneta omaa arvoa pilarin kautta. Tehdään kohta c) samalla, kuin b).

Aloitetaan tekemällä kansiot ja tarvittavat tiedostot:

$ sudo mkdir /srv/salt/pillartest

$ sudo nano /srv/salt/pillartest/init.sls

/tmp/pillartest.txt:
  file.managed:
    - source: salt://pillartest/pillartest.txt
    - template: jinja
    - context:
      sana: {{ pillar.get(’sana’, lintu) }}

Lintu täyttää siis oletusarvon virkaa, mutta tässä vaiheessa kaikille orjille annetaan arvo pilarin kautta, joten sitä ei pitäisi näkyä missään.

Ennen pillarien tekemistä, tehdään pillartest.txt:

$ sudo nano /srv/salt/pillartest/pillartest.txt

Sup! This file is called pillartest. Here's a test word:

sana: {{ sana }}

Tehdään seuraavaksi pillar kansio, ja sinne top.sls tiedosto:

$ sudo mkdir /srv/pillar

$ sudo nano /srv/pillar/top.sls

base:
  vagrant1
    - vagrant1
  vagrant2
    - vagrant2

Tehdään molemmille .sls tiedostot:

$ sudo nano vagrant1.sls

sana: kissa

$ sudo nano vagrant2.sls

sana: koira

Kun tiedostot ja kansiot on tehty, voimme kokeilla toimintaa komennolla:

$ sudo salt ’*’ state.apply pillartest

Ruutu täyttyy vihreästä ja sinisestä tekstistä, joten kaikki on oletettavasti mennyt nappiin. Tarkistetaan tilanne orjakoneilta:

Pillareita on siis hyödynnetty oikein, orjille on mennyt eri sana.

Tässä vaiheessa kohta b) on täytetty, c) kohdan voimme luultavasti tehdä niinkin helposti, kuin että poistamme vagrant2.sls tiedoston. Silloin orjan pitäisi käyttää oletusarvoa, joka on lintu.

Poistettuani tiedoston yritin ajaa tilan uudestaan, ja kakkosorja heittää virheviestiä, joka on seuraava:

Rendering SLS ’base:pillartest’ failed: Jinja variable ’lintu’ is undefined

Koska ainoastaan kakkosorja heittää virhettä, se luultavasti johtuu siitä, että oletusarvoa ei jostain syystä lueta oikein. Luonnollisesti tiedostoissa ei ole tapahtunut mitään muutosta.

Konsultoin Jaakko Veijosta, http://veijonen.com, joka huomautti init.sls tiedostoni sisällöstä: oletusarvo lintu tulisi myös laittaa hipsuihin, eli ’lintu’. Jätin alunperin hipsut laittamatta, koska seurasin viimetunnilla käytyjä esimerkkejä, joissa ssh:n porttia vaihdettaessa oletusarvo 22 kirjoitettiin ilman hipsuja. Arvelen, että hipsuja ei tarvita mikäli oletusarvo on numero, sen ollessa string, hipsut tarvitaan.

Korjattu init.sls näyttää siis tältä:

/tmp/pillartest.txt:
  file.managed:
    - source: salt://pillartest/pillartest.txt
    - template: jinja
    - context:
      sana: {{ pillar.get(’sana’, ’lintu’) }}

Korjattuna tila menee läpi, ja näyttää seuraavalta:

Tehtävä c) on siis suoritettu.

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.