LEMP asennus saltilla v2

Moduuli löytyy edelleen linkistä: https://github.com/lauripmattila/LEMP

Päivitetyssä versiossa on korjattu mysql salasana virhe, lisätty ssh asennus sekä yhden virtual palvelimen asennus nginx:ään. Moduulia testattiin livetikulla, jossa pyöri xubuntu 16.04.03 64bit versio.

Advertisements

LEMP asennus saltilla lopputyö

Palvelinten hallinta H6

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

Moduuli löytyy : https://github.com/lauripmattila/LEMP

Moduuli asentaa nginx, joka on http-palvelinohjelma, sekä mysql-tietokannan ja aktivoi php moduulin nginx ohjelmassa, jolloin php sivut toimivat.

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

Kokeilin moduulia omalla koneellani livetikulla, jossa pyörii xubuntu 16.04.03 64bit versio. Nginx, php sekä mysql asennus onnistui ja testasin niiden toimivuuden. Ainoa ongelma joka ilmeni oli, että en päässyt kirjautumaan mysql, koska salasana on väärä.

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.

Tilan käyttäjiä ovat mahdollisesti henkilöt, jotka haluavat asentaa LEMP stackin monelle koneelle nopeasti ja vaivattomasti.

Mysql asennus pitää vielä korjata, jotta  salasana toimii ja salasana annettaisiin pillarien kautta, jotta kaikki eivät näe sitä. Virtuaalipalvelimien lisäys olisi myös vielä tarkoitus tehdä.

 

Tehtävänanto: Tero Karvinen palvelinten hallinta H6

Lähteet:

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04

https://www.digitalocean.com/community/tutorials/saltstack-infrastructure-creating-salt-states-for-mysql-database-servers

 

 

Salt pillars

Palvelinten hallinta H4

Tämän harjoituksen tekemiseen käytin omaa pöytätietokonettani, jossa oli livetikulta xubuntu 16.04 64bit sekä digitalocean sivustolta vuokrattua palvelinta jossa on myös xubuntu 16.04 64bit. Pöytätietokone on määritelty orjaksi ja digitalocean palvelin toimii sekä orjana että herrana.

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.

Loin init.sls tiedoston, joka luo tiedoston accountname.txt kansioon /tmp/secret, jossa näkyy henkilöiden heikki ja pertti käyttäjätunnukset.

binit.png

Loin tiedostonpohjan muuttujalle /srv/salt/salainenh4b/ kansioon.

btxt.png

Top tiedosto pillar kansiossa määrittelee kummallekkin orjalle oikeat muuttujatiedostot.

btop.png

Luodaan kummallekkin käyttäjälle sls tiedosto pillar kansioon, jossa heidän muuttujansa määritellään.

busers.png

Ajetaan tila.

bsuccess.png

Tilan ajaminen onnistui ilman virheitä ja tiedostot löytyvät kummaltakin koneelta oikeilla tiedoilla.

btulos.png

pillar_items.png

pillar.items komento näyttää oikeat muuttujat orjilla.

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.

Loin init.sls tiedoston joka luo tiedoston salaisuuksia.txt johon tulee oletusarvona none jos muuttujaa ei ole määritelty pillar kansiossa.

cinittxt.png

Top.sls tiedosto pillar kansiossa määrittelee orjalle poyta muuttujatiedoston secret.sls

ctop.png

Secret.sls tiedostossa on määritelty salainen muuttuja.

csecret.png

Ajetaan tila.

csuccess.png

Tilan ajo onnistui ja ensimmäiselle orjalle muuttujaksi tuli supersalaisuus, joka oli salattu muuttuja ja toiselle orjalle muuttujaksi tuli oletusarvo.

ctmp.png

Lähteet:

Tero Karvinen H4 tehtävänanto

Salt jinja

Palvelinten hallinta H3

Tämä harjoitus suoritettiin virtuaalipalvelimella joka on vuokrattu digitaloceanista. Palvelimella on käyttöjärjestelmänä xubuntu 16.04.3 LTS. Olen aikaisemmissa harjoituksissa asentanut salt ympäristön palvelimelle, joten sitä ei tarvinnut asentaa.

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

