Palvelinten hallinta läksyt 1

Tunnilla meni ehkä pari asiaa hieman ohi, mutta näitä läksyjä tehdessäni tein hieman lisää tutkimista siitä mitä ne .sls filet edes ovat ja miten top.sls toimii, ja esimerkiksi teron sivu täällä auttoi: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this .

a) Asenna salt ja siihen uusi orja. Tämä tapahtuu simppelisti näillä komennoilla:

sudo apt-get update
sudo apt-get -y install salt-master
hostname -I
10.0.2.15

Nyt meillä on mestari asennettuna. Tämän jälkeen asennamme salt slaven toiselle tai samalle laitteelle:

sudo apt-get update
sudo apt-get -y install salt-minion

Tämän jälkeen orjalle tulee kuitenkin kertoa, missä masteri on, tai muuten se ei saa siihen yhteyttä, eikä homma tietenkään toimi. Muokataan orjan asetuksia:

sudoedit /etc/salt/minion

Sieltä meidän pitää etsiä kohta “master” ja kirjoittaa siihen mestarikoneen IP-osoite, joka saadaan nyt esimerkiksi komennolla hostname -I. Voimme myös antaa orjalle oman ID:nsä, tässä olen antanut sen ID:ksi/nimeksi papunorja (ei pakollista).

Restartataan minioni:

sudo systemctl restart salt-minion.service

Nyt sen pitäisi yhdistää mestariin, mutta mestarin pitää silti hyväksyä orja osaksi tätä systeemiä. Tehdään tämä näin:

sudo salt-key -A
Unaccepted Keys:
papunorja
Proceed? [n/Y]
Key for minion papunorja accepted.

Nyt voimme antaa erilaisia komentoja orjalle, kuten vaikka ‘pwd’. Terminal komentoja pystyy antamaan vaikka näin:

sudo salt '*' cmd.run 'pwd'

PS: asensin orjan ja mestarin samalle koneelle tässä harjoituksessa.

b) No nyt pääsi unohtumaan mikä se idempotenssi on, mutta oletan että pitää ensimmäinen state tehdä. Aloitetaan sillä että mennään /srv/salt/ ja tehdään sinne top.sls tiedosto., ja sitten vaikka foo.sls. Nyt tänne foo.sls lisätään vaikka joku simppeli hello world tyyppinen hommeli. Mutta ennen sitä teemme tiedoston foo.sls /srv/salt/ sisälle ja kirjoitamme sinne näin:

/tmp/foomoi.txt:
  file.managed:
    - source: salt://foomoi.txt

file.managed varmistaa että jos foomoi.txt tapahtuu muutoksia, tulevat ne muutokset tapahtumaan myös jokaisessa orjassa. Foomoi on siis vaan tiedoston nimi. Tämän tiedoston sisältö (foomoi.txt) on vain

Hello world!

Tallennetaan sekin. Nyt teemme

sudo salt '*' state.apply foo

Tämä lisää tämän staten kaikkiin orjiin. Lopuksi, lisäämme tämän top.sls tiedostoon:

sudoedit /srv/salt/top.sls

Kirjoitetaan sinne:

base:
  '*':
    - foo

Voimme vielä lisätä muutokset top fileen välittömästi komennolla

sudo salt '*' state.highstate

c) Saamme orjista valtavan määrän tietoa kirjoittamalla

sudo salt '*' grains.items

Tähän sisältyy IP ja valtava määrä system informaatiota, kuten vaikka järjestelmä ja sen versio. En tiedä pitikö sen data sisällyttää tässä mutta oletan että ei koska se on vaan aika pitkä litania sinänsä turhaa informaatiota ja jos siellä on jotain tärkeätä niin en halua myöskään että julkaisen sen tänne julkisesti.

d) Kokeilin statea pkg.installed, joka siis asentaa ohjelman orjille/varmistaa että niillä on kyseinen ohjelma asennettuna. Luin saltin official dokumentaatiosta (lähde 2) että sen voi tehdä näin:

curl:
  pkg.installed

Tässä siis esimerkkinä curl. Laitteella ei siis ollut etukäteen curlia asennettuna, laitoin tuon foo.sls ja päivitin sen staten komennolla

salt '*' state.apply foo

Tämä asensi laitteelleni curlin ongelmitta, vaikka ensin olin vähän skeptinen että toimisiko se oikeasti noin helposti, mutta näköjään toimi. Ei virheitä, ja curl toimii normaalisti.

Caius Juvonen

Lähteet:

Lähde 1. http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lähde 2. https://salt-zh.readthedocs.io/en/latest/ref/states/all/salt.states.pkg.html

Leave a comment

Design a site like this with WordPress.com
Get started