Tehtävänanto saatiin Tero Karvisen Palvelinten hallinta kurssilla 3.4.2018

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

Tehtävät:

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

a) Opiskele yllä aikataulussa olevat artikkelit. (Tätä lukutehtävää ei tarvitse raportoida). Luettava materiaali on kunkin tapaamiskerran kohdalla, esimerkiksi nyt “2. Package-file-server. […] Luettavaa: Karvinen 2018: Pkg-File-Service – Control Daemons with Salt..”

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

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

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

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.

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.

Käytän tehtävässä omaa kannettavaa tietokonettani:

Acer Aspire V3-571G

Intel Core i7

8GiB RAM

Käytän Linuxia livetikun avulla, johon on asennettu Xubuntu versio:

xubuntu-16.04.3-desktop-amd64.iso

Muistitikku 4GB USB muistitikku. Livetikku on tehty Linux palvelimet kurssilla keväällä 2018, tässä linkki tikun tekemiseen: https://katrilaulajainen.wordpress.com/2018/01/22/linux-h1-18-1-2018/

Salt minionin ja masterin asennus

Ennen muiden tehtävien aloitusta asennan koneelleni salt minionin ja masterin, jotta pystyn testaamaan saltin toimintaa. Teen livetikulla läksyni ja asennan samaan koneeseen minionin ja masterin.

Aloitin asentamalla salt-masterin komennolla sudo apt-get -y install salt-master.

salmasterasennus

Asennuksen jälkeen tarkistin salt-masterin ip osoitteen komennolla hostname -I. Ip osoitteen tarvitsemme salt-minionia varten.

hostIP

Avaan sen jälkeen salt-masterille palomuurit, vaikka olenkin livetikulla. Livetikulla ollessa en pysty käynnistämään konetta ja aktivoimaan uusia palomuuriasetuksia, mutta halusin silti sen vaiheen tehdä tässä kohdassa. Avaan portit 4505 ja 4506 komennoilla sudo ufw allow 4505/tcp ja sudo ufw allow 4506/tcp.

palomuurinavaus

Kun salt-master oli asennettu, asensin salt-minionin komennolla sudo apt-get -y install salt-minion.

saltminionasennus

Seuraavaksi menin muokkaamaan minion tiedostoa kansiossa /etc/salt. Pääsin kansioon komennolla cd /etc/salt. Siellä komennolla ls löysin minion tiedoston. Pääsin muokkaamaan tiedostoa komennolla sudoedit minion.

minionillemasteri

Minion tiedostossa lisäsin tiedoston loppuun masterin ip-osoitteen ja keksin id:n minionille.

Lisäsin siis rivit:

master: 192.168.11.5

id: katri

masteripjaid

Tallensin tiedoston ctrl + x, yes, enter.

Tiedoston muutosten jälkeen minion palvelu pitää käynnistää uudelleen, jotta muutokset tulevat voimaan. Tämä onnistui komennolla sudo systemctl restart salt-minion.service

restart

Komennolla sudo salt-key näen näkeekö master tämän uuden minionin. Minion näkyy Unaccepted Keys alla, joten kirjoitan komennon sudo salt-key -A ja kirjoitetaan y, jotta tämä minion siirtyy Accepted keys kohdan alle.

hyväksyttyavaimet

Nyt salt masterin ja minionin asennus tulisi olla valmis. Testaan vielä toimivuutta antamalla komentoja minionille. Annoin komennot sudo salt ‘*’ cmd.run ‘whoami’ ja sudo salt ‘*’ cmd.run ‘hostname -I’.

saltminiontoimii

Nyt siirryn itse tehtävien pariin.

Apachen asennus

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

Testasin käsin Apachen toimivuuden aikaisempien läksyjeni ohjeiden avulla, tarkemmat ohjeet Apachen ‘käsin’ asennukseen löytyy täältä: https://katrilaulajainen.wordpress.com/2018/02/06/linux-h3-1-2-2018/

Asennus käsin:

Testataan lähtötilanne. Kokeillaan toimiiko apache menemällä Firefox selaimeen ja kirjoitetaan localhost.

apache2eiasennettu

Tämä kertoo, ettei apachea ole asennettu. Aloitetaan komennolla sudo apt-get install apache2.

Apache asennus

Testataan uudestaan selaimella localhost.

Apache toimii

Kokeillaan seuraavaksi käyttäjän kotisivuja selaimessa localhost/~xubuntu

notfound

Tässä vaiheessa laitan userdir päälle komennolla sudo a2enmod userdir. Tämän vaatii apachen uudelleenkäynnistyksen komennolla sudo systemctl restart apache2.service.