Loin tiedoston number.txt. Aluksi käytin tiedostossa “not” muuttujaa mutta kuten alempana mainitsen niin se ei toiminut.

number2.PNG

not.PNG

Ylläoleva virhe tuli kun käytin muuttujana sanaa “not” sls ja tekstitiedostossa, mutta kun muutin sen “not” -> “number”, kuten alla olevassa kuvassa näkyy niin tiedoston ajaminen onnistui.

number.PNG

b.PNG

Tiedoston ajo onnistui.

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

Loin SLS-tilatiedoston, käyttäen for-in-silmukkaa, joka luo tiedostot hello1, hello2 ja hello3 kansioon /tmp/jinja/. SLS-tilatiedosto  sisältää myös kontekstimuuttujan.

jinjac.PNG

Tiedosto hello.txt sisältö, jossa on kontekstimuuttuja.

chello.PNG

Ajetaan hello1.sls tilatiedosto.

c.PNG

Ajaminen onnistui ja kaikki 3 tiedostoa löytyvät /tmp/jinja/ kansiosta.

ccat.PNG

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.

Loin SLS-tilatiedoston, joka ensin varmistaa, että ssh palvelin on asennettu koneelle, jonka jälkeen tämä korvaa nykyisen sshd_config tiedoston halutulla versiolla, johon on määritelty portti 8888 muuttujan avulla. Lopuksi tiedosto tarkistaa, että jos muutoksia on tullut tiedostoon sshd_config, niin ssh käynnistetään uudelleen.

sshsls.PNG

Kopioin valmiin sshd_config tiedoston ja annoin portille muuttuja nimeltä “port”.

sshd_config.PNG

Koska pystyn käyttämään palvelinta vain ssh yhteydellä, joudun jättämään asennuksen testauksen väliin. Ajetaan tiedosto.

sshd.PNG

Openssh-server oli jo valmiiksi koneella. Sshd_config tiedostossa portti muuttui 8888 ja ssh käynnistyi uudelleen. Minun ssh yhteys palvelimeen ei katkennut uudelleenkäynnistyksen yhteydessä mistä yllätyin.

Seuraavaksi varmistetaan, että portti vaihtui ja yritetään muodostaa ssh yhteys.

sshsucc.PNG

Ssh yhteys saatiin luotua porttiin 8888, mutta ei 22.

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.

Päätin kokeilla Valtteri Partasen tekemää SLS-tilatiedostoa, joka luo varmuuskopion käyttäjän kotihakemistosta, kun se ajetaan sekä 24 tunnin välein.

backupsls.PNG

Ajetaan tiedosto.

backup.PNG

Tiedoston ajo onnistui, mutta tar tiedostoa ei löytynyt kotikansiosta, johon tar tiedoston pitäisi mennä.

backupl.PNG

Lähteet:

Tero Karvinen H3 tehtävänanto

Valtteri Partanen blogi

Salt apache harjoittelua

Palvelinten hallinta H2

Tämä harjoitus suoritettiin virtuaalipalvelimella, jossa on käyttöjärjestelmänä xubuntu 16.04.3 LTS.

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

Poistetaan vanha apache asennus komennolla

sudo apt-get purge apache*

Komentoa ei kannata ajaa ellei ole täysin varma mitä on tekemässä. Kun apache on poistettu, luodaan kansio /srv/salt/apache ja tämän sisälle init.sls tiedosto.

apache2.PNG

Tämän jälkeen ajentaan komento

sudo salt ‘*’ state.apply apache

apacheinstall.PNG

5 onnistunutta ja 0 epäonnistunutta tapahtumaa. Testataan vielä että toimiiko käyttäjän kotisivu. Luodaan manuaalisesti public_html kansio sekä index.html tiedosto käyttäjän kotihakemistoon ja testataan avata selaimella.

public_html.PNG

Sivu toimii.

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

Luodaan php.sls tiedosto srv/salt/apache kansioon.

phpsls.PNG

Ajetaan tiedosto

phpinstall.PNG

