Ploki

Kuudes tehtävä

A) Kultainen polku. Tee ensimmäinen versio modulistasi, joka toimii ainakin optimiolosuhteissa. Jos jokin säätö on poikkeuksellisen hankala, voit tehdä sen tässä versiossa käsin, ja dokumentoida ajamasi käskyt. (Valmis moduli tarvitaan vasta esitykseen ensi viikolla).

 

Tein tilan, joka asentaa tyhjälle koneelle muutaman ohjelman käyttäen saltia.

Aloitin tekemällä githubiin uuden repositorion “desktop” löytyy täältä: https://github.com/Antiperspirantti/desktop

Kuten aiemmissa tehtävissä, tässä kansiossa on alkuun vain README ja LICENSE tekstitiedostot.

Kopioin repon koneelleni ja alan muokkaamaan:

Luon kotikansioon kopioidun “desktop” -kansion alle kansiot /srv/salt ja salt kansion sisälle luon vielä “desktop” nimisen kansion. Valmis polku on siis ~/desktop/srv/salt/desktop

seuraavaksi lisäsin high.sh tiedoston ensimmäiseen desktop -kansioon, eli ~/desktop/high.sh

Tämän sisään kirjoitin:

setxkbmap fi
sudo apt-get -y install salt-minion
sudo add-apt-repository ppa:shutter/ppa
sudo apt-get update
salt-call –local state.highstate –file-root srv/salt

seuraavaksi tein init.sls -tiedoston ~/desktop/srv/salt/desktop -kansioon:

pkg.installed:
– pkgs:
– ssh
– shutter

Tarkoituksenani oli vielä asentaa muitakin ohjelmia, mutta lisää tästä myöhemmin.

Seuraavana vuorossa oli luoda top.sls tiedosto salt-kansioon:

base:
‘*’:
– desktop

Tässä on valmis runko. Nyt täytyy enää siirtää tämä gittiin:

git add .

git commit

git push

B) Kokeile moduliasi tyhjässä koneessa. Voit käyttää virtualboxia, vagranttia tai livetikkua.

Kokeiltu livetikulla pöytäkoneelta. Koska githubin url pitää kirjoittaa käsin, jouduin ajamaan setxkbmap fi -komennon ensiksi, sillä en muista, missä kaksoispisteet ja kenoviivat on jenkkinäppiksessä.

Tämä työ on vielä hieman vaiheessa. Tarkoitukseni on saada tämä tila mahdollisimman automatisoitua, jotta edeltäviä tehtäviä ei paljon tarvittaisi. Nyt pitää kuitenkin saada palautus tehtyä, joten tämä on tilanne nyt:

ssh ja shutter asentuvat hyvin. Ihan ensiksi high.sh:ssa ajettu shutterin repon lisääminen onnistuu myös, eli shutter on käyttövalmis ilman sen kummempia säätämisiä. Haluaisin saada vielä spotifyn asennettua, mutta se ei ole ollut niin helppoa kuin mitä olin aluksi ajatellut. Ylempänä olen myös maininnut, että high.sh -tilassa asennetaan myös salt-minion, sillä ilman sitä tämä ei toimi. Nyt jouduin tekemään sen manuaalisesti, sillä olin aluksi unohtanut lisätä sen mukaan ajettaviin komentoihin. Lisättyäni salt-minionin, ajamani tila meni läpi.

 

C) Käyttäjätarina (user story): ketkä ovat modulisi käyttäjät? Mitä he haluavat saada aikaan modulillasi? Missä tilanteessa he sitä käyttävät? Mitkä ovat tärkeimmät parannukset käyttäjän kannalta, joita moduliin pitäisi vielä tehdä? Tähän c-kohtaan vain sanallinen vastaus, tämä kohta ei poikkeuksellisesti edellytä testejä tietokoneella.

Olen tehnyt tämän moduulin ajatellen lähinnä itseäni ja tätä kurssia. Shutter ensinnäkin on aivan ehdoton kuvankaappausohjelma, jota olen käyttänyt koko kurssin ajan. Ssh on tärkeä myös etäpalvelimen ja vagrantin yms käytössä. Spotifyn haluaisin ehdottomasti lisätä, sillä musiikin kuuntelu auttaa keskittymään.

