Viikko 2, Package-file-server

Viikolla 2. en päässyt tiistain lähiopetustunneille ja tarkoitukseni oli käydä torstain tunneilla. Torstain tunnit oli kuitenkin peruttu, joten joudun tekemään tehtävät ilman lähiopetusta. Tehtävänantoja oli kaksi riippuen kummassa ryhmässä opiskelen. Yritän tehdä tiistain-ryhmän tehtäviä sovellettuna torstain ryhmän tehtävillä. Ennen tehtävien aloitusta tein kannettavastani taas orjan DigitalOcean palvelimelleni edellisen viikon ohjeiden mukaan.

Suraavaksi kertasin  Apache palvelimen asentamisen orjakoneelle manuaalisesti. Apuna käytin omaa Linux palvelimet-kurssin sivustoa.

Asenna SSH eri porttiin Package-File-Service rakenteella

Ohjeena käytin Tero Karvisen kotisivuja.

Aluksi tein ohjeen mukaan sshd.sls tiedoston.

cat.PNG

Tämän jälkeen kävin muuttamassa isäntäkoneen asetuksia tiedostossa ohjeiden mukaan:

/etc/ssh/sshd_config

Tämän jälkeen kopioin sshd_config tiedoston polkuun:

sudo cp /etc/ssh/sshd_config /etc/salt

Tämän jälkeen ajoin komennon

sudo salt ’*’ state.apply sshd

Se meni muuten hyvin mutta loppuun tuli virheilmoituksia:

virhe1.PNG

Eli sshd_config tiedostoa ei löytynyt Masterilta. Hetken tuumailtuani huomaisin, että olin kopioinut tiedoton väärään paikkaan /etc/salt. Poistin sen etc-kansiosta:

sudo rm sshd_config

Ja kopioin sen uudelleen

sudo cp /etc/ssh/sshd_config /srv/salt

Jonka jälkeen herjoja ei tullut.

Yrittäessäni kokeilla ohjeen mukaisia komentoja ssh portin testaamiseen en saanut vastausta tai pääsy oli kielletty, eli en onnistunut asennuksessa… Yhtenä ongelmana on varmaankin, etten saanut ssh-palvelua käynnistymään uudelleen. Tätä pitää vielä tutkia myöhemmin…

Apache asennus

Ohjeet löytyy Tero Karvisen kotisivuilta.

Aluksi tehdään oma kansio Apachelle Salt hakemistoon:

sudo mkdir /srv/salt/apache

Ohjeessa oli kaksi tapaa tehdä State-tiedosto. Käytin ohjeen jälkimmäistä tapaa.

apache.PNG

Ohjeen mukaan palvelimen asennuksen manuaalisessa testivaiheessa olin selvittänyt että komento

a2enmod userdir

muokkasi tiedostoja mods-enabled/userdir.conf ja mods-enabled/userdit.load. Tämän takia State-tiedostossakin tehtiin niihin muutoksia. Ajoin tiedoston komennolla:

sudo salt ’*’ state apply apache

Seurauksena pelkkää virheilmoitusta:

virhe2.PNG

Kävin tutkailemassa /apache/init.sls tiedostoa ja huomasin että 1. riviltä puuttui : apache2 jälkeen

Kävin muuttamassa 1. rivin muotoon apache2: ja tein state-komennon uudelleen.

Sen jälkeen testasin orjakoneella toimiiko Apache:

html.jpg

Kävin myös katsomassa orjalta miten index.html näkyy hakemistossa:

tervemaailma.PNG

Testasin vielä mitä tapahtuu kun muutan masterilla default-index.html- tiedostoa ja ajan uudelleen state-komennon. Ajon jälkeen tuli yksi ilmoitus muutoksista masterille:

salt muutos.PNG

Ja muutos näkyi myös orjalla:

html2.PNG

PHP

Seuraavaksi kokeilin saanko PHP:n toimimaan kotisivulla. Tein asennuksen aikaisemman kurssin ohjeen mukaan. Kun olin lopulta saanut kommentoitua  tiedostosta mods-available/php7.0.conf viimeiset rivit pois, en meinannut vieläkään saada PHP:tä toimimaan. Lopulta huomasin että Apache pitää käynnistää uudelleen, että muutokset tulevat voimaan:

sudo service apache2 restart

php selaimessa.PNG

Ja jäätävä ohjelma:

php.PNG

Eli PHP:n sennuksen yhteydessä pitää käydä kommentoimassa mods-available/php7.0.conf  tiedoston 3. viimeinen rivi muotoon:

#   php_admin_flag engine off

ja käynnistää apache uudelleen. Seuraavaksi poistin orjalta äsken asentamani PHP-paketit.

Suraavaksi latasin Masterille paketit ja kävin muokkaamassa PHP:n .conf tiedostoa ja kommentoimassa tarvittavan rivin pois ja kopioin sen luomaani salt/php-hakemistoon.

muokkaus.PNG

sudo cp /etc/apache2/mods-available/php7.2.conf /srv/salt/php

Suraavaksi tein init.sls tiedoston PHP-juureen:

1.versio virheellä.PNG

Kun ajoin ohjelman niin sain virheilmoituksen:

virhePHP.PNG

Eli php.7.2.conf tiedostoa ei löydy orjalta. Eipä tietenkään, koska olin käskenyt nimetä orjalle sen tuolla init.sls-tiedostossa  ”php7.0.conf”. Muutin viimeisen rivin muotoon:

file: /etc/apache2/mods-available/php7.0.conf

Ennen php:n ajoa sivu näkyi väärin:

väärin menee.PNG

Seuraavaksi vielä ajetaan php uudestaan

sudo salt ’*’ state.apply php

reestartti.PNG

Ja nyt kaikki näytti hyvälle, orjakin käynnistyi uudelleen ja PHP toimii.

toimii.PNG

Lopuksi

Tehtävien tekeminen vaati paljon aikaa, koska viikon teoriatunnit jäivät kokonaan väliin. Materiaaliin tutustumisen ja tehtävien tekoon käytin varmaankin noin 15 tuntia pitkin viikkoa. Suurena apuna oli aikaisempien kurssien tehtäväpalautukset.

Lähteet:

http://terokarvinen.com/

https://lahdemi.wordpress.com/2018/04/08/2-viikkotehtava-palvelinten-hallinta/

https://jernvall.com/2018/04/05/viikko-2-palvelinten-hallinta/

Palvelinten hallinta, tehtävä 1

Tehtävänä on asentaa Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Kokeile suorittamalla salt:illa komentoja etänä. Kun koneet on asennettu on takoituksena testata erilaisia komentoja ja kerätä tietoja orjakoneesta.

Käytetyt koneet ja alustavat toimenpiteet

Aloitin tehtävän luomalla palvelimen DigitalOcean palveluun. Käyttöjärjestelmäksi valitsin Ubuntu 18.04. Tästä koneesta on tarkoitus tehdä Salt Master ja hallita sillä kannettavaa tietokonettani, jota käytän livetikulla. Oma vanha sotaratsuni on:

Fujitsu Lifebook  AH531, i3-2328M, Windows 7, Livetikulla: Xubuntu 16.4.

Tämän jälkeen lueskelin muutaman aikaisemman kurssin palautuksia läpi ja katsoin minkälaisia ratkaisuja muut ovat tehneet.  Tero Karvisen sivujen lisäksi käytin myös Miko Lähdesmäen sivustoa apunani.

Salt Masterin asennus verkkopalvelimeen

Apuna asennuksessa käytin kurssin opettajan kotisivun ohjetta. Aluksi asennetaan salt-master ohjeen mukaan:

sudo apt-get update

sudo apt-get -y install salt-master

Koska palvelimella oli vain SSH-portti (22) auki, avasin myös Saltin käyttämät portit:

sudo ufw allow 4505

sudo ufw allow 4506

Tarkastin vielä palomuurin tilanteen:

sudo ufw status

scrot3.gif

Orjan asentaminen

Tehdään omasta kannettavasta orja (minion).

sudo apt-get -y install salt-minion

Seuraavaksi kerrotaan missä IP-osoitteessa Salt Master on ja annetaan orjalle identiteetti, eli muokataan tiedostoa orjalla:

sudoedit /etc/salt/minion

master: tähän.tulee.masterin.ip
id: Minion_Sepp

Ja käynnistetään orjan salt- palveluprosessi uudelleen, jotta muutokset tulee voimaan.

sudo systemctl restart salt-minion.service

Seuraavaksi annetaan avain Masterilta:

sudo salt-key -A

kuva2.jpg

Testasin Masterilla mitä orjia löytyy.

sudo salt-key –list-all

kuva3.jpg

Harjoituksia

Testasin muutamalla komennolla miten yhteys toimii. Apuna käytin taas Tero Karvisen sivuja josta kokeilin kaikkia komentoja. Komennoilla sai paljon tietoa orjakoneesta. Esimerkiksi:

sudo salt ’*’ grains.items

Näytti mm. tietoja itse koneesta

cpu_model:Inte l(R) Core(TM) i3-2328M CPU @ 2.20GHz

productname:LIFEBOOK AH531

osfinger:Ubuntu-16.04

Harjoitukset jatkuivat seuraavana päivänä ja tein uuden orjan käynnistäessäni livetikun uudelleen. Masterina toimi eilen luotu palvelin. Masteria käytin tänään toiselta kannettavalta kirjautumalla palvelimelle Putty:n avulla.

Seuraavaksi testasin muita kurssin harjoituksia. Aluksi tein .txt tiedoston jonka halusin kopioida orjalle. Aluksi pitää tehdä salt-kansio Masterille, josta se hakee ohjeet

sudo mkdir -p /srv/salt/

Kansioon tein yksinkertaisen terve.txt tiedoston:

sudoedit /srv/salt/terve.txt

teksti.PNG

Tämän jälkeen tein kansioon hello.sls tiedoston jossa ohjeet Masterille mitä pitää tehdä

sudoedit /srv/salt/hello.sls

hello.PNG

Komennolla, joka koskee kaikkia orjia (’*’):

sudo salt ’*’ state.apply hello

Salt käy kurkkaamassa /salt-kansiosta hello.sls tiedoston sisällön ja jonka ohjeen mukaan orjien /tmp kansioon tehdään terve.txt-tiedosto, jonka sisältö haetaan Masterin salt-kansiosta (srv/salt/)

teksti 2.PNG

Kävin tarkastamassa orjan tmp-kansion ja tiedosto löytyy sieltä. Alinpana oleva varoitus kertoo, ettei eilen tekemääni orjaa tavoitettu.

Seuraavaksi luin tehtävänannon mukaan erilaisia esimerkkejä salt-asetuksia ja valitsin sieltä työpöydän asentamisen. Tein  tyoasema.sls tiedoston, jossa kerrotaan mitä ohjelmia asennetaan, kun saltilla annetaan komento ajaa tiedosto. Lisäsin sinne Gimpin.

tyoasema.PNG

Ajoin tiedoston komennolla

sudo salt ’*’ state.apply tyoasema

Käskyn jälkeen ei tapahtunut hetkeen mitään, joten keskeytin sen ctrl+z. Kokeilin käskyä uudelleen niin, että osoitin sen tänään luomalleni orjalle.

sudo salt ’Minion_Sepp_2’ state.apply tyoasema

Jolloin tuli seuraavanlainen ilmoitus:

ilmoitus.PNG

Eli paketit olivat asentuneet vaikka siitä ei ehtinyt tulla ilmoitusta onnistumisesta Masterille ja orjalla näkyikin kaikki ohjelmat, mitä olin laittanut asentumaan.

Muokkasin tiedostoa hieman, ja kokeilin uudelleen.

työasema.PNG

Ja hetken odoteltuani sain haluamani ilmoituksen:

ilmo2.PNG

State.highstate

Testailu jatkuu ja poistin muutamia asentamiani ohjelmiani ensin orjalta:

sudo apt-get –purge remove scrot vlc putty gimp

ja poistin vielä riippuvuudet joita asennuspakettien mukana on voinut tulla

sudo apt-get autoremove

Seuraavaksi kokeillaan asennusta, missä asennetaan paketteja automaattisesti useammalle koneelle ja orjat käyvät myös päivittämässä tietoja ajoittain. Ohjeet edelleen Tero Karvisen sivuilta. Aluksi luodaan top.sls tiedosto, josta ohjeet ja päivitykset haetaan ja sen lisäksi .sls tiedostot, jossa ohjeet ovat. Alla kolme tiedostoa: top.sls, oletus.sls ja verkko.sls. Ajettaessa top.sls, se asentaa kaikkiin koneisiin oletus.sls ohjelmat (gimp ja vlc-payer) ja orjaan jonka id on ’Minion_Sepp_2’ verkko.sls ohjelmat (putty)

tiedostot.PNG

Seuraavaksi haluan asentaa ohjelmat heti koneille, joten annan komennon

sudo salt ’*’ state.highstate

1.asenn.PNG

ilmo2.PNG

Eli kaikki ohjelmat asentuivat tänään luodulle orjalle ja eilistä orjaa ei luonnollisestikaan löytynyt. Tarkastin vielä orjakoneen ja ohjelmat löytyivät koneelta.

Lähteet:

http://terokarvinen.com

https://lahdemi.wordpress.com/2018/04/01/1-viikkotehtava-palvelinten-hallinta/

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

https://fi.wikibooks.org/wiki/Ubuntu_tutuksi/Komentorivi#Yleisimm%C3%A4t_komennot_pakettien_hallintaan

******************************************************

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

******************************************************