Testataan vielä toimiiko php sivu.

phptest.PNG

Php sivu toimii. PHP sivun koodi löytyy tehtävästä C

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

Ensin lisätään /etc/hosts tiedostoon rivi

127.0.0.1 salttest.com

Tämän avulla voidaan testata nimipalvelun toimivuus.

Tämän jälkeen luodaan asetustiedosto virtuaalipalvelimelle.

salttestconf.PNG

Luodaan sls tiedosto joka siirtää virtuaalipalvelin asetustiedoston oikeaan paikkaan ja samalla poistaa 000-default.conf tiedoston jolla saadaan pois ohjelman oletusasetukset. Tämän jälkeen apache2 käynnistetään uudelleen jos muutoksia tehtiin tiedostoon salttest.com.conf.

virtualhostsls.PNG

Ajetaan virtualhost.sls tiedosto.

virtualhostinstall.PNG

Testataan curlilla aukaista sivu.

virtualhosttest.PNG

Sivun avaus onnistui.

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.

Luodaan tiedosto public_html.sls sekä index.html srv/salt/apache kansioon.

public_htmlslss.PNG

index.PNG

Ajetaan public_html.sls

public_htmlsls.PNG

Luodaan käyttäjä “salttest” ja avataan selaimella tämän kotisivu.

salttest.PNG

 

f) Eri asetukset. Tee Package-File-Service tilalla eri asetuksia kuin ne, mitä tehtiin tunnilla; ja eri kuin mitä teit/teet h2 muissa kohdissa. Voit muuttaa jotain toista asetusta samoista demoneista tai valita kokonaan eri demonit.

Tein skriptin, joka asentaa sysstat ohjelman ja koska ohjelma on oletuksena poissa päältä niin tämä skripti myös aktivoi sen heti ja käynnistää uudelleen.

sysstatsls.PNG

sysstatconfig.PNG

sysstatinstall.PNG

Asennus onnistui ja sitten testataan, että ohjelma toimii

sarrun.PNG

 

Lähteet:

Terokarvinen.com

https://saltstack.com/

Palvelinten hallinta H1

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

Päätin asentaa salt master ja slave ohjelmat samalle palvemille, jonka vuokrasimme linux palvelimet kurssilla.

sudo apt-get install -y salt-master salt-minion salt-ssh

Orjalle määritellään herra tiedostosta /etc/salt/minion. Laitoin herran osoitteeseen 127.0.0.1, eli samaan koneeseen ja id on suolakaivos.

saltminion.PNG

Tämän jälkeen käynnistetään salt minion uudestaan. Tämän jälkeen varmistetaan että avain näkyy, jonka jälkeen hyväksytään se. saltkey.PNG

Tämän jälkeen varmistetaan, että ohjelma toimii ja ajetaan komento. saltcmd.PNG

Suoritin whoami komennon ja salt suorittaa komennot root käyttäjällä, jolloin käyttäjänä näkyy root eli ohjelma toimii.

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.

Loin top.sls tiedoston, sekä users.sls tiedoston jonka top suorittaa vähän väliä automaattisesti.

salttiedostot.PNG

Ennen kuin ajetaan top.sls, niin varmistetaan, että users.sls toimii. saltapply.PNG

Tämän jälkeen kokeillaan toimiiko top.sls

salttop.PNG

Top.sls toimii eli palvelin tarkistaa puolen tunnin välein, että /home/lauri/users kansiossa on tekstitiedosto nimeltä userlist.txt, jossa on käyttäjät lauri ja root.

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

Laitetiedot saa helposti kerättyä komennolla

sudo salt ‘*’ grains.items

saltgrain.PNG

Komenolla tulee pitkä lista koneen tiedostoista.

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

Tein programs.sls tiedoston joka asentaa nmap sekä ack ohjelmat.

saltprograms.PNG

Testataan sen suorittaminen.

programs2.PNGprograms3.PNG

Ja suoritus onnistui.

Lähteet:

terokarvinen.com

https://github.com/joonaleppalahti/CCM/tree/master/salt/srv/salt

https://saltstack.com/