Toivottavasti keksin vielä lisää toiminnalisuuksia tähän ja toivottavasti minulla löytyy myös taitoa toteuttaa niitä. Tällä hetkellä ollaan kuitenkin tässä.

Viides tehtävä

B) Julkaise raportti MarkDownilla. Jos käytät GitHub:ia, se tekee muotoilun automaattisesti “.md”-päätteisiin dokumentteihin.

Tässä tehtävässä käytetään Githubia.

Aloitin tehtävän luomalla uuden Repositoryn “Tehtava5” Githubissa.

Tämän jälkeen kopioin tämän repon osoitteen ja aloin tekemään varsinaista tehtävää:

git clone “repon url-osoite”

Tämä komento loi kansion kotihakemistooni “Tehtava5”. Menin tähän kansioon:

sudo nano markdown.md

Tuonne kirjoitin vain: “Palvelintenhallinnan kurssin viides tehtävä. Näin se sujuu.” Kekseliäs kun olen.

Tämän jälkeen annetaan komennot:

git add .

ja

git commit

whoyouare.png

Git kysyy tunnistetietoja sähköpostiosoitteen ja nimen muodossa. Käyttäen kuvassa olevia komentoja, syötetään ne järjestelmään.

Tämän jälkeen ajetaan:

git push

Git promptaa salasanaa, jonka antamisen jälkeen koneella tehdyt muutokset siirretään githubiin.

github.png

Ja tässä näkyy lopputulos. License ja readme lisättiin repon luomisen yhteydessä, ja markdown.md tehtiin lokaalisti koneella ja pushattiin sittemmin githubiin. Tässä oli B-tehtävä.

 

C) Aja oma Salt-tila suoraa git-varastosta. Voit joko tehdä tilan alusta lähtien itse tai forkata sirottimen.

Minulla oli jo aikaisemmasta tehtävästä luotu repository “School”, jonne olin tallentanut salt-tilan, joka luo /tmp kansioon tyhjän tekstitiedoston.

Kuten jo aikaisemmassa tehtävässä tehtiin, kopioidaan ensin repon osoite githubista, jonka jälkeen komennolla:

git

git clone “url-osoite”

haetaan Githubiin tallennettu hakemisto omalle koneelle.

Tämän jälkeen, koska Salt-tila on siis jo valmiina, menen vain juuri luotuun kansioon, eli “school” ja ajan komennon:

sudo bash high.sh

hellolokaali.png

Meni kerrasta läpi.

Ei kuitenkaan luoteta vihreeän, vaan tarkistetaan asia:

temp.png

Sinnehän se on ilmestynyt temp-kansioon kuten pitikin, eli “hellolokaali.txt” joka on tyhjä tekstitiedosto. Tämä oli C-tehtävä.

Neljäs tehtävä

Tämä viikko alkoi stressaavissa tunnelmissa tehtävien osalta. Ensinnäkin: En saanut kuin yhdne orjan toimimaan, joka on samalla koneella oleva orja, kuin mistä käytän myös masteria. Yritin pitkään saada orjaa palvelimelleni, mutta en saanut sitä toimimaan, en millään. Toiseksi on se, että joudun olemaan koko viikonlopun poissa kotoa, joten tehtävien tekemiseen ei jää niin paljon aikaa kuin normaalisti.

Yritin soveltaa tämän viikon tehtäviin Jinjan for-silmukkaa, jota käytiin tunnilla läpi, mutta en saanut sitäkään valitettavasti toimimaan. Tähän mennessä aikaa oli jo mennyt niin paljon, että se oli loppumaisillaan. No, se alkuselityksistä, siirrytään tehtävänantoihin ja itse tehtäviin. Olen suuressa kiitollisuudenvelassa luokkatoverilleni Jouni Kilpijärvelle hänen blogipostauksestaan, jotta sain edes jotain tehtyä määräaikaan mennessä. https://jkjournalblog.wordpress.com/2018/04/19/ict4tn022-4-kotitehtava-number-4/

 

