Palvelin hallinta viikko 2 harjoitus 2 – Käyttäjien ja heidän kotisivujen lisääminen käyttäen Saltia.

Tämän viikon harjoitus löytyy Tero Karvisen Palvelin hallinnan sivuilta.

Harjoituksessa käyttämäni kone on MSI:n GX 640 (64-bit) kannettava tietokone ja koneeseen on asennettu käyttöjärjestelmäksi Linux Xubuntu 16.04.3 LTS (64-bit). Lisäksi käytän harjoituksessani DigitalOceanin  VPS:ää (1GB RAM, 25GB SSD, Ubuntu 16.04.3 x64) ja aiemmalla kurssilla luomaani 16.04.3 amd64-livetikkua.

Voit saada oman Xubuntu 16.04.3 LTS (64-bit) versiosi seuraavasta linkistä.

Aloitan harjoituksen tekemisen sunnuntaina 8.4.2018 klo 15.00.

Tämän viikon harjoitukset tulee ensin asentaa käsin ja testata niiden toiminta sen jälkeen ennen kuin toteutamme ne tekemällä Saltiin tila. Toteutettavat harjoitukset ovat seuraavanlaisia.

  1. Laita käyttäjien kotisivut toimimaan Apachella.
  2. Laita PHP toimimaan käyttäjien kotisivuilla.
  3. Tee Apachelle uusi nimipohjainen virtuaalipalvelin (name based virtual hosting). Tätä voidaan simuloida hosts-tiedoston avulla.
  4. Toteuta käyttäjien esimerkkikotisivu uusille käyttäjille siten, että se tulee automaattisesti käyttöön luodessasi uuden käyttäjän. Tämä onnistuu lisäämällä esimerkkisivun /etc/skel/:iin.

Ensin toteutan edellä mainitut harjoitukset kannettavalla tietokoneella livetikun avulla ja kun olen testannut niiden toiminnan, käynnistän koneen uudelleen ja aloitan niiden automatisoinnin.

klo. 15.10

Aloitetaan avaamalla terminaali ja päivittämällä paketit seuraavalla komennolla.

$ sudo apt-get update

Aloitetaan ensimmäiseksi luomalla koneen /etc/skel/:iin kansio ja oletussivu käyttäjiä varten. Tämä onnistuu seuraavilla komennoilla.

$ sudo mkdir /etc/skel/public_html

$ cd /etc/skel/public_html

$ sudoedit index.php

kuva_html

Kirjoitin html-tiedostoon lyhyesti ”Hello World!” ja koska harjoituksessa on myös PHP kohta, lisäsin sinne myös PHP:tä testaamista varten, tallensin ja poistuin. Tämän jälkeen voimme siirtyä seuraavaan kohtaan, eli käyttäjän luomiseen, jotta voimme heti testata kotikansiota, kun mahdollista. Käyttäjä lisätään seuraavalla komennolla.

$ sudo adduser testi

Kun luomme käyttäjiä, joudumme lisäämään heille salasanan ja nimen. Luon aina kaikille vahvan salasanan, joka on ainakin 8 merkkiä pitkä ja sisältää isoja sekä pieniä kirjaimia, numeroita ja symboleja.

Sitten voimme siirtyä Apachen asennukseen. Syötämme terminaalin komentoriville seuraavan komennon.

$ sudo apt-get install -y apache2

Asennuksen jälkeen testaamme, onko Apache asennettu käyttämällä seuraavaa komentoa.

$ firefox ”http://localhost/”

Jos selaimeen avautuu seuraava näkymä, Apachen asennus on onnistunut.

kuva_selain

Voimme muokata oletussivun näyttämään vaikka testisivua tämän testin ajan. Se onnistuu seuraavalla komennolla.

$ sudoedit /var/www/html/index.html

Poistettuamme kaiken alkuperäisen tekstin voimme korvata sen esimerkiksi ”Hello World!” tekstillä.

kuva_index

Tallennamme tiedoston ja poistumme. Tämän jälkeen meidän tulee sallia kotihakemiston luominen koneella. Tämä onnistuu seuraavalla komennolla.

$ sudo a2enmod userdir

Jotta tämä muutos tulee voimaan, meidän tulee käynnistää Apache-palvelin uudestaan seuraavalla komennolla.

 $ sudo systemctl restart apache2.service

Seuraavaksi laitamme PHP:n toimimaan käyttäjien kotisivulla. Tätä varten meidän tarvitsee asentaa php-kirjasto Apache-palvelimelle. Tämä onnistuu seuraavalla komennolla.

$ sudo apt-get install -y libapache2-mod-php

Asennuksen jälkeen muokkaamme juuri lisätyn kirjaston php-asetustiedostoa, jotta saamme PHP:n käyttöön myös käyttäjien kotikansioissa. Päästäksemme muokkaamaan asetustiedostoa, käytämme seuraavaa komentoa.

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

kuva_conf

