Viikko 1 – SALT ohjelman läpikäyntiä materiaaleista, sekä muutamia testejä

Kirjoitin tuossa aikaisemmin pientä brieffiä, mitä on tulossa. Aloitetaan tehtävistä.

Tehtävät löytyvät kurssin sivulta – Terokarvinen.com Palvelinten-Hallinta

Tehtävät
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ä.

d) Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.

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

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ä).

g) Vapaaehtoinen: asenna ja konfiugroi jokin palvelin Saltilla. (package-file-server)

A-B) Tehtävien tarkoituksena oli katsoa virallisista SALT:n kirjoista / lähteistä tietoa ja ymmärtää sitä. Tätä osiota ei tarvitse raportoida.

C) Tehtävän tarkoituksena on asentaa Salt Master ja Slave pull-arkkitehtuurilla, sekä kokeilla suorittaa salt:illa komentoja etänä.

Asennan Salt Masterin digitaloceanin palvelimelle ja käytän omaa läppäriä Slavena(“orjana”), jossa käyttöjärjestelmänä toimii Xubuntu 16.04.3 amd-64 <tee linkki>

Otetaan ssh yhteys palvelimelle ja asennetaan Salt Master komennolla:
sudo apt-get install salt-master

Muistakaa myös päivittää paketit komennolla:
sudo apt-get update

Asennetaan Salt Minion (Slave) omalle läppärille komennolla:
sudo apt-get install salt-minion

Jotta saataisiin yhteys masterilla minioniin, täytyy meidän lisätä minion (slave) koneeseen saltin asetuksiin masterin IP osoite.

Saltin asetukset löytyvät: cd /etc/salt

Muokataan tuota minion asetusta: sudoedit minion
Mennään tämän tiedoston aivan loppuun ja lisätään rivi ja tallennetaan.

master: <palvelimen ip>

Käynnistetään tämä palvelu uudelleen:

sudo systemctl restart salt.minion.service
jotta saadan tämä uusi ip asetus voimaan.

Tämän jälkeen, koska olemme asentaneet masterin palvelimelle, katsomme palvelimella ssh yhteydellä löytääkö se tätä minion(slave) konetta.

sudo salt-key


Ei taida mitään näkyä? :O itselläni ei ainkaan. Katsotaanpa ohjeista saltstak.com

Ahaa! Masteri palvelimelta täytyy avata 2 porttia, jotta saadaan yhteys pelaamaan. Portit 4505 ja 4506.

sudo ufw allow 4505
sudo ufw allow 4506

Ajetaan komento: sudo salt-key uudelleen ja katsotaan mitä näkyy.

Siellähän se näkyy!

Hyväksytään meidän minion(slave) kone.

sudo salt-key -A

Nyt meillä on Salt yhteys kahden koneen, välillä. Ei ole merkitystä missä verkossa minion(slave) kone on. Salt master löytää sen joka tapuksessa, koska minion(slave) koneelle on annettu asetuksiin Salt Masterin IP osoite, mikä ei muutu.

Nyt meillä on yhteys masterilla minioniin, joten voimme jatkaa matkaa ja asentaa tarvittava lisäosa, jotta voimme ajaa komentoja etäältä.

Meidän täytyy asentaa salt-ssh, jotta voidaan ajaa komentoja etäältä.

sudo apt-get install salt-ssh

Luodaan uusi etäkäyttäjätä minion(slave) koneelle, jolla salt master ajaa komentoja, jotta ei tarvitse käyttää muiden käyttäjillä.

sudo adduser etajekku (voit toki käyttää muutakin nimeä)

Meidän täytyy muokata saltin tiedostoa, jotta saadaan nämä etäkomennot ajettua tällä tietyllä käyttäjällä.

cd /etc/salt
nanoedit roster
Lisätään tänne muutama rivi ohjeen mukaisesti.

Salasanaksi antamasi käyttäjän salasana.
Nyt salt-ssh komennot suoritautuvat tämän käyttäjän alla.

Jotta voimme ajaa masterilta komentoja sudona minion(slave) koneeseen ilman, että meidän täytyy joka kerta antaa sudo salasana. Lisätään rivi tiedostoon “visudo” mikä on minion(slave) koneella  – Lähde saltstak-saltssh