B) Tee kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummalekin orjalle mene eri tieto. Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

 

Jounin esimerkin mukaisesti muokkasin etc/hosts tiedostoa antaakseni orjille (minulla siis vain yksi orja) eri virtuaaliosoitteet.

Salt kansioon uusi kansio nimeltä “Sivut”

Sivut kansioon init.sls tiedosto jossa:

sivut.initsls

Kuten kuvasta näkyy, minulla on “sivut” kansiossa myös hosts-tiedosto, jonka olen kopioinut tuohon kansioon

sudo cp /etc/hosts /srv/salt/sivut

Hosts tiedostoon lisäsin Jinjamuuttujan:

hostsjinja

Tämän jälkeen pitää käydä lisäämässä “Pillar” -kansioon tuohon ylläkuvattuun muuttujaan sisältö, eli loin pillariin kansion “Sivut” ja sinne tiedoston orja.sls (jos minulla olisi toinenkin toimiva orja, olisin tässä vaiheessa tehnyt myös toisen sls-tiedoston ko. orjan nimellä eri sisällöllä)

pillar.orja.example.com

Nyt kun ajan highstaten (kun kaikki on ensin valmiiksi konffattu), niin init.sls tiedoston pillar.website-muuttuja löytyy täältä, ja se ohjataan sittemmin hosts -tiedostoon valituille orjille.

Seuraavaksi pitää tehdä top.sls -tiedostot.

Tehdään ensimmäinen pillarin juuren:

pillartopsls

Seuraava tehdään saltin juureen:

topsls

Jälleen kerran: jos minulla olisi useampi orja, määrittelisin ne nyt myös tähän. Mikäli orjat eivät saisi erillisiä määrityksiä, kävisi orjan nimen asemesta: ‘*’ -viittaus.

Nyt olemme uskoakseni valmiita ajamaan highstate-komennon:

sudo salt ‘*’ state.highstate

example.highstate.png

Kyllä vain. Kuten näkyy, orja.example.com on lisätty.

Testataan vielä sen toimivuus:

orja.example.com

Kyllä toimii! Tietoihin on jäänyt vanhat viittaukset, jonka takia tuo teksti tulostuu sivuja ladatessa. Ei haittaa. Toimivuus on pääasia.

 

 

C) Tee kahdella orjalla esimerkki, jossa toinen orja saa muuttujan pilarista ja toinen käyttää oletusarvoa (pillar.get). Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

 

Tässä tehtävässä voidaan muokata ylempää tehtävää jotta saadaan haluttu tulos.

Ensin muokataan init.sls tiedostoa SALT -kansiossa.

pillar.get

Tämä nyt on vähän niin ja näin, sillä “default”-sivuhan on apachen testisivu, jos nyt ihan tarkkoja ollaan, mutta esimerkin vuoksi, käytetään tuota arvoa “80” jota käytimme myös tunnin aikana tehdyssä porttitehtävässä. Muistettava on, että minulla todellakin on edelleen ainoastaan yksi orja käytössä (work in progress).

Tämän jälkeen meidän pitää vielä tyhjentää Pillar -kansiossa oleva orja minionin orja.sls tiedosto tyhjäksi.

Tämän jälkeen kun ajetaan highstate:

sudo salt ‘*’ state.highstate

pillarget.highstate

Huomataan, että orja.example.com on vaihtunut, ja tilalle on tullut tuo “80”. Kaipa tässäkin voisi vaikka määrittää jonkin oletuksen, kuten vaikka yritysympäristössä, että aloitussivu olisi yrityksen intran sivut tai jotain vastaavaa. Tuo 80 on siis vain esimerkki, että saimme tilan vaihtumaan “Oletukseksi”.

Nojoo, joka tapauksessa, mikäli minulla olisi kaksi orjaa, minulla olisi myös toiselle orjalle oma .sls -tiedosto Pillarissa, jossa olisi viittaus SALT:in init.sls;n “website” -viittaukseen, sillä tässä tapauksessa tuo “website” on meidän tekemä, ei oletussivu jonka vaihdamme vain yhdelle minionille. Näin tämä homma toimii!

 

