Linux palvelinten hallinta H1

“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)”

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019


Tehtävissä käytettyt laitteistot

Linux palvelimen raudan saan selville terminaali komennolla “sudo lshw -short -sanitize“. Blogissa vain olennaisimmat näkyy tiedot.

Master palvelimen rauta

Master palvelimen rautana käytin DigitalOceanin virtuaali- Ubuntu versio 18.04.2 palvelinta SSH yhteydellä. Dropletin rauta:

                      system     Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
/0/1000 memory 1GiB System Memory
/0/1000/0 memory 1GiB DIMM RAM
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/6/0 generic Virtual I/O device

Slave koneen rauta

Slave koneen rautana paikalinen merkitön pöytäkone avattuna
Xubuntu-18.04.2 LTS live tikulla. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

Salt Master ja Slave

Aloitin Digital Oceanin palvelimella, jonka valitsin Master palvelimeksi. ensimmäinen komento palvelimelle “sudo apt-get update“, jotta järjestelmä saa tiedon ohjelmisto versioista. Asensin Salt Masterin terminaali komennolla “sudo apt-get install salt-master“. Avasin myös tässä vaiheessa Salt Masterin käyttämät portit terminaali komennoilla “sudo ufw allow 4505/tcp” ja “sudo ufw allow 4506/tcp“. Uudeleen käynnistin palomuurin komennolla “sudo systemctl restart ufw“, jotta saadaan uudet asetukset voimaan palomuuriin.

Sitten Xubuntu version LTS 18.04.2-desktop-amd64 live tikulla avattu pöytäkone, josta tulee Slave kone. Laitoin terminaali komennon “sudo apt-get update“, jotta järjestelmä saa tiedon ohjelmisto versioista. Tähän asensin Salt Minionin terminaali komennolla “sudo apt-get install salt-minion“. Slave ottaa yhteyden Master palvelimeen, joten menin kansioon /etc/salt ja muokkasin tiedostoa minion sudoedit:llä lisäsin tiedostoon rivit master: 104.248.26.65 ja id: jonipc.

Uudelleen käynnistin Salt Minionin terminaali komennolla “sudo systemctl restart salt-minion“, jotta uusi asetus uudesta Masterista tulee voimaan.

Menin takaisin Master palvelimelle ja annoin komennon “sudo salt-key“, johon oli ilmestynyt unaccepted keys kohtaan jonipc.

Otin jonipcn avaimen vastaan komennolla “sudo salt-key -A“. Master Slave yhteyden kokeilin komennolla “sudo salt ‘*’ cmd.run ‘w’“, joka toimi oletetusti.

Aika tehtävässä Salt Master ja Slave 28.3.2019 kello 18:05 – 18:40.

Laineen esimerkit LAMP asennus Saltilla oma muunnelma

Aloitin Master palvelimella tekemällä kansion, johon tiedostot menevät terminaali komennolla “sudo mkdir -p /srv/salt/” ja asetustiedoston LAMP stack asennukseen komennolla “sudoedit lamp.sls“. Muokatun LAMP asennus esimerkki tiedoston laml.sls pohja Laineen Github sivulta: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

Kuva: lamp.sls tiedoston sisältö muokattu Laineen esimerkin pohjalta.

Loin kansion web sivuille komennolla “sudo mkdir websites” uuden kansion sijainti on /srv/salt/websites ja tein websites kansioon index.php teksti tiedoston komennolla “sudoedit index.php“. Laitoin index.php tiedostoon html ja php testikoodia.

Kuva: index.php tiedoston sisältö

sudo salt ‘*’ state.apply lamp” komennolla kaikille Slave koneille asentuu lamp.sls tiedostoon määrätyt: Ohjelmat Apache2, MariaDB Client, MariaDB Server, poistaa Apchen default sivun eli index.html tiedoston ja PHP lisäosa Apacheen ja tuo tiedostot kansiosta /srv/salt/websivut esim. Luomani index.php tiedosto menee Apache2 default sivun kansioon /var/www/html/.

Master palvelimelta komennolla “sudo salt ‘*’ state.apply lamp” terminaali ilmoitti että 3 tiedostoa vaihdettu onnistuneesti ja 0 epä- onnistuneesti jonipc koneelle.

Kokeilin toimivuuden vielä poistamalla vanhan jonipc Slaven komennolla “sudo salt-key -D” ja Avasin Xubuntun uudestaan alkutilaan Live tikulla. Xubuntuun päivitin ohjelmisto tiedot komennolla “sudo apt-get update“, asensin Salt-Minionin komennolla “sudo apt-get install salt-minion“, lisäsin koneen Slaveksi idllä joni2 ja “sudo systemctl restart salt-minion” komennolla uudelleen käynnistin salt minionin, jotta uusi asetus uudesta Masterista tulee voimaan.

Master palvelimella aloitin komennoilla “sudo salt-key -A” ja “sudo salt ‘*’ state.apply lamp“. Kaikki toiminnot näytti komento lokin mukaan toimivan.

Kuva: Salt LAMP stack asennus komento, kuvasta leikattu pois asennus paketit.

Apache2 ja PHP toimivuuden testaus

Kokeilin toimivuuden Slave pöytäkoneella avaamalla localhostin, joka avaa index.php tiedoston sivun. Sivun toimivuudesta voi todeta että Apache2 on asentunut ja sivu sisältää PHP testikoodia <?php print(1+1)?>, joka tulostaa sivulle numero 2, tästä voidaan todeta että PHPn lisäosa on asentunut.

Kuva: Ennen ja jälkeen localhost:in sivu

MariaDB toimivuuden testaus

MariaDBn toimivuuden kokeilin tekemällä Slave pöytäkoneella tietokannan ja yhden taulun.

MariaDPlle loin tietokannan joni komennolla “CREATE DATABASE joni;” ja tietokantaan menin komennolla “USE joni;”.

Tietokantaan sain luotua taulun komennolla “CREATE TABLE games (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(150), price FLOAT);“. Lisäsin tauluun tietoa komennolla “INSERT INTO games(name, price) VALUES (“Halo 1”, 15.5);“. Katsoin menikö tieto tauluun komennolla “SELECT * FROM games“. Kyllä tiedot menivät tauluun eli MariaDB toimii.

Kuva: MariaDB games taulusta.

Aika tehtävässä Laineen esimerkit LAMP asennus Salt:lla oma muunnelma 28.3.2019 kello 20:30 – 22:20


Tehtävän Laineen esimerkit LAMP asennus Salt:lla oma muunnelma lähteet:

Ohjeet Saltin käyttöön: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lamp stack asennus komento Saltille: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

MariaDB ohje: http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql

Salt Grains tietojen keräys Slave koneista

Aloitin taas lisäämällä uuden Slave koneen ja poistamalla vanhat Slavet Masterilta, uuden Slaven nimeksi tuli joniPc2.

Ensimmäinen Salt Grains komento Masterilta Slavelle, jonka kokeilin oli “sudo salt ‘*’ grains.items“, Komento tulosti Master palvelimelle pitkän listan Slave tietokoneen tiedoista, johon kuului aika paljolti kaikki tiedot, jotka palvelin saa irti esim. Tietoja raudasta, ohjelmistoista, versioista, käyttäjästä, Ip osoitteista ja käyttöjärjestelmästä.

Sitten kokeilin suodattaa tietoja Salt Grains komennolla esim. “sudo salt ‘*’ grains.item cpu_model“, joka vastasi AMD Ryzen 5 2600 Six-Core Processor.

Käyttöjärjestelmän ja version sain komennolla “sudo salt ‘*’ grains.item lsb_distrib_description“, joka vastasi Ubuntu 18.04.2 LTS.

Aika tehtävässä Salt Grains tietojen keräys Slave koneesta 30.3.2019 kello 11:35 – 11:50.

Salt state, joka asentaa ohjelmia ja vaihtaa asetuksia.

Ohjelmien asennus state

Aluksi teen ohjelmistot.sls tiedoston Salt Master palvelimen kansioon /srv/salt, joka kertoo mitkä ohjelmistot Slave kone asentaa. Master tietokone on virtuaali- palvelin Digital Oceanilta, jonka tietoja voin mennä muuttamaan myöhemminkin, vaikka lisätäkseni uusia ohjelmia ohjelmistot.sls tiedostoon.

Ohjelmistot.sls asentaa ohjelmistot Shutter – kuvan kaappaus ohjelmisto, VLC – median toisto ohjelmisto, WhoIs – IP haku ohjelmisto ja Htop – resursien hallinta ohjelmiston.

Ohjelmistot.sls komennon testaus

Suoritin komennon “sudo salt ‘*’ state.apply ohjelmistot” Master palvelimelta. State ohjelmistot asensivat VLCn, WhoIs, Htopin ja huomasi, että Shutter on oli jo asennettuna Slave tietokoneeseen.

Kuva: ohjelmistot asennus ohjelmistot Statella, kuvasta leikattu pois suurin osa asennus paketeista.

Aika tehtävässä ohjelmien asennus state 30.3.2019 kello 12:50 – 13:05.

Terminaalin preferences configurointi Saltilla

Terminaalin configuroiva state tein kansioon /srv/salt/terminal tiedostot default-terminalrc tiedoston, johon kopioin omat terminaali preference asetukset ja init.sls tiedoston, joka vie terminaali asetukset Slave koneen terminaali asetuksien tilalle.

Kuva: init.sls tiedoston sisältö

Komennolla “sudo salt ‘*’ state.apply terminal” lähetin käskyn Slave koneeseen, joka lokitietojen mukaan vaihtoi terminaali asetukset. Näin kun terminaalin graaffiset asetukset vaihtui samalla kun Master Slave yhteys oli vielä vaiheessa.

Aika tehtävässä terminaali preferences configurointi Saltilla 30.3.2019 kello 18:40-19:40.

Palvelimen alku configurointi Saltilla

Aloitin Master palvelimella laittamalla Salt State kansiot parempaan järjestykseen, vein kaikki sls tiedostot omiin kansioihin ja vaihdoin kaikki sls tiedostojen nimet init.sls.

Kuva: Tämän hetkiset /srv/salt kansion tiedostot “tree” komennolla

LAMP kansio

Kansio sisältää init.sls tiedoston, joka asentaa LAMP stackin ja korvaa Apeche2 index.html testi sivun index.php sivulla.

Kuva: init.sls tiedoston sisältö

Programs kansio

Tiedosto init.sls kansiossa programs lataa paketin hallinnan kautta Slave tietokoneeseen ohjelmia, joita itse yleisesti käytän. Ohjelmat: Shutter – kuvan kaappaus ohjelmisto, VLC – median toisto ohjelmisto, WhoIs – IP haku ohjelmisto, Htop – resurssien hallinta ohjelmiston ja Locate – hakutoiminto Linuxiin.

Kuva: init.sls tiedoston sisältö

Terminal kansio

Terminal kansiossa oleva default-terminalrc tiedosto viedään init.sls tiedoston avulla Master palvelimelta, Slave koneelle korvaamaan Terminaalin graafisten asetuksien tiedosto ja skel kansioon, jotta uusille käyttäjille tehdään kyseinen kansio automaattisesti.

Kuva: init.sls tiedoston sisältö

Top.sls tiedosto

Kansiossa /srv/salt sijaitseva top.sls tiedosto ajaa kansioiden nimen perusteella init.sls tiedostot.

Kuva: top.sls tiedoston sisältö

Salt State Apply komento testi

Avasin uuden Xubuntu koneen Live tikulla ja päivitin versio tiedot komennolla “sudo apt-get update” asensin Salt Minionin komennolla “sudo apt-get install salt-minion“, lisäsin Masterin ja uudelleen käynnistin komennolla “sudo systemctl restart salt-minion“.

Masterilla otin uuden avaimen vastaan komennolla “sudo salt-key -A“. Master palvelimelta komento “sudo salt ‘*’ state.apply” suoritti kaikki State kansioiden init.sls tiedostot top.sls tiedoston kautta ja kaikki näytti toimivan “Succeeded: 6 Failed: 0” laitoin viellä komennon uudestaan, jotta saan lyhyemmän kuvan nyt jo asennetuista paketeista.

Aika tehtävässä palvelimen alku configurointi 31.3.2019 kello 5:55 – 7:00

Tehtävän palvelimen alku configurointi saltilla lähteet: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

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

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Vinkit sls tiedostojen rakenteisiin: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lamp.sls muunnelman alku pohja sivulta: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

MariaDB ohje yhden taulun tekoon: http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql

Ohjeita top.sls ja init.sls tiedostoihin sivulta: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

Advertisements

One thought on “Linux palvelinten hallinta H1”

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