sudo visudo
Lisätään rivi: user ALL=(ALL) NOPASSWD: ALL
Vaihda “user” käyttäjäksi, jonka juuri loit.

Kokeillaan ajaa jonkin komento Masterilta minioniin.
Annetaan masterilta komento:
sudo salt ‘*’ cmd.run “ls /”
‘*’ tarkoittaa, että komento ajetaan jokaisella minion koneella, tässä voisi olla vaikka ‘kelkka’

Ajettuamme tämän komennon nähdään minion koneen kansiot juuresta.
Tuosta varoitus tekstistä, ei tarvitse välittää. Voimme katsoa myöhemmin miten tämän saa pois.

Kokeillaan asentaa jokin ohjelma sudo oikeuksin. Esimerkiksi gimp. Käytämme seuraavassa tehtävässä tähän tarkoitettua oikeata tapaa asentaa ohjelmia mutta kokeillaan, että sudo salasanaa ei tarvitse kirjottaa.
Tämä komento annetaan master koneelta.

sudo salt ‘*’ cmd.run “sudo apt-get install -y gimp”

Kuten huomataan, sudo komento suoritetaan ilman, että kysytään salasanaa ja nyt gimp pitäisi löytyä minion koneelta asennettuna.

Tero Karvinen on löytänyt korjauskeinon tähän turhaan varoitukseen, mikä saadaan kun annetaan jokin salt komento.

Quick fix for useless salt warning tuosta linkistä kannattaa katsoa korjauskeino. Se ei tosin kovin vaikeaa ole, vain yhden rivin lisäis /etc/salt/master tiedostoon.
Muokataan tätä tiedostoa salt master koneelta.

sudoedit /etc/salt/master
file_ignore_glob: []

Nyt voimme ajaa salt komentoja ilman, että näemme tätä varoitusta.

D) Tehtävän tarkoituksena on kokeilla jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma.

Jotta saataisiin näitä tiloja testattua, meidän täytyy luoda “salt” kansio /srv/ kansioon.

Tänne luodaan erilaisia tiloja mitä voidaan helposti ajaa minion koneisiin.

Lainataan Laineen esimerkistä lamp.sls tilaa.

sudoedit lamp.sls
Lisätään tänne muutama rivi

Ja tässä on ehdottoman tärkeä muistaa käyttää kahta(2) välilyöntiä jokaisen rivin jälkeen.

Ensimmäinen rivi on tapahtuman ID eli ns. “otsikko” mikä näkyy kun komento ajetaan. Seuraava rivi kertoo mikä tapahtuma ajetaan, tässä tapauksessa pakettien asennus ja seuraavana paketit ja mitä paketteja asennetaan.

Kokeillaan ajaa tämä tila minion koneelle. Komento ajetaan Masterilta.

sudo salt ‘*’ state.apply lamp

Tuo tilatiedosto asentaa minion koneelle apachen ja php moduulin apacheen. Itselläni oli jo apache asennettuna joten tämä inffo ei näytä mitään erilaista.

Jos tätä ei olisi asennettuna näkyisi summary rivillä
Succeeded: 1 (Changed = 1)
Esimerkiksi

Nyt tätä komentoa voi ajaa niin monta kertaa kuin haluaa, mutta tätä ohjelmaa ei asenneta joka kerta uudeelleen. koska se on asennettuna jo.

E) Tehtävän tarkoituksena oli kerätä laitetietoja koneilta saltin grains-mekanismilla.

Saltin grains mekanismilla on mahdollista saada minion koneiden rauta tietoja. Tässä linkki saltstak-grains sivulle.

Syötetään terminaaliin komento:

sudo salt ‘*’ grains.items
ja katsotaan mitä saadaan listattua.


Tulee lista komponenteista, sekä kaikista muista tietokoneessa olevista ominaisuuksista.

F) Tehtävän tarkoituksena oli säätää oikeassa elämässä omalla virtuaalpalvelimella jotakin pientä saltin kanssa.

Tein tämän koko tehtävän käyttäen virtuaalipalvelinta masterina ja omaa läppäriä minionina(slave). Joten periaatteessa ylemmät tehtävät suorittavat tämän kohdan.

G)Vapaaehtoinen: asenna ja konfiugroi jokin palvelin Saltilla. (package-file-server)

Teen tämän myöhemmin.

Leave a Reply