Tämän jälkeen testataan uudestaan sivua. Nyt html sivu näkyy.

xubuntutoimii

Asennus automaatiolla:

Valmiina minulla on jo käyttäjän xubuntu public_html kansiossa index.html tiedosto. Apache on vielä asennettuna käsin kokeilusta.

Aloitin luomalla masterille srv kansion komennolla sudo mkdir -p /srv/salt. Tähän juuri luotuun kansioon loin vielä kansion nimeltä apache.

Menin apache kansioon komennolla cd apache ja siellä loin tiedoston init.sls komennolla sudoedit init.sls. Tähän init.sls tiedostoon tulisi kirjoittaa rivit, jotka: asentavat apache2 paketin, laittaa a2enmod userdir asetuksen päälle sekä käynnistää apache2 uudestaan. Katsoin Tero Karvisen ohjeesta tarvittavat rivit tähän tiedostoon: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

apache2salttiedosto

Ennen kun testaan tämän uuden tilan toimintaa, poistan apache2 paketin komenolla sudo apt-get purge apache2 apache2-bin apache2-data apache2-utils. Hyväksyn komennon y.

apachepurge

Testataan toimiiko Apache enää, menen selaimeen ja kirjoitan localhost.

apache2eiasennettu

Tämä kertoo, ettei Apache toimi.

Nyt ajetaan tämä uusi tila komennolla sudo salt ‘katri’ state.apply apache

Komento meni läpi. Nyt voimme testata toimivatko käyttäjän kotisivut menemällä Firefox selaimeen ja kirjoittaa localhost/~xubuntu. 

apachetoimii

Näyttäisi toimivan.

PHP asennus

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

Asennus käsin:

Php:n ‘käsin’ asennuksen tein myös aikaisempien läksyjen ohjeiden mukaan: https://katrilaulajainen.wordpress.com/2018/02/06/linux-h3-1-2-2018/

Voimme aluksi testata toimiiko php lisäämällä php koodia käyttäjän xubuntu index.html tiedostoon ja tallentamalla se index.php muotoon.

php eitoimi

Asennan php ensin komennolla sudo apt-get install php libapache2-mod-php. Sen jälkeen käyn muokkaamassa php7.0. conf tiedostoa ja lisään vaaditut risuaidat.

Ja tämän jälkeen vaaditaan taas uudelleenkäynnistys sudo systemctl restart apache2.service.

Testaan sen jälkeen uudestaan php kotisivua.

phptoimiisalt2.png

Asennus automaatiolla:

Jatkoin tuon aikaisemman tehtävän init.sls tiedoston kanssa. Muokkasin alkuun apache2 asennuksen lisäksi asennettavaksi libapache2-mod-php paketin.

phpinit

Seuraavaksi etsin php asetustiedoston, josta pitää käydä muuttamassa viimeiset neljä riviä, jotta php toimisi. Menen komennolla cd /etc/apache2 kansioon ja komennolla grep -ir php etsin mods-available/php7.0.conf tiedoston. Kopioidaan tämä tiedosto /srv/salt/apache kansioon.

phpkonftiedosto

Nyt kun tiedosto on apache kansiossa, voimme muokata ne neljä riviä oikeaan muotoon, jotta php toimisi käyttäjien kotisivuilla. Komennolla sudoedit php7.0.conf voin muokata tiedostoa.

php7confmuokkaus

Tämän jälkeen palataan vielä init.sls tiedostoon ja muokataan sinne tarvittavat rivit.

phpinit

Ennen tilan käynnistämistä testaan toimiiko php käyttäjillä. Menen käyttäjän xubuntu public_html kansioon ja muokkaan siellä index.html tiedostoa lisäämällä sinne php koodia. Tallennan index.html tiedoston nimellä index.php. Kokeilen toimiiko php menemällä Firefox selaimeen ja localhost/~xubuntu.

php eitoimi

Nyt laitan uuden tilan toimintaan komennolla sudo salt ‘katri’ state.apply apache.

phptoimiisalt

Nyt testaan uudestaan localhost/~xubuntu

phptoimiisalt

Apache nimipohjainen virtuaalipalvelin

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

Asennus käsin:

Teen ensiksi käsin. Menen komennolla cd /etc kansioon ja siellä komennolla sudoedit hosts muokkaan hosts tiedostoa. Lisään tiedostoon uuden rivin 127.0.0.1 http://www.katritesti.example.com. Tallennetaan ctrl+x, y, enter.

hosts

Seuraavaksi testataan toimiiko tämä uusi osoite: http://www.katritesti.example.com

www.katritesti.example.com

Asennus automaatiolla:

Seuraaksi tehdään uusi state(tila). Mennään salt masterin kansioon cd /srv/salt/apache. Luodaan sinne uusi tila komennolla sudoedit name.sls. Lisätään sinne seuraavat rivit:

name.sls

Sen jälkeen kopioidaan hosts tiedosto vielä tänne /srv/salt/apache kansioon.

hostskopiointi

Sen jälkeen voimme poistaa hosts tiedostosta http://www.katritesti.example.com

poisto

Kokeillaan nyt ennen tilan ajamista http://www.katritesti.example.com

katrisivueitoimit

Sen jälkeen ajetaan uusi tila komennolla sudo salt ‘katri’ state.apply apache/name ja testataan http://www.katritesti.example.com

hostnametoimiistate

 

SKEL

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.

Asennus käsin:

Tehdään ensin käsin. Mennään /etc/skel kansioon ja luodaan siellä kansio public_html. Luodaan public_html kansioon index.html tiedosto. Kirjoitetaan tiedostoon Hello World ja tallennetaan ctrl+x, y ,enter.

skelkansio

Nyt testataan toimiiko skel, luomalla uusi käyttäjä testi komennolla sudo adduser skel. Nyt kun menen Firefox selaimella localhost/~skel tulisi avautua html sivu missä lukee Hello World!.

skeltoimiikäsin

Näyttäisi toimivan.

Asennus automaatiolla:

Sitten automatisoinnilla. Luodaan /srv/salt kansioon ensiksi public_html kansio ja sen sisään index.html tiedosto. Kirjoitin tiedostoon Hei Maailma! Sen jälkeen tein kansion skel /srv/salt alle komennolla sudo mkdir skel ja skel kansion sisään tiedoston skel.sls komennolla sudoedit skel.sls. Lisätään tiedostoon seuraavat rivit.

skelstate

Tallennetaan ctrl + x, y, enter.

Poistetaan nyt tuolta /etc/skel kansiosta tuo public_html kansio ja testataan sen jälkeen skel uudella käyttäjällä.

skeleitoimi

Sen jälkeen laitetaan tuo uusi state toimintaan komennolla sudo salt ‘katri’ state.apply skel/skel. Luodaan nyt uusi käyttäjä ja testataan localhost/~testitesti

skeltoimiistate1

Eri asetuksia Package-File-Service tilalla

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 kokeilla VirtualHostin avulla, että saisin käyttäjän testi kotisivun näkymään suoraan sivulla testi.example.com. Huomasin, että ryhmäläiseni Jami Jernvall oli tehnyt jo samanlaista testailua, joten katsoin hänen ohjeistaan apua: http://jernvall.com/2018/04/05/viikko-2-palvelinten-hallinta/

Asennus käsin:

Luodaan aluksi käyttäjälle testi testi.com kansion public_html kansioon komennolla mkdir testi.com. Siirrän komennolla mv index.html testi.com kansioon.

Sen jälkeen menen komennolla cd /etc/apache2/sites-available kansioon ja teen siellä uuden tiedoston sudoedit testi.conf.

Lisään tiedostoon seuraavat rivit

testiconf

Tallennus ctrl+x, y, enter.

Sen jälkeen annan komennon sudo a2ensite testi.conf ja tämän jälkeen apachen uudelleen käynnistys sudo systemctl restart apache2.service.

Sen jälkeen mennään vielä hosts tiedostoon komennolla cd /etc ja siellä tiedoston muokkaus sudoedit hosts. Lisätään seuraavat rivit.

hosts

Sitten voimme testata toimiiko http://www.testi.example.com

testitoimii

Asennus automaatiolla:

Aloitin luomalla vp.conf tiedoston /srv/salt/apache kansioon komennolla sudoedit vp.conf. Lisäsin seuraavat rivit

virtualhost

Sen jälkeen menen lisäämään hosts tiedostoon /srv/salt/apache kansiossa seuraavat rivin 127.0.0.1 testi.example.com

hosts

Tämän jälkeen loin testi kansion /srv/salt kansioon ja testi kansioon tein tiedoston komennolla sudoedit testi.sls. Lisäsin tiedostoon seuraavat rivit

state

Kiitos Jamin, sain tarvittavat rivit!

Seuraavaksi ajoin tilan komennolla sudo salt ‘katri’ state.apply testi/testi ja testasin testi.example.com sivua.

virtualhosttoimii

LÄHTEET:

Karvinen, Tero: Oppitunnit 2018-4-5., Palvelinten hallinta-kurssi

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

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

http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

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

https://jkjournalblog.wordpress.com/2018/04/06/ict4tn022-4-kotitehtava-number-2/

 

 

 

 

 

 

 

 

 

 

 

Advertisements