Lähteet:

Jouni Kilpijärjven blogi: https://jkjournalblog.wordpress.com/2018/04/19/ict4tn022-4-kotitehtava-number-4/

Tero Karvisen blogi: http://terokarvinen.com/2018/secrets-in-salt-pillars

 

Kolmas tehtävä

B) Tiedosto muotista: tee yksinkertainen SLS-tilatiedosto, joka laittaa muuttujan tiedostoon. Käytä jinjan kontekstimuuttujaa (template: jinja, context: …).

 

Mikäli ymmmärsin tehtävänannon oikein, tässä tehtävässä haetaan tiedostoa, joka ei itsessään ole SLS-tiedosto, vaan tiedosto johon itse SLS-tiedostossa viitataan, kuten vaikka tähän malliin:

tamaonfile

Loin siis moikka.txt -tiedoston /srv/salt/multi -polkuun.

Tämä käytiin viime tunnilla esimerkkinä läpi, ja löytyy myös Tero Karvisen materiaaleista: http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states. Tässä lisätään muuttuja “file”. Linkkiä seuraamalla voit saada esimerkin tämän toimivuudesta. Kun luodaan useampi tiedosto, kuten vaikka foo.txt, bar.txt jotain.txt ja SLS-tiedostossa viitataan tähän moikka.txt -tiedostoon, tulostuu nuo kolme tiedostoa, joissa on teksti: Moikka, tämä on moikka.txt, tai foo.txt jne. Kun luomme kolme eri tiedostoa, tämä muuttuja antaa jokaiselle tiedostolle eri sisällön.

 

 

C) SLS tilaa Jinjalla: tee yksinkertainen SLS-tilatiedosto, joka käyttää for-in -silmukaa. Voit esimerkiksi tehdä kolme tiedostoa silmukalla. (Tässä tehtävässä siis käytetään jinjaa vain SLS-tiedoston sisällä, älä sotke samaan esimerkkiin tekstitiedostojen sisällön muuttamista.)

 

Ymmärtääkseni tässä tehtävässä haetaan edellisellä tunnilla esimerkkinä käytettyä Jinja-tilaa:

jinjatila

Tämä SLS-tiedosto sisältää Jinjaa, ja tekee kolme tiedostoa: foo.txt, bar.txt ja kala.txt. Koska tehtävänannossa erikseen pyydettiin huomioimaan, että tässä ei ole tarkoitus tehdä muuta (kuten muokata tekstitiedoston sisältöä), niin “source” -polku on otettu tästä skriptistä pois. Tämä luo siis kolme tyhjää tekstitiedostoa; foo.txt, bar.txt ja kala.txt.

 

 

D) SSH-demonin portti: tee tila, joka asentaa SSH-demonin valittuun porttiin. Käytä portin valintaan Jinjaa, siten että sshd_config:issa “Port:”-kohdan arvo tulee Jinjan muuttujasta.

 

Tein tämän tehtävän käyttäen pohjana tunnin aikana tekemiäni muistiinpanoja:

muistiinpanot

Muokkasin tätä tehtävänannon muikaisesti seuraavalla tavalla:

ssh.sls

Kuten näkyy, muutokset eivät olleet suuria. Toiseen osioon lisättiin vain “template: Jinja”, sekä “context” -osio. Tämä itsessään ei vielä riitä muuttamaan porttia, vaan pitää muokata vielä .conf -tiedostoa.

Kävin kopioimassa /etc/ssh/sshd_config -tiedoston saltin polkuun /srv/salt/  ja tein tuohon tiedostoon pienen muutoksen:

portti

Kun muutin porttinumeron Jinja-muotoon {{ port }}, niin silloin tämä muuttuu siksi tiedoksi, kuin mitä määrittelen .sls -tiedostoon.

portinvaihto

Kuten näkyy, oletusportti 1111 on korvattu ylemmässä kuvassa määrittelemääni porttinumeroon 6262.

 

 