Maalaamani IFModule täytyy kommentoida pois käytöstä käyttäen #-kommenttimerkkiä, jonka jälkeen tallennamme ja poistumme tiedostosta. Tämän jälkeen meidän tarvitsee käynnistää Apache-palvelin uudelleen, jotta muutokset tulevat voimaan. Se onnistuu seuraavalla komennolla.

$ sudo systemctl restart apache2.service

Tämän jälkeen voimme testata toimiiko käyttäjä, käyttäjän kotihakemisto ja -sivu ja PHP. Testaaminen onnistuu seuraavalla komennolla.

$ firefox ”http://localhost/~testi”

Onnistunut testi pitäisi tuoda selaimeen seuraavanlaisen näkymän.

kuva_selain1

Seuraavaksi laitamme nimipohjaisen virtuaalipalvelimen toimintaan. Käytämme tässä example.com-domainia, koska tämä on testitilanne. Aloitamme kopioimalla pohjan virtuaalista nimipalvelinta varten, jonka jälkeen muokkaamme sitä. Tämä onnistuu seuraavilla komennoilla.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/syltty-example-com.conf

$ sudoedit /etc/apache2/sites-available/syltty-example-com.conf

Muokkaamme tiedoston seuraavanlaiseksi.

kuva_conf2

Tämän jälkeen otamme muokkaamamme confin käyttöön seuraavilla komennoilla.

$ sudo a2ensite syltty-example-com.conf

$ sudo systemctl restart apache2.service

Seuraavaksi muokkaamme hosts-tiedostoa seuraavalla komennolla.

$ sudoedit /etc/hosts

kuva_hosts

Lisäsimme sinne tuon example.com sivun ja siihen eteen koneeni IP-osoitteen. En kuitenkaan näytä tässä oman koneeni IP-osoitetta. Tämän jälkeen voimme testata nimipohjaisen virtuaalipalvelimen toimintaa seuraavalla komennolla.

$ firefox ”syltty.example.com”

Jos edellä oleva näkymä avautuu selaimeen, on nimipohjaisen virtuaalipalvelimen luonti onnistunut.

kuva_selain2

Laita käyttäjien kotisivut toimimaan Apachella. (H2 kohta b)

klo. 17.00

Nyt voimme aloittaa Salt tilan automatisoinnin. Käynnistän siis kannettavan tietokoneen uudelleen livetikulla ja otan SSH-yhteyden VPS: n. Jos et ole jo määritellyt VPS Salt Masteriksi, voit käyttää samaa Kristian Syrjäsen ohjetta mitä itse käytin.

Testasin yhteyden toiminnan seuraavalla komennolla.

$ sudo salt ’*’ test.ping

kuva_ping

Kuvasta voisimme päätellä, että yhteys toimii. Tavoitteenamme on siis saada käyttäjien kotisivut toiminaan Apachella. Aloitin ensin luomalla master-koneeseen tarvittavat kansiot ja sen jälkeen loin tiedoston tilalle, jota lähdin muokkaamaan. Tämä onnistuu seuraavilla komennoilla.

$ sudo mkdir /srv/salt

$ sudoedit /srv/salt/apache.sls

Loin Masterilleni tilan nimeltä apache.sls, joka asentaa Apache2:n, vaihtaa oletussivun alkuperäisestä muokattuun, joka sijaitsee Saltin kansiossa apache2, sallii käyttäjille omat kotikansiot ja -sivut, ja käynnistää lopulta Apache2:n uudelleen.

apache_sls

Kun ajoin apache.sls tilan, suoritin sen komennolla.

$ sudo salt ’*’ state.apply apache

apache_ajo

Tilan ajo oli onnistunut. Suoritin vielä minionilla testin ja syötin komennon.

$ firefox ”http://localhost/”

selain4

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

Jotta saisimme PHP:n toimimaan käyttäjien kotisivuilla, meidän tarvitsee asentaa libapache2-mod-php koneelle. Tämän jälkeen muokkaamme seuraavaa tiedostoa ”/etc/apache2/mods-available/php7.0.conf”. VPS:ni oli jo aiemmin asennettu ja muokattu kyseinen tiedosto, joten kopioin sen suoraan saltin kansioon seuraavalla komennolla.

$ sudo cp /etc/apache2/mods-available/php7.0.conf /srv/salt/apache2

Seuraavaksi loin Masterilleni tilan nimellä php.sls, joka asentaa libapache2-mod-php:n, korvaa alkuperäisen php7.0.conf-tiedoston muokatulla tiedostolla ja lopulta käynnistää Apache2:n uudelleen.

php_sls

Kun ajoin php.sls tilan, suoritin sen komennolla.

$ sudo salt ’*’ state.apply php

php_ajo

Tilan ajo oli onnistunut. Loin nopeasti uuden PHP-tiedoston minionin käyttäjälle, jolla testasin nopeasti toiminnan. Avasin sen selaimessa komennolla.

$ firefox ”http://firefox/~xubuntu”

selain5

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

Jotta saisimme virtuaalisen nimipalvelimen toimimaan, meidän tarvitsee muokata kahden tiedoston konfigurointia (/etc/hosts ja /etc/apache/sites-available/000-default.conf). Loin uuden kansion nimeltä /srv/salt/virhost ja kopioin nämä edellämainitut tiedostot sinne seuraavilla komennoilla.

$ sudo mkdir /srv/salt/virhost

$ sudo cp /etc/hosts /srv/salt/virhost/syltty.conf

$ sudo cp /etc/apache2/sites-available/000-default.conf /srv/salt/virhost/hosts

Muokkasin hosts ja syltty.conf sisällön seuraavanlaiseksi.

syltty_conf

hosts

Sen jälkeen loin virhost.sls tiedoston Masterille, joka ensin korvaa hosts tiedoston muokatulla versiolla, ja kopioi sites-available hakemistoon syltty.conf tiedoston ja lopuksi käynnistää Apache2-palvelimen uudelleen.

virhost_sls.png

Kun ajoin virhost.sls tilan suoritin sen komennolla.

$ sudo salt ’*’ state.apply virhost

virhost_ajo

Tilan ajo oli onnistunut. Testasin vielä minionilla nopeasti virtuaalisen nimipalvelimen toiminnan seuraavalla komennolla.

$ firefox “http://syltty.example.com/”

selain6

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. (H2 kohta e)

Tässä on tarkoituksena luoda tila, joka luo kansion public_html ja sinne tiedoston index.html hakemistoon /etc/skel/. Aloitetaan luomalla skel.sls tiedosto.

skel_sls

Kun ajoin skel.sls tilan suoritin sen komennolla.

$ sudo salt ’*’ state.apply skel

skel_ajo

Tilan ajo oli onnistunut. Testasin vielä nopeasti luomalla uuden käyttäjän, kuten aiemmin ja tulostin ruudulle kuvan, jossa näkyy käyttäjä, polku ja siellä oleva index.html tiedosto.

kuva_terminaalista

Lopetan harjoituksen tekemisen sunnuntaina 8.4.2018 klo 22.35

Päivitetty 15.4.2018 klo 12.45

Unohdin harjoituksen päätteeksi tehdä vielä top.sls tilan, jonka voisi ajaa highstaten kautta. Luotuani top.sls tiedoston se näytti tältä.

top_sls

Luotuani tilan ajoin sen seuraavalla komennolla.

$ sudo salt ’*’ state.highstate

Tilan ajo ei onnistunut, koska useammassa sls-tiedostossa oli saman nimisiä tiloja. Löysin virhost.sls tiedostosta kohdan, joka vaikutti tähän joten poistin siitä muutaman rivin ja muokkasin sitä seuraavan näköiseksi.

uusi_virhost_sls

Tämän jälkeen ajoin tilan uudestaan seuraavalla komennolla.

$ sudo salt ’*’ state.highstate

top_ajo

Tilan ajo onnistui. Tätä ei kuitenkaan tarvitse lähteä testaamaan, koska jokainen tila on jo aiemmin erikseen testattu.

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.

Päätin tehdä tilan, joka asentaa sysstatin, tekee tarvittavat asetukset ja laittaa sen toimintaan. Tehdään kuitenkin ensin tämä käsin.

Aloitetaan asentamalla sysstat seuraavalla komennolla.

$ sudo apt-get -y install sysstat

Tämän jälkeen muokataan sysstatin asetuksista kohta Enabled false -> true seuraavalla komennolla.

@ sudoedit /etc/default/sysstat

Tämän jälkeen voimme käynnistää sysstatin seuraavalla komennolla.

$ sudo systemctl start sysstat

Nyt voimme automatisoida sysstatin asennuksen saltilla. Kopioidaan aluksi sysstatin asetustiedosto minionilta masterille seuraavalla komennolla.

$ sudo scp /etc/default/sysstat käyttäjä@ip-osoite:

Tämän jälkeen voidaan poistaa minionilta käsin sysstat seuraavalla komennolla.

$ sudo apt-get purge -y sysstat

Tämän jälkeen voimme siirtyä masterille ja siirtää asetustiedoston oikeaan kansioon, jonka jälkeen voimme luoda tilan sysstat.sls seuraavilla komennoilla.

$ sudo mv /home/ville/sysstat /srv/salt

$ sudoedit /srv/salt/sysstat.sls

Tämä tila asentaa sysstatin, vaihtaa minionin sysstat asetustiedoston masterilta löytyvään muokattuun asetustiedostoon ja asettaa ohjelman seurantatilaan.

sysstat_sls

Tallennettuamme sysstat.sls tiedoston voimme kokeillaa ajaa tilan seuraavalla komennolla.

$ sudo salt ’*’ state.apply sysstat

sysstat_ajo

Tilan ajo onnistui. Voimme myös testata samantien minionilla toiminnan, kuten kuvasta näkyy.

Lähteet:

Tero Karvisen nettisivut: http://terokarvinen.com/2018/aikataulu-–-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

Kristian Syrjäsen ohjeet Saltin asentamiseen: https://ksyrjanen.me/2018/04/01/palvelinten-hallinta-harjoitus-1/

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

w

Muodostetaan yhteyttä palveluun %s