Homework 1. Salt Master and Slave

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Lue virallisesta Salt Getting Started Guide -kirjasta luvut Understanding SaltStack (noin 8 alasivua) ja SaltStack Fundamentals (6 alasivua, ei tarvitse asentaa demoympäristöä) ja SaltStack Configuration Management: Functions (1 alasivu). (Tätä lukutehtävää ei tarvitse raportoida).

b) Silmäile Laineen 2017 varastossa olevia salt -asetuksia. (Tätä lukutehtävää ei tarvitse raportoida).

c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

Aluksi asennetaan Salt Master.
Olen asentanut sen omalle koneelle pääkäyttäjälle.

$ sudo apt-get install salt-master

Salt:in kanssio löytyy:

$ cd /etc/salt/

Tarkistetaan oma IP-osoite komennolla:

$ hostname -I

Myöhemmin tarvitaan Master IP siihen, että pystytään yhdistää meidän Slave:in.

Että voidaan testata samalla koneella, luodaan toinen käyttäjä:

$ sudo adduser myslave

ja vaihdetaan käyttäjien keskenään komennolla:

$ su - myslave

tai otetaan SSH yhteys:

$ ssh myslave@localhost

Asennetaan salt-slave:

$ sudo apt-get install salt-minion

Muokataan minion tiedoston ja lisätään sinne Master IP ja Slave ID:

sudoedit /etc/salt/minion
master: 123.123.123.123
id: myslave

ja otetaan muutokset voimaan uudelleen käynistämällä demoni:

$ sudo systemctl restart salt-minion.servic

Otetaan slave avain vastaan master käyttäjällä:

Tarkistetaan, että toimii kysymällä kuka myslave on:

Komennot toimii.
Samat toiminnot suoritetaan, kun otetaan yhteys eri koneista.
Tämä tehtävä oli siis tehty yhdellä koneella.

e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

Kerää tietoja meidän slave koneesta:

$ sudo salt 'myslave' grains.items

Esimerkki tiedot mitkä voi saada:

ITEM:
BIOS version and release date
CPU_flags
CPU_model and architecture
GPU
Group name and host
ID: myslave
ip_interfaces, ipv4, ipv6
kernel name and version
machine_id
manufacturer
OS name, family, architecture, version
serialnumber
server_id
virtual: physical or virtual

Nyt voidaan käyttää ylhällä olevia ‘item‘ kommenteja, jos halutaan löytää tietty tieto meidän slave:sta.

Tarkistaa onko myslave niminen slave virtuaali kone vai fyysinen kone:

$ sudo salt 'myslave' grains.item virtual
myslave:
    ----------
    virtual:
        physical

tai vaikka tarkistetaan mikä distro meidän orjalla on asennettu:

$ sudo salt 'myslave' grains.item lsb_distrib_description
myslave:
    ----------
    lsb_distrib_description:
        Linux Mint 19 Tara

f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

Lähetetään meidän slave:lle teksti tiedosto.

Ensin luodaan kansio mihin laitetaan kaikki ohjeet salt:lle:

mkdir -p
no error if existing, make parent directories as needed

$ sudo mkdir -p /srv/salt/

ja erikseen kansio hello mihin laitetaan meidän .sls ohje:

/srv/salt $ sudo mkdir hello

luodaan .txt tiedosto ja kirjoitetaan siihen meidän tervehdys:

/srv/salt/hello $ sudoedit hello.txt

/srv/salt/hello $ cat helloslave.txt
Hello my slave :)

kansiossa /srv/salt/ luodaan .sls tiedosto ja annetaan ohjeet mistä haetaan meidän tervehdys tiedosto:

/srv/salt $ sudoedit hello.sls

/tmp/helloslave.txt:
  file.managed:
    - source: salt://hello/helloslave.txt

Nyt voidaan lähettää ‘myslave’:lle tiedoston:

$ sudo salt 'myslave' state.apply hello

ja tarkistetaan onko tiedosto saapunut myslave:lle:

myslave@s174rd-GL552VW:~$ cd /tmp/
myslave@s174rd-GL552VW:/tmp$ ls
helloslave.txt

Luodaan top.sls tiedosto, että slave:it ottaavat automaattisesti ohjeet käyttöön:

/srv/salt $ sudoedit top.sls

base:
  'myslave':
    - hello

jos halutaan ottaa ohjeet heti:

$ sudo salt 'myslave' state.highstate

Asennetaan vielä whois meidän slave:lle.
Aluksi luodaan uuden kasion ja kaksi uutta tiedostoa:

$ sudo mkdir /srv/salt/common

siihen luodaan tiedosto joka hae tietoja meidän toisesta tiedostosta packages.sls:

$ sudoedit init.sls

include:
  - common.packages

ja toinen:

$ sudoedit packages.sls

common_packages:
  pkg.installed:
    - pkgs:
      - whois

ja se on valmis! Voidaan asentaa komennolla:

sudo salt 'myslave' state.apply /common/init

Leave a Reply

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