E) Kokeile jonkun toisen opiskelijan tekemää Salt-tilaa. Kokeiltava tila voi olla mistä vain harjoituksesta. Opiskelijoiden raportteja ja koodeja löydät tämän sivun perästä kommenteista.

 

Vaihdoin taustakuvan Joona Leppälahden materiaaleista löytämieni tietojen perusteella: https://github.com/joonaleppalahti/CCM/commit/ae8acc2a481fe8b491e97e02068b3f9b4669dfe6

Linkki tähän tehtävään löytyy täältä kohdasta D):

https://johanneslaatu.wordpress.com/2018/03/31/ensimmainen-tehtava/

Toinen tehtävä

Tehtävät tästä eteenpäin (h2, h3…) tulee ratkaista tekemällä Saltin tila (state), ellei tehtävänannosta muuta ilmene. Tee ensin käsin, automatisoi vasta sitten. Muista testata lopputulos.

 

B) Laita käyttäjien kotisivut toimimaan Apachella.

Tehtävänannon mukaisesti tein tehtävän ensin manuaalisesti. Koska tämä tehtävä on tehty jo aiemmin aikaisemmalla kurssilla, linkkaan tähän kuinka se tehdään: https://johanneslaatu.wordpress.com/2018/02/05/kolmas-viikko-kolmas-tehtava/.

apachesalt

Testasin, että manuaalisesti tekemäni muutokset varmasti toimivat. Kuten näkyy, hienosti toimii! Seuraavaksi automatisaation kimppuun.

Aloitin luomalla SALT-kansioon uuden kansion (pitääkseni tulevat skriptit paremmassa järjestyksessä) nimeltään Apache.

Kansion sisälle tein “default-index.html” -tekstitiedoston. Tiedoston sisälle kirjoitin kuvassa näkyvän tekstin “Johanneksen testisivut“.

Seuraavaksi loin kansion sisälle toisen tiedoston, init.sls. Tämän sisälle kirjoitin seuraavan skritpin:

apache.sls

Ensimmäisessä rivissä määritellään, että paketti apache2 tulee asentaa. Toisella rivillä määritetään haluttu kohde, eli tässä tapauksessa tuo kirjoittamani tekstipätkä, joka sittemmin tulostuu localhostiin. Olen kopioniut tämän skriptin Tero Karvisen materiaaleista: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example.

Minulla oli vaikeuksia saada aluksi tuo init.sls toimimaan. Mietin kauan ja hartaasti mikä on pielessä, mutta lopulta vika oli puolipisteissä, jotka joko puuttuivat tai olivat väärissä paikoissa, ja siinä, että init.sls oli saltin alikansiossa “Apachessa”. Vika korjaantui, kun siirsin tiedoston suoraan SALT-kansioon ja ajoin sen uudestaan.

apachesalt2

Testattu että toimii. Skriptissä oli viisi kohtaa jotka on nyt kaikki ajettu.

 

C) Laita PHP toimimaan käyttäjien kotisivuilla. (Huomaa, että PHP toimii oletuksena kaikkialla muualla kuin käyttäjien public_html-kotisivuilla.)

Jälleen ensin manuaalinen testaus:

sudo apt-get install libapache2-mod-php

sudoedit /etc/apache2/mods-available/php7.0.conf

tuolta conf-tiedostosta kommentoidaan viisi alimmaista riviä. Tästäkin on tarkemmin ylläolevassa linkissä aiemmasta postauksestani.

sudo service apache2 restart

Nyt PHP:n pitäisi toimia. Testataan:

phpmanualtest

Kirjoitin siis yksinkertaisen php-skriptin:

<!DOCTYPE html>
<html>
<body>
<?php echo “tämä on testi”;?>
</body>
</html>

 

public_html kansioon nimellä testi.php. Hyvin toimii! Seuraavaksi automatisaatioon.

Automatisointi

Jälleen kerran loin salt-kansioon alikansion “php“. Tämän sisään tein tiedostot “php.conf” ja “php.sls“.

Conf -tiedoston sisään copypastesin tiedot /etc/apache2/mods-available/php7.0.conftiedostosta, jossa olin siis jo kommentoinut viisi alinta riviä pois käytöstä.

Sls -tiedosto on seuraavanlainen:

php.sls

Kun kokeillaan ajaa:

php-success

Kauniin vihreää ja sinistä, juuri mitä haettiinkin.

 

D) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

Mennään ensin /etc/apache2/sites-available ja luodaan tänne vaikka example.com -tiedosto.

<VirtualHost *:80>
ServerName http://www.testi.example.com
ServerAlias testi.example.com
DocumentRoot /home/johannes/public_html/sleep.com
<Directory /home/johannes/public_html/sleep.com>
Require all granted
</Directory>
</VirtualHost>

Tämän jälkeen pitää vielä muokata etc/hosts -tiedostoa:

etc-hosts

Oleellista on 127.0.1.1 osoitteelliset tiedot. Kommentoin ulos aiemmin sillä osoitteella olleen Laptopin varmuuden vuoksi. Ctrl + x ja y:llä ulos. Sitten testataan toimivuutta:

example.com

Testisivut toimii! En ole narsisti, nimi on tuossa sen takia, että näitä “testisivuja” on jo sen verran monta, että koetan yksilöidä tekstin tapauskohtaisesti tietääkseni että se varmasti toimii. Enihuu, sitten automatisaatio:

Automatisointi:

Tein SALT-kansioon alikansion “hosts“. Sinne tehtiin jälleen sls -tiedosto ja tällä kertaa kaksi .conf -tiedostoa.

hosts.conf -tiedosto sisältää jo aiemmin linkittämäni tekstin:

<VirtualHost *:80>
ServerName http://www.testi.example.com
ServerAlias testi.example.com
DocumentRoot /home/johannes/public_html/sleep.com
<Directory /home/johannes/public_html/sleep.com>
Require all granted
</Directory>
</VirtualHost>

etchosts.conf -tiedostosta löytyy tuo aiemmin manuaalisesti lisäämämme virtual host-tiedosto:

127.0.0.1 localhost
#127.0.1.1 Laptop
127.0.1.1 http://www.testi.example.com
127.0.1.1 testi.example.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

hosts.sls -tiedosto viimeisenä sinetöimään tämä tehtävä:

deploy apache2 sites available hosts file:
file.managed:
– name: /etc/apache2/sites-available/example.com
– source: salt://hosts/hosts.conf

etc hosts file edit:
file.managed:
– name: /etc/hosts
– source: salt://hosts/etchosts.conf

Ajoin komennon läpi:

sudo salt ‘*’ state.apply hosts

ja tuloksena vihreää ja sinistä. Nais!

 

E) Tee tila, joka laittaa esimerkkikotisivun uusille käyttäjille. Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‘adduser tero’ komennolla käyttäjiä luodessa.

Aloitin luomalla index.html tiedoston salt-kansioon. Sinne kirjoitin vain: “Tämä on uuden käyttäjän esimerkkikotisivu!

Tämän jälkeen tein indexhtml.sls -tiedoston, jonne kirjoitin seuraavaa:

indexhtml

Tämä siis luo orjalle public_html -kansion etc/skel:iin, sekä kopion tuosta tekemästäni index.html -tiedostosta.

Ajoin komennon:

sudo salt ‘*’ state.apply indexhtml

Aluksi tuli virheilmoitus, joka johtui kirjoitusvirheistä, sekä siitä, että en ollut lisännyt sudoa mkdir -komentoon. Uusien ajojen myötä saan punaisena “failed” viestin, sillä tuo tiedosto on jo kertaalleen luotu, eikä sitä saa luotua uudestaan. En jaksa enää tässä vaiheessa keksiä tähän ratkaisua, sillä tehtäviin on nyt jo kulunut tuntitolkulla aikaa.

Testataan toimiko:

Loin uuden käyttäjän “johannestesti” ja luomisen jälkeen on aika testata nettiselaimella, onnistuiko skripti.

johannestesti

Ihmeiden aika ei ole ohi! Se toimii. En jaksanut tehdä mitään kunnollista “DOCTYPE html” -viritelmää, koska tämäkin ajaa asiansa näin testimielessä. Ymmärtääkseni tämä oli tehtävän tarkoitus ja näyttää toimivan.

 

Tehtävänannot osoitteesta:

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

 

 

Ensimmäinen tehtävä

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

Käytetty distro xubuntu 16.04.4

Aloitetaan ensin asentamalla SALT:

  • apt-get install salt-api
  • apt-get install salt-cloud
  • apt-get install salt-master
  • apt-get install salt-minion
  • apt-get install salt-ssh
  • apt-get install salt-syndic

Kaikkia ylläolevista ei tarvitse asentaa, mutta ainakin salt-master, salt-minion sekä salt-ssh tarvitaan tehtävän tekemiseen.

minion, eli orja ei tiedä vielä tässä vaiheessa kuka tai mikä on herra, joten käydään kertomassa se orjalle:

slave$ sudoedit /etc/salt/minion

masterin komennolla:

hostname -I

saadaan selville herran, eli masterin ip osoite, joka syötetään orjan tietoihin.

minionconfig

ctrl + x ja Y tallentaa muutokset tekstitiedostossa. Tämän jälkeen käynnistämme orjademonin, jotta muutokset tulisivat voimaan.

slave$ sudo systemctl restart salt-minion.service

Seuraavaksi hyväksymme tässä prosessissa muodostuneen avaimen orjalta herralle, jotta voimme herralla ohjata orjaa.

saltkey

Tässä näkyy kaksi avainta, herra ja orja. Tämä johtuu siitä, että ensin laitoin /etc/salt/minion tiedostoon orjan nimeksi herra, sillä luulin aluksi, että kummatkin tuossa tiedostossa muokattavat tietueet koskivat herraa, mutta ainoastaan ylempi tieto, eli master koskee herraa. Id-osio koskee orjaa. Huomasin tämän ja muutin uudeksi nimeksi orja. Herra jäi elämään, joten hyväksyin tässä tapauksessa kummatkin avaimet. Poistin myöhemmin herran komennolla:

johannes@Laptop:~$ sudo salt-run manage.down removekeys=True

Nyt SALT-stäkki on asennettu, on aika testata sen toimivuus antamalla komentoja:

master$ sudo salt ‘*’ grains.items

grainsitems

Ylläolevassa kuvassa pieni otanta komennosta. SALT toimii! Tässä vaiheessa on hyvä huomauttaa, että asensin sekä herran että orjan samalle koneelle.

 

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.

Tätä tehtävää varten, meidän pitää luoda uusille tiloille kansio. Mkdir srv/salt. Tänne tallennetaan jatkossa kaikki tilat, joita haluamme SALTin kautta luoda.

Loin tähän polkuun “background” kansion ja sinne “init.sls” tiedoston, jonka sisällä on seuraavaa:

/usr/share/xfce4/backdrops/xubuntu-wallpaper.png:
file:
– managed
– source: salt://background/saltstack.jpg

Tämän tilan tarkoitus on vaihtaa työpöydän taustakuva. Ylärivillä on määritelty ubuntun oletussijainti taustakuville. Source -kohdassa olen määrittänyt uuden polun taustakuvalle, jonka olen tallentanut tuohon kansioon.

sudosalt

Kuten kuvasta näkyy, ajamani komento toimii! Jos minulla olisi useampia orjia, voisin vaikuttaa niihin vaihtamalla komennon : ‘orja’  tilalle ‘*’.

 

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

Tein tämän kohdassa C, jossa testasin juuri grains-komennolla SALTin asennuksen toimivuutta.

Tässä muutamia esimerkkejä grains-komennoista

master$ sudo salt ‘*’ grains.items|less
master$ sudo salt ‘*’ grains.items
master$ sudo salt ‘*’ grains.item virtual

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

Tämä on käsittääkseni juuri, mitä tein kohdassa D, jossa vaihdoin SALTin avulla orjan taustakuvan.

Lähteet:

https://docs.saltstack.com/en/latest/topics/installation/ubuntu.html

http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux