Vertaisarviointi

Teen erillisen vertaisarvioinnin kurssitovereideni moduuleista, sillä en työn takia ehdi tekemään sitä 17.5 Keskiviikkona kokeen jälkeen.

Valitsin kolme moduulia, mitä testaan sekä kommentoin

1) Lauri Miettinen -Videoeditointi ja nauhoitus moduuli

Ensimmäisenä testausvuorossa oli Laurin oma moduuli.

https://laurimiettinen1.wordpress.com/2017/05/16/lopputyon-raportti/

Moduulin tarkoituksena on helpottaa omien YouTube, Vimeo videoiden aloittamista, koska on aikaa vievää aloittaa ensin etsimään ohjelmat. Kun olin päättänyt lopputyön aiheen, aloitin selvittämään mitkä nauhoitus ja videoeditointiohjelmat ovat Xubuntu 16.04 64 bittiselle jakelulle tällä hetkellä parhaimmat. -Lauri

Testasin moduulia kloonaamalla hänen moduulinsa GitHubista:

https://github.com/LM42/video-editor-module

Ajoin puppet moduulin omalla terminaalillani. Tulos oli seuraava:

Notice: Compiled catalog for xubuntu.dhcp.inet.fi in environment production in 0.17 seconds
Notice: /Stage[main]/Test1/Package[blender]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test1/Package[guvcview]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test1/Package[openshot]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test1/Package[kazam]/ensure: ensure changed 'purged' to 'present'
Notice: Finished catalog run in 34.58 seconds

Moduuli siis toimii ainakin, Guvcview ei suostunut avautumaan minulla ( No video device was found )

Kaiken kaikkiaan moduuli on OK. Se tekee mitä sen on luotu tekemään, Cuvcview hiukan hankasi mutta muut kolme ohjelmaa toimivat.  Olisin ehkä toivonut hiukan enemmän moduulilta kuin vain pakettien asennuksen.

2) Ilari Huura – Musamoduuli

Seuraavaksi testasin Ilarin moduulia:

Tämän moduulin tarkoitus on asentaa käyttäjälle ilmaisia musiikin nauhoitus ja editointi ohjelmistoja. Näiden sovellusten avulla aloitteleva köyhä muusikko voi opetella kuinka musiiki nauhoitus ja editointi toimii. Moduuliin kuuluu seuraavat sovellukset: Lmms, Audacity, Guitarix jne. -Ilari

GitHubista löytyi toisaalta kylläkin tarvittava Puppet koodi, joten kopioidaanpas se omalle koneelle ja testataan:

https://github.com/PEELO1994/PEELO/blob/master/puppet/modules/musamoduuli/manifests/init.pp

Notice: /Stage[main]/Test2/Package[audacity]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test2/Package[guitarix]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test2/Package[lmms]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Test2/Exec[moi2]/returns: executed successfully
Notice: /Stage[main]/Test2/Exec[moi4]/returns: executed successfully
Notice: /Stage[main]/Test2/Exec[moi3]/returns: executed successfully
Notice: Finished catalog run in 31.81 seconds

Moduuli siis toimii myös, ainakin asennuksen perusteella. Guitarix ohjelma toisaalta ei avautunut itsellä, vaikka Puppet koodissa oli määritelty että se aukeaisi itsestään. Vaikea sanoa toisaalta johtuuko ongelmat siitä että koneeni ei ole tehty musantekoa varten. (Guitarix esimerkiksi herjasi kun jack ei ole kytketty kiinni)

3) Yaël Kermorvant – Java & Eclipse + apache config

Kolmantena testasin Yaëlin moduulia, joka oli suunniteltu lähinnä ohjelmistotuotannon opiskelijoille.

My own module – H5?

Everyone in the class had to reserve a puppet module that could do something useful, for example I chose to create a module that could help our school’s programming students, by installing Java, IntelliJ/Eclipse, localhost (apache2) and to do the right configuration.   -Yaël

Myös Yaëlin moduuli löytyi GitHubista

https://github.com/a1600567/mymodule.git

Huomasin, että Yaëlin moduulissa on autorun skripti, jolla kaikki sujuu yhdellä komennolla.

Kopioidaan siis ensiksi koko Git repositoryyn ja mennään moduulikansioon

start.sh scriptille ei oltu laitettu execute oikeuksia, korjataan asia.

sudo chmod +x start.sh

Nyt ajetaan skripti, ja katsotaan mitä tapahtuu

./start.sh
Notice: /Stage[main]/Asennusmoduuli/Package[openjdk-8-jre]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Asennusmoduuli/Package[eclipse]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Asennusmoduuli/Exec[OpenEclipse]/returns: executed successfully
Notice: /Stage[main]/Asennusmoduuli/Package[apache2]/ensure: ensure changed 'purged' to 'present'
Notice: /Stage[main]/Asennusmoduuli/File[/var/www/html/index.html]/content: content changed '{md5}9ad421244b28db9cb4a6857edd297ef5' to '{md5}08c5836bd6a7c3f795c4e8b13c3ca977'
Notice: Finished catalog run in 66.61 seconds

Ja noin! Sekin moduuli toimii! Siinä meni suhteellisen kauan, mutta ymmärrettävää kuin näin moni asia tungettu moduuliin.

Kaiken kaikkiaan erittäin näppärä moduuli, mille on tilaa kehitykselle! Plussaa varsinkin siitä että moduuli suoriutui ilman virheitä.

H5 – Moduuli harjoitus

Kurssin lähde:

http://terokarvinen.com/2017/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-2-%e2%80%93-5-op-uusi-ops-loppukevat-2017-p2

GitHub lähde:

https://github.com/leksenderi/Digimoduuli

Tehtävänanto:

Tehtävänämme oli keksiä oma moduuli, mikä tekisi tarvittavat vaatimukset. Moodulille piti määritellä seuraavat vastaukset:

  1.  Kenelle moduuli on tarkoitettu?
  2.  Mitä moduuli tekee?

Alustava ajatus moduulille oli seuraava (löytyy Tero Karvisen sivun kommenteista):

Digimedian opiskelijoille tarkoitettu moduulipaketti, joka asentaa Brackets koodi editorin, Bootstrap Frameworkin sekä Blenderin ja konfiguroi apachella localhost alustan, mikä on valmis koodattavaksi

Haastateltuani digipalvelun opiskelijoita sain selville, että Front-End puolessa on käytetty pääasiassa Brackets -editoria, jossa on Bootstrap ja Javascript/JQuery toimivuus.

Lopullinen moduulin idea:

Digimedian opiskelijoille tarkoitettu moduuli, joka asentaa Brackets koodieditorin sekä Apachen, konfiguroi Bracketsin toimimaan Bootstrapin ja JQuery kirjastojen kanssa, konfiguroi localhostin valmiiksi koodattavaksi, ja avaa lopuksi Bracketsin ja localhost sivun.

Moduulin työstäminen:

Päätin aloittaa ensimmäiseksi tekemällä moduulin, mikä asentaisi Bracketsin.

Asensin Puppetin ja onnistuneen hello world moduulitestin jälkeen tein Bracketsin asennukselle moduulin.

sudo apt-get install -y puppet
/etc/puppet/modules/pakettimoduuli/manifests/init.pp

Init.pp tiedostoon konfiguroin Bracketsin asennuksen

class pakettimoduuli {

        package { brackets:
                ensure => 'installed',
                allowcdrom => 'true',
        }
}

Juoksin Puppet moduulin

sudo puppet apply -e 'class {pakettimoduuli:}'

Sain seuraavan errorin:

E: Unable to locate package brackets

Bracketsia ei löydy tuolla nimellä, tai sitten sitä ei pystynyt apt-get installilla asentaa koneelle.

Netistä etsimällä “how to install brackets on linux” pääsin seuraavalle sivulle:

https://itsfoss.com/install-brackets-ubuntu/

Sain selville että Bracketsin asennukseen tarvittiin oma repositorio, josta löytyi bracketsin asennustiedostot. Asennus onnistui kirjoittamalla seuraavat asiat terminaaliin:

sudo add-apt-repository ppa:webupd8team/brackets 
sudo apt-get update 
sudo apt-get install brackets

Tässä vaiheessa loin itselleni Shell skriptin nimeltä startup.sh, mikä hoitaisi nämä alustavat asiat ennen Puppet moduulin ajoa.

Olin tehnyt työpöydälle Digimoduuli nimisen kansion, minne tein uuden finaldigi/manifests/init.pp polun sekä startup.sh skriptitiedoston.

/etc/puppet kansio oli purgettu ja poistettu ennen skriptin uudelleen ajoa .

Shell skriptiin laitoin seuraavat asiat:

#!/bin/bash
sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install -y puppet
sudo cp -r ./finaldigi /etc/puppet/modules
sudo puppet apply -e 'class {pakettimoduuli:}'

Annoin skriptille vielä Execute oikeudet ja ajoin sen

sudo chmod +x startup.sh
./startup.sh

Erroria sieltä pukkasi:

Error: Puppet::Parser::AST::Resource failed with error 
ArgumentError: Could not find declared class pakettimoduuli
at line 1 on node xubuntu.tielab.haaga-helia.fi

Kyseinen Error korjaantui, kun laitoin kohdepolkuun pakettimoduuli vielä tarkennukseksi että minne tiedostot ja kansiot kopioidaan.

Alla oleva komento siis kopioi skriptin juurihakemistosta tuon finaldigi kansion ja siirtää sen manifesteineen puppetin omaan modules kansioon nimellä pakettimoduuli

sudo cp -r ./finaldigi /etc/puppet/modules/pakettimoduuli

Ja kokeilin uudestaan moduulia. Seuraavaksi tulos oli seuraava:

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::
Options::=--force-confold install brackets' returned 100: 
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package brackets
Error: /Stage[main]/Pakettimoduuli/Package[brackets]/ensure: 
change from purged to present failed: Execution of 
'/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold 
install brackets' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package brackets

Pienen tutkimisen jälkeen tajusin, että sudo add-apt-repository ppa:webupd8team/brackets komento vaatii käyttäjältä ENTER näppäimen painamista uudelleen, ja tätä ei skriptini osannut tehdä.

StackOverflowsta löysin vastauksen kysymykseeni:

http://stackoverflow.com/questions/6264596/simulating-enter-keypress-in-bash-script

Shell skriptiin piti lisätä tuon repository komennon eteen echo | 

echo | sudo add-apt-repository ...jne

Kokeilin uudestaan skriptiä…

./startup.sh

Ja toimii!

Notice: /Stage[main]/Pakettimoduuli/Package[brackets]/ensure: ensure changed 'purged' to 'present'
Notice: Finished catalog run in 18.78 seconds

brackets

Seuraavaksi asensin Apachen. Lisäsin Apache paketin bracketsin perään.

package { apache2:
         ensure => 'installed',
         allowcdrom => 'true',
}

Tarkastin ennen moduulin ajoa, että localhost on tyhjä, ja ajoin skriptin uudestaan. Tuloksena localhostille tuli Apachen perus sivusto.

Nyt oli Brackets asennettuna, sekä Apachen localhost. Seuraavaksi luotiin HTML template pohja, joka kopioitiin skriptin avulla apachen /var/www/html hakemistoon.

Loin GitHubiin template.html. Lisäsin sen sisään Bootstrapin sivuilta napatun “Basic Bootstrap Templaten”, joka hyödyntää Bootstrappia sekä JQuerya:

http://getbootstrap.com/getting-started/#download

Shell skriptiin lisäsin komennon, mikä kopioi Apachen asennuksen jälkeen template.html:n ja laittaa sen /var/www/html kansioon index.html tiedostoksi.

Shell skripti näytti tältä tässä vaiheessa, uusi lisäys boldattu

#!/bin/bash
echo | sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install -y puppet
sudo cp -r ./finaldigi /etc/puppet/modules/pakettimoduuli
sudo puppet apply -e 'class {pakettimoduuli:}'
sudo cp -r template.html /var/www/html/index.html

Juoksin shell skriptin uudelleen, ja katsoin miltä näytti…

html

html2

Toimii! Bootstrap templatessa oleva Javascriptillä tehty Alert laatikko pompahti esiin niinkuin pitikin, ja H1 elementti näkyy sivulla.

Lopuksi halusin vielä, että moduulini avaisi Bracketsin asennuksen jälkeen, ja myös että skriptini avaisi localhostin auki selaimella.

Skriptin loppuun lisäsin komennon

firefox 'localhost'

ja Puppet moduuliin lisäsin komennon

exec { 'openBrackets':
      command => '/usr/bin/brackets &',
      require => Package['brackets'],
}

Loppulinen tuotos näytti seuraavalta:

Shell skripti:

#!/bin/bash
echo | sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install -y puppet
sudo cp -r ./finaldigi /etc/puppet/modules/pakettimoduuli
sudo puppet apply -e 'class {pakettimoduuli:}'
sudo cp -r template.html /var/www/html/index.html
firefox 'localhost'

Puppet moduuli:

class pakettimoduuli {

        package { brackets:
                ensure => 'installed',
                allowcdrom => 'true',
        }

        package { apache2:
                ensure => 'installed',
                allowcdrom => 'true',
        }

        exec { 'openBrackets':
                command => '/usr/bin/brackets &',
                require => Package['brackets'],
        }
}

Template.html:

.<!DOCTYPE html>
.<html lang="en">
.  <head>
.    
.    <meta charset="utf-8">
.    <meta http-equiv="X-UA-Compatible" content="IE=edge">
.   <meta name="viewport" content="width=device-width, initial-scale=1">
.   
.    <title>Bootstrap Template</title>
.
.    <link href="css/bootstrap.min.css" rel="stylesheet">
.    
.  </head>
.  <body>
.    
.    https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
.    http://js/bootstrap.min.js
.    
.    
.    alert( 'Hi! Remember to drag and drop the /var/www/html/index.html file into Brackets to begin coding!' );
.    
.
.    <h1>Happy coding!</h1>
.    
.  </body>
.</html>

Juoksin vielä Shell skriptin, toivottavasti viimeisen kerran..

./startup.sh

Ja toimii!

FINAL

Työpöytä näytti tältä

(Brackets avattu taustalla oikealla ylös, ja localhost pamahti suoraan näytölle):

1

Nyt tästä eteenpäin kaikki toimenpiteet, mitä vaaditaan käyttäjältä:

setxkbmap fi
sudo apt-get update
sudo apt-get install -y git
git clone https://github.com/leksenderi/Digimoduuli.git
cd /Digimoduuli
./startup.sh

Ja voila! Kaikki toimii.

Lähteinä käytin seuraavia sivustoja:

http://terokarvinen.com/2017/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-2-%e2%80%93-5-op-uusi-ops-loppukevat-2017-p2

https://itsfoss.com/install-brackets-ubuntu/

https://askubuntu.com/questions/443789/what-does-chmod-x-filename-and-how-do-i-use-it

http://stackoverflow.com/questions/6264596/simulating-enter-keypress-in-bash-script

http://getbootstrap.com/getting-started/#download

Kiitos myös Yael Kermorvant, jolta sain neuvoa openBrackets Execin kanssa:

https://ykermorvant.wordpress.com/

H4

http://terokarvinen.com/2017/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-2-%e2%80%93-5-op-uusi-ops-loppukevat-2017-p2

h4. a) Master-slave. Aloita tyhjästä koneesta. Tee yhdestä koneesta orja ja toisesta herra. Kokeile, että orja saa herralta modulin. (Voit käyttää labraa, kun se on tyhjä. Laita mukaan ‘puppet cert –list –all’, ‘tail /var/log/auth.log’, ‘tail /var/log/syslog’).

Tein harjoituksen koulun it-luokassa 5005, missä käytin toista konetta herrana ja toista konetta orjana.

20170502_132602

Seuraavaksi ajetaan alustavat komennot MOLEMMILLA koneilla

setxkbmap fi

sudo apt-get update

Tämän jälkeen annetaan uudet hostnamet molemmille koneille, herrana oleva kone nimettiin masterleo ja orjana oleva kone nimettiin slaveleo

sudo hostnamectl set-hostname masterleo

sudo hostnamectl set-hostname slaveleo

Molemmille koneille vielä editoidaan host tiedostoa sekä käynnistetään avahi demoni uudestaan

sudoedit /etc/hosts <--- vaihdetaan xubuntu joko masterleo tai slaveleo riippuen koneesta

ja testataan vielä pingaamalla master sekä slavekoneella itseään

ping slaveleo

ping masterleo

1

1

Seuraavaksi asennetaan Puppetmaster masterleolle, Puppet slaveleolle, konfiguroidaan molemmat, otetaan yhteyttä toisiinsa sekä hyväksytään certit. Testataan myös vielä lopuksi että moduulit toimivat, ja otetaan printti cert listasta, var.logista sekä syslogista.

Käydään läpi vaiheittain mitä tehdään millekkin.

MASTER KONE

Asennetaan puppetmaster, käynnistetään se ja muokataan dns alt name osoittamaan tähän koneeseen.

sudo apt-get -y install puppetmaster

sudo service puppetmaster start
sudoedit /etc/puppet/puppet.conf  <-- lisätään kohta dns_alt_names = masterleo.local tiedoston sisältöön

puppetconfmaster

Pysäytetään puppet, deletoidaan valmiit certifikaatiot ja käynnistetään uudestaan puppetmaster.

sudo service puppetmaster stop

sudo rm -rf /var/lib/puppet/ssl/

sudo service puppetmaster start

Nyt herrana toimiva kone on valmis, ja tähän voidaan ottaa yhteyttä. Seuraavaksi configuroidaan orjakone.

SLAVE KONE

Asennetaan puppet, enabloidaan se ja lisätään puppet.confiin [agent] lisäys.

sudo apt-get install -y puppet

sudo puppet agent --enable
sudoedit /etc/puppet/puppet.conf <-- lisätään [agent] sekä server = masterleo.local

2

Nyt orjakoneella on konfiguroitu, ja tämä on valmis ottaa yhteyttä master koneeseen.

MASTER KONE

Luodaan helloworld moduuli masterkoneelle, jonka Slavekone lataa itselleen samalla hetkellä, kun ottaa yhteyttä masterkoneeseen -tdv:llä.

cd /etc/puppet/modules

ls

sudo mkdir helloleo

cd helloleo

ls

sudo mkdir manifests

cd manifests
sudoedit init.pp

initpp

Tehdään vielä puppetin omaan manifests kansion sisään site.pp, minne lisätään pieni pätkä moduulia, joka näkyy kuvassa yllä.

cd /etc/puppet/manifests

sudo nano site.pp

Tämän sisälle laitetaan:

class {"helloleo":}

SLAVE KONE

Seuraavaksi otetaan yhteyttä masterkoneeseen, ja katsotaan onnistuuko yhteydenotto.

sudo puppet agent --test --debug --verbose

tai lyhennettynä

sudo puppet agent -tdv

ekayritys

Kone kertoo:

"Exiting; no certificate found and waitforert is disabled"

Slavekone odottaa nyt siis Masterkoneelta, että hän varmistaa certifikaatin ja antaa pääsyn slavekoneelle.

MASTER KONE

Käytetään seuraavaa komentoa saadakseen selville että ketkä ovat yrittäneet yhteyttä ottaa koneeseen.

sudo puppet cert list

certsign

Copypastella tuo slaveleo.tielab.haaga-helia.fi ja lisätään se tämän komennon perään

sudo puppet cert sign (copypastettu koneen nimi tähän)

SLAVE KONE

Ja nyt otetaan vielä kerran yhteyttä

sudo puppet agent -tdv

onnistunutTDV

Kuten kuvasta näkee -tdv komennon jälkeen Slave koneelle luotiin “helloleo.txt” tiedosto. Slave kone on siis ladannu moduulini, joka asensi helloleo tekstitiedoston yhteydenotolla.

final

Ja dodiii! Working as intended. Sitten vielä jos keksisi ensi tunnille jonkun toimivan sekä hyödyllisen moduulin.. 😉

Aika harjoitukseen meni noin 20 minuuttia, ja raportin kirjoittamiseen meni toiset 20 min.

MASTER TERMINAL VIEW

xubuntu@xubuntu:~$ sudo puppet cert list -all

+ "masterleo.tielab.haaga-helia.fi" (SHA256) 46:60:91:10:7C:A8:0D:33:49:6A:1F:72:3C:4B:D3:66:A6:E9:03:C9:04:4A:10:4D:8F:92:0F:EE:19:23:F0:CD (alt names: "DNS:masterleo.local", "DNS:masterleo.tielab.haaga-helia.fi")

+ "slaveleo.tielab.haaga-helia.fi" (SHA256) 58:C7:FE:93:52:49:A6:1C:8A:75:82:61:23:D9:33:69:F5:01:F7:B8:DA:7F:D3:C0:C3:F4:D9:04:AE:F2:F7:2B

xubuntu@xubuntu:~$ tail /var/log/auth.log

May  2 10:13:27 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:13:29 xubuntu sudo: pam_unix(sudo:session): session closed for user root
May  2 10:15:59 xubuntu sudo:  xubuntu : TTY=pts/2 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/bin/puppet cert list all
May  2 10:15:59 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:16:00 xubuntu sudo: pam_unix(sudo:session): session closed for user root
May  2 10:16:13 xubuntu sudo:  xubuntu : TTY=pts/2 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/bin/puppet cert list -all
May  2 10:16:13 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:16:15 xubuntu sudo: pam_unix(sudo:session): session closed for user root
May  2 10:17:01 xubuntu CRON[7574]: pam_unix(cron:session): session opened for user root by (uid=0)
May  2 10:17:01 xubuntu CRON[7574]: pam_unix(cron:session): session closed for user root

xubuntu@xubuntu:~$ tail /var/log/syslog

May  2 10:10:44 xubuntu puppet-master[7388]: Could not resolve 172.28.172.94: no name for 172.28.172.94
May  2 10:10:44 xubuntu puppet-master[7388]: message repeated 4 times: [ Could not resolve 172.28.172.94: no name for 172.28.172.94]
May  2 10:13:04 xubuntu puppet-master[7388]: Could not resolve 172.28.172.94: no name for 172.28.172.94
May  2 10:13:04 xubuntu puppet-master[7388]: message repeated 4 times: [ Could not resolve 172.28.172.94: no name for 172.28.172.94]
May  2 10:13:35 xubuntu puppet-master[7388]: Could not resolve 172.28.172.94: no name for 172.28.172.94
May  2 10:13:36 xubuntu puppet-master[7388]: Removing mount "files": /etc/puppet/files does not exist or is not a directory
May  2 10:13:37 xubuntu puppet-master[7388]: Compiled catalog for slaveleo.tielab.haaga-helia.fi in environment production in 0.01 seconds
May  2 10:13:50 xubuntu kernel: [ 2060.691713] perf interrupt took too long (2505 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
May  2 10:13:53 xubuntu puppet-master[7388]: Compiled catalog for slaveleo.tielab.haaga-helia.fi in environment production in 0.01 seconds
May  2 10:17:01 xubuntu CRON[7575]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

SLAVE TERMINAL VIEW

xubuntu@xubuntu:~$ tail /var/log/auth.log

May  2 10:13:34 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:13:37 xubuntu sudo: pam_unix(sudo:session): session closed for user root
May  2 10:13:51 xubuntu sudo:  xubuntu : TTY=pts/6 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/bin/puppet agent -tdv
May  2 10:13:51 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:13:53 xubuntu sudo: pam_unix(sudo:session): session closed for user root
May  2 10:17:01 xubuntu CRON[7308]: pam_unix(cron:session): session opened for user root by (uid=0)
May  2 10:17:01 xubuntu CRON[7308]: pam_unix(cron:session): session closed for user root
May  2 10:21:36 xubuntu sudo:  xubuntu : TTY=pts/6 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/bin/puppet cert list -all
May  2 10:21:36 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
May  2 10:21:38 xubuntu sudo: pam_unix(sudo:session): session closed for user root

xubuntu@xubuntu:~$ tail /var/log/syslog

May  2 10:13:53 xubuntu puppet-agent[7127]: Executing '/etc/puppet/etckeeper-commit-post'
May  2 10:13:53 xubuntu puppet-agent[7127]: Using cached connection for https://masterleo.local:8140
May  2 10:13:53 xubuntu puppet-agent[7127]: Caching connection for https://masterleo.local:8140
May  2 10:13:53 xubuntu puppet-agent[7127]: Closing connection for https://masterleo.local:8140
May  2 10:15:37 xubuntu puppet-agent[6731]: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Temporary failure in name resolution)
May  2 10:17:01 xubuntu CRON[7309]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  2 10:17:37 xubuntu puppet-agent[6731]: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Temporary failure in name resolution)
May  2 10:18:50 xubuntu dnsmasq[4543]: nameserver 172.28.11.67 refused to do a recursive query
May  2 10:19:37 xubuntu puppet-agent[6731]: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Temporary failure in name resolution)
May  2 10:21:37 xubuntu puppet-agent[6731]: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Temporary failure in name resolution)

Palvelin hallinta H3

GitHub lähde:

  • a) Package-File-Server. Asenna ja konfiguroi jokin demoni package-file-server -tyyliin. Tee jokin muu asetus kuin tunnilla näytetty sshd:n portin vaihto.
  • b) Modulit Gitistä. Tee skripti, jolla saat nopeasti modulisi kloonattua GitHubista ja ajettua vaikkapa liverompulle. Voit katsoa mallia terokarvinen/nukke GitHub-varastosta.

Harjoitus aloitettiin klo 17:52 (Xubuntu 16.04.01 TryFree)

Aloitetaan pohjustavilla komennoilla

setxkbmap fi
sudo apt-get update

sudo apt-get install -y git
sudo apt-get install -y puppet

Ennen packagea ja puppettia kun aletaan käyttää, testataan ensiksi kaiken toimivuus pienellä Hello World testillä

sudo puppet apply -e 'file {"/tmp/moileo": content => "hello\n"}'
cat /tmp/moileo

Puppet komento teki /tmp/ kansioon “moileo” nimisen tekstitiedoston, missä lukee “hello”, Cat komento tulostaa kyseisen “hello” terminaaliin.

Testataan nyt Puppetin toimivuus tekemällä puppetin modules kansioon “helloleo” niminen kansio, jonne lisätään sisälle vielä manifests kansio, sekä init.pp tiedosto sen sisälle

cd /etc/puppet/modules
sudo mkdir helloleo
cd helloleo
sudo mkdir manifests
cd manifests
sudo nano init.pp

Init.pp tiedoston sisälle laitoin seuraavat konfiguraatiot:

class helloleo {
    file {"/tmp/hellomodule":
            content => "bla blaa",
    }
}

Sen jälkeen ajoin puppetilla kyseisen koodin komennolla

sudo puppet apply -e 'class {helloleo:}'

Nyt löysin /tmp kansiosta “hellomodule” nimisen tiedoston, missä lukee “bla blaa”

Nyt voidaankin siis työstää puppetilla package asennusta. Valitsin Apachen asennettavaksi demoniksi

Tehdään aluksi apachelle oma kansio puppet moduleissa, ja sinne manifests ja templates kansiot

cd /etc/puppet/modules
sudo mkdir apache
cd apache
sudo mkdir manifests templates

Luodaan manifests kansioon taas init.pp tiedosto. Tällä kertaa sisällöksi laitoin seuraavaa

class apache {

    exec { 'apt-update':
            command => '/usr/bin/apt-get update'
    }

    package { apache2:
            require => Exec['apt-update'],
            ensure => 'installed',
            allowcdrom => 'true',
    }

    file {'/var/www/html/index.html':
            content => "testing testing",
    }
}

 

Yllä oleva komento ajaa ensin sudo apt-get updaten, asentaa apachen vasta kun update on ajettu, ja muokkaa apachen vakiosivua luoden sinne “testing testing” tekstin pätkän

Tämän jälkeen ajetaan puppetilla tuo koodinpätkä

sudo puppet apply -e 'class {apache:}'

Vastauksena tuli

Notice: Compiled catalog for xubuntu.dhcp.inet.fi in environment production in 0.23 seconds
Notice: /Stage[main]/Apache/Exec[apt-update]/returns: executed successfully
Notice: /Stage[main]/Apache/File[/var/www/html/index.html]/content: content changed '{md5}d68ba817e9aa3034436617554da0d2ad' to '{md5}2d5489b9b9d601e49c17274cfbc04077'
Notice: Finished catalog run in 2.51 seconds

Katsotaan vielä miltä localhost sivusto näyttää.

2

Näyttäisi siis toimivan!

Luodaan vielä skripti, millä saadaan helposti GitHubista tämä luotu moduuli.

setxkbmap fi
sudo apt-get update
sudo apt-get -y install puppet git
git clone https://github.com/leksenderi/Palvelinten-hallinta-2017.git
cd /home/xubuntu/Palvelinten-hallinta-2017/Raportit/H3
bash boot.sh

Kyseinen scripti ajaa päivitykset ja asentaa gitin, kloonaa minun git repositoryn ja avaa H3 harjoituksen kansion. Testasin vielä skriptin toimivuuden poistamalla git kansioni omasta työpoydästäni, sekä poistin Gitin myös, ja tämän jälkeen ajoin scriptin. Kaikki toimii niin kuin pitääkin, ja repository löytyy omalta työpöydältäni heti.

Harjoitus lopetettiin klo 20:49.

Palvelin hallinta H2

GitHub:

https://github.com/leksenderi/Palvelinten-hallinta-2017/tree/master/Raportit/H2

 

 

Huom! GitHub ohjeet löytyvät postauksen pohjalta

  • a) Tee tämä kotitehtävä GitHubiin MarkDownilla
  • b) Tee puppet-moduli, joka tekee asetukset jollekkin komentorivi- tai graafisen käyttöliittymän ohjelmalle.

Kone on bootattu Xubuntu 16.04.01 version livetikulta klo 23:35 (TryFree-versio)

Aloitetaan ajamalla peruskomennot

setxkbmap fi
sudo apt-get update

Kehitellään itsellemme pienehkö puppet-moduuli. Otetaan vaikka yksinkertainen alias-moduuli. Lisätään bash.bashrc tiedostoon koodinpätkä, missä määritellään alias. Tehdään vaikka yksinkertainen “ls” alias, niin että “h” kirjain tekee saman komennon.

cd /etc/
ls
sudo nano bash.bashrc

Lisätään yläosaan seuraava tiedonpätkä:

alias h="ls"

Tämän jälkeen asennetaan puppet ja luodaan init.pp tiedostolle oma kansiopolku

sudo apt-get install puppet

Kansiopolku sekä init.pp tiedoston luonti:

/etc/puppet/modules/aliasmoduuli/manifests
sudo nano init.pp

Init.pp tiedostoon laitoin seuraavat tiedot:

class aliasmoduuli{

    file {'/etc/bash.bashrc':
    content => template('aliasmoduuli/bash.bashrc.erb')

	}
}

Muistetaan tehdä vielä myös templates kansio, minne kopioidaan tuo bash tiedosto.

cd .. 

tai

cd /etc/puppet/modules/aliasmoduuli
sudo mkdir templates

tämän jälkeen kopioidaan etc:ssä sijaitseva bash.bashrc ja liitetään se meidän templates kansioon bash.bashrc.erb muodossa

sudo cp bash.bashrc /etc/puppet/modules/aliasmoduuli/templates/bash.bashrc.erb

Muistetaan vielä ajaa puppetilla komento, jotta moduuli lähtee käyntiin

sudo puppet apply -e 'class {"aliasmoduuli":}'

Ei ongelmia, joten avataan terminaali uudestaan ja voila! “H” kirjain pamauttaa saman kuin “ls”

Tämän jälkeen palautus GitHubbiin, nopeat ohjeet tästä

Ensiksi asennetaan git sudo apt-get install git Tämän jälkeen kopioidaan oman github käyttäjän hakemistot koneelle

git clone https://github.com/leksenderi/Palvelinten-hallinta-2017.git

Sen jälkeen ennalta määrättyyn kansioon luodaan a) tehtävän vaatima MarkDown tiedosto, tässä tapauksessa omani on

cd Palvelinten-hallinta-2017
sudo nano h2.md

tämän jälkeen raportti siirretään Githubiin seuraavilla komennoilla

git add .
git commit
git pull
git push

Harjoitus lopetettiin 00:29

Palvelin hallinta H1

a)

02:02 boottasin työasemani live-tikulta (Xubuntu 16.04) ja aloin lukemaan ohjeita Puppetista ja siitä miten pystyisin tekemään moduulin joka käyttäisi fileä ja moduulin joka käyttäisi packagea.

02:18 pistin komennot setxkbmap fi ja sudo apt-get update tulille jonka jälkeen asensin puppetin komennolla sudo apt-get install puppet-common.

Tämän jälkeen siirryin cd /etc/puppet/modules kansioon ja loin sinne “perusmoduuli” nimisen moduulin sudo mkdir perusmoduuli komennolla ja tein vielä perusmoduulit kansioon manifestsin cd perusmoduuli –> sudo mkdir manifests.

Manifests kansioon tein vielä init.pp tiedoston komennolla

sudoedit /etc/puppet/modules/perusmoduuli/manifests/init.pp

ja lisäsin sinne kuvassa olevat asiat

eka

Tämän jälkeen testasin toimiiko kyseinen moduuli komennolla

sudo puppet apply -e’class{perusmoduuli:}’

Ei tullu erroreita, joten kokeillaan vielä varmuudeksi printata terminaalin kyseinen tuotos

cat /tmp/perusmoduuli

toka

Toimii!

02:44 sitten vielä toimiva package. Lisätään lisää härpäkettä tuohon valmiiksi olevaan moduulin

sudoedit /etc/puppet/modules/perusmoduuli/manifests/init.pp

kolmas

Tunnilla oli maininta siitä että allowcdrom pitää lisätä mukaan sillä ei ehkä toimi ilman sitä, joten lisätään se mukaan tähän.

ja sitten kun on tiedosto päivitetty niin ajetaan taas se sama komento

sudo puppet apply -e’class{perusmoduuli:}’

nelone

02:52 toimii perfecto!

b) En päässyt IT PRO messuille, joten katsoin videon missä vertailtiin Chef vs Puppet vs Ansible vs SaltStack

Skaalautuvuus

Jokainen työkalu on suuresti skaalautuva.

Laitteiston asennuksen helppous

Videossa kerrotaan Ansiblen olevan helpoin kaikista työkaluista asentaa valmiiksi. Siinä missä muut työkalut vaativat erillisiä agentteja client koneille, Ansiblella ei tarvitse muuta kuin asentaa ohjelmisto hallitsevalle tietokoneelle.

Toimivuus

Ongelmatilanteessa kun pääkäyttäjä lopettaa toimintansa, toimii jokainen ohjelma niin että korvaa sammuneen masterin.

Puppet: multi-master arkkitehtuuri = jos active master kaatuu, toinen master ottaa kaatuneen tilalle

SaltStack: voi olla monta eri masteria konfiguroitu. Jos yksi kaatuu, muut agentit ottavat yhteyttä kaikkiin toimiviin mastereihin listassa

Ansible: käyttää single active node periaatetta= Primary Instance on master, jos se kaatuu Secondary Instance ottaa ohjat käsiin

Chef: Jos primary serverissa on vika, chefissä on backup serveri joka ottaa ohjat käsiin

Hallinta

Puppet: Hallinnan opettelu vaikeaa koska käyttää omaa Puppet DSL kieltä. Clientit nykivät konfiguraatiot serveristä. Etähallinnan toimeenpano ei ole välitön.

Ansible: Helppo oppia konfiguraatioiden hallinta. Serveri työntää konfiguraatiot kaikille päätteille. Etähallinnan toimeenpano on välitöntä.

SaltStack: Helppo käyttää ja oppia konfiguraatioiden hallinta. Serveri työntää konfiguraatiot kaikille päätteille. Etähallinnan toimeenpano on välitöntä.

Chef: Tarvitsee ohjelmointiymmärrystä, sillä Chefin konfigurointi on Ruby DSL kielellä. Clientit nykivät konfiguraatiot serveristä.

Yhteentoimivuus

Puppet: Puppet Master toimii ainoastaan Linux/Unix mutta Puppet Agent toimii myös windowsilla

SaltStack: Salt Master toimii ainoastaan Linux/Unix mutta Salt minions toimii myös windowsilla

Ansible: Ansible tukee myös windowsin koneita mutta Ansible serveri täytyy olla Linux/Unix koneessa

Chef: Chef Server toimii ainoastaan Linux/Unix mutta Chef Client ja Workstation voi käyttää Windowsissa myös

Konfigurointikieli

Puppet: Puppet DSL. Ei niin helppo oppia, järjestelmähallitsija orientoitunut

Ansible: YAML (Python). Helppo oppia, admin orientoitunut

SaltStack: YAML (Python). Helppo oppia, admin orientoitunut

Chef: Ruby DSL. Jyrkkä oppimiskäyrä, ohjelmistokehittäjä orientoitunut

GitHub aktiivisuus

Contributors:

Puppet: 355

Ansible: 1003

SaltStack: 1,041

Chef: 369

Commits:

Puppet: 19,595

Ansible: 13,527

SaltStack: 49,193

Chef: 12,089

Branches:

Puppet: 9

Ansible: 33

SaltStack: 11

Chef: 177

Releases:

Puppet: 291

Ansible: 57

SaltStack: 82

Chef: 231

Hinta yrityskäyttöön

Puppet: $12,000

Ansible: $10,000

SaltStack: $15,000

Chef: $7,200

Suosio

chrome_2017-04-05_01-29-41.png

Lopullinen tulos, missä arviointi kritiikit ovat Skaalautuvuus, Asennus, Toimivuus, Hallinta sekä Yhteensopivuus

chrome_2017-04-05_01-31-00.png

Tämän videon perusteella tilanne olisi seuraava:

  1. Ansible
  2. SaltStack
  3. Puppet ja Chef

 

Lähteet:

http://terokarvinen.com/2013/hello-puppet-revisited-%E2%80%93-on-ubuntu-12-04-lts

https://www.puppetcookbook.com/posts/install-package.html

Linux palvelimena H1

http://www.youtube.com/watch?v=OmRxKQHtDbY&t

H5

22:39 boottasin linuxin livetikultani, avasin Xubuntun ja ajoin terminaalissa

setxkbmap fi

sekä

sudo apt-get update

22:40 suuntasin Digital Oceanin sivustolle ja aloin tekemään omaa droplettiani

123123

Valitaan Ubuntu kympin sopparilla, ja serveriksi Frankfurt. Ei valita mitään ylimääräisiä gizmoja ja keksitään vielä itsellemme oma hostnimi.

Sähköpostiini ilmestyi viesti, mistä löytyy nyt luodun palvelimen root salasana.

22:53 Asennetaan terminaalin kautta ssh

sudo apt-get -y install ssh

otetaan yhteys palvelimeen terminaalista ja keksitään uusi salasana kirjautumisen jälkeen, kun palvelin sitä pakottaa

ssh root@palvelimenip

Seuraavaksi configuroidaan serveri:

23:11 Avataan http ja ssh yhteys palomuurin läpi, luodaan käyttäjä palvelimelle ja annetaan sille sudo ja admin oikeudet (huom anna hyvä salasana tälle käyttäjälle)

sudo ufw allow 20/tcp

sudo ufw allow 80/tcp

sudo ufw enable

sudo adduser leojoonatan

sudo adduser leojoonatan sudo

sudo adduser leojoonatan adm

sudo adduser leojoonatan admin

Testataan vielä että päästään sisään käyttäjälle toista terminaalia käyttäen, ja ajetaan sudo komentoja testatakseen että oikeudet löytyy. Lukitaan vielä myös root käyttäjä palvelimelle

ssh leojoonatan@palvelinip

sudo apt-get update

sudo apt-get upgrade

sudo usermod –lock root

Palvelin on nyt toiminnassa.

23:21 Luodaan seuraavaksi weppipalvelin ja editoidaan index.html ja tehdään siitä tavallinen pohja.

ssh leojoonatan@palvelinip

sudo apt-get install -y apache2

sudoedit /var/www/html/index.html

Seuraavaksi luodaan meille oma domaini. Käytetään Namecheap.com sivustoa tähän tarkoitukseen.

00:06 Kuten huomaatte luonnissa kesti kauan. Mutta pääpiirteittäin seurasin allaolevan linkin ohjeita “Laita domain-nimi osoittamaan virtuaalipalvelimeesi” osiosta alkaen

http://simosuominen.com/index.php/2017/03/05/linux-palvelimet-kotitehtavat-6/

00:13 tehdään vielä viimeiset silaukset

sudo a2enmod userdir

sudo service apache2 restart

mkdir public_html 

cd public_html

nano index.html

sudoedit /etc/apache2/sites-available/leocom.conf
ServerName http://www.leojaaskelainen.com
ServerAlias leojaaskelainen.com

DocumentRoot /home/leojoonatan/html/leocom/
Require all granted
sudo a2ensite leocom.conf

sudo service apache2 restart

00:33 Tehtävä saatiin päätökseen ja lopputuloksena sivusto http://www.leojaaskelainen.com näyttää tältä

3212123

H4

Tehtävänä asentaa LAMP ja luoda websivu joka lukee rivejä tietokannasta.

13:28 livetikku kiinni omaan pöytäkoneeseen ja Xubuntu käyntiin. Ajetaan alustavat komennot jotta saadaan homma rullaamaan.

setxkbmap fi
sudo apt-get update

13:30 annetaan portteihin reijät komennoilla

sudo ufw allow 80/tcp
sudo ufw allow 22/tcp

13:31 Pistetään tulimuuri päälle

sudo ufw enable

13:31 Ennen apachen asennusta tarkistan onko sivullani valmiiksi mitään. Ei ole

firefox "http://localhost"

13:32 Asennetaan Apache2

sudo apt-get install -y apache2

13:33 Testataan toimivuus

firefox "http://localhost"

Yläpuolella vertauskuva omasta localhost sivusta ennen ja jälkeen Apache2 asennuksen.

Enabloidaan käyttäjähakemisto sekä käynnistetään apache2 uudestaan.

sudo a2enmod userdir
sudo service apache2 restart

13:38 tehdään kotihakemistoon kansio

cd
mkdir public_html

Testataan vielä varmuuden päälle sivuston toimivuus. whoami komennolla huomaan että olen xubuntu. Katsotaan pääsenkö osoitteeseen http://localhost/~xubuntu. Toimii.

13:42 Asennetaan MySQL.

sudo apt-get -y install mysql-server mysql-client

13:44 MySQL vaatii että keksin sille salasanan.

13:45 Kirjauduin tietokantaan sisään komennolla

mysql -u root -p

13: 46 Aloitetaan tietokannan työstö tekemällä “pulla” nimisen  tietokannan utf8:lla.

mysql> CREATE DATABASE pulla CHARACTER SET utf8;

13:47 Tietokanta tarvitsee salasanan

mysql> GRANT ALL ON pulla.* TO pulla@localhost IDENTIFIED BY 'tähänsalasana';

13:47 Muokasin tietokantaa  valitsemalla “pulla”

mysql> USE pulla;

Tein sinne taulukon nimeltä “pullat”

mysql> CREATE TABLE pullat (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024));

Laitoin “pullat” taulukkoon muutaman leivoksen.

mysql> INSERT INTO autos(name) VALUES ("munkki");
mysql> INSERT INTO autos(name) VALUES ("viineri");

Kirjauduin ulos  ja tein public.html kansioon index.php tiedoston, jotta saan php:llä ongittua tietokannasta tavaraa.

exit
cd
nano public_html/index.php

13:50 Tein html koodin pullista ja lisäsin teron koodin siihen

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Pullia</title>
</head>
<body>
<p> Leivoksia </p>
<?php
// public_html/index.php - Read MySQL from PHP
// (c) 2016 Tero Karvinen http://TeroKarvinen.com

// MySQL Login
$user='pulla';
$password='tähänsalasanasi';

// Data Source Name i.e. connection details
$database=$user;
$dsn="mysql:host=localhost;charset=UTF8;dbname=$database";

// Open Connection, create new object of PDO class
$pdo=new PDO($dsn, $user, $password);

// Perform SQL Query
$pdoStatement=$pdo->prepare('SELECT * FROM pullat;');
$pdoStatement->execute();
$hits=$pdoStatement->fetchAll();

// Print the $hits Array
foreach($hits as $row) {
 echo "<p>".$row['id']." ".$row['name']."</p>\n";
}
?>
</body>
</html>

13:51 Nettisivut näyttivät php koodia, joten jokin on pielessä.

13:51 Täytyi asentaa apache php-lisäosa sekä käynnistää uudestaan palvelin.

sudo apt-get install apache2 libapache2-mod-php php-mysql
sudo service apache2 restart

13:52 Enabloidaan kotihakemisto muokkaamalla apache2 tiedostoja.

grep -r php /etc/apache2/

Etsitään grepillä kyseinen tiedosto, ja muokataan se risuaidoilla (kommentointi).

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

13:58 Ja käynnistetään uusiksi Apache2

sudo service apache2 restart

13:59  Ja nyt pelittää, eikä näytä PHP koodia kun tarkastelee sivua!

14:00 Ajetaan vielä komento jolla napataan logit yhdeksi tekstitiedostoksi.

tail /var/log/syslog /var/log/auth.log /etc/lsb-release /var/log/apache2/*.log /proc/uptime >log.txt

Alla copypastettuna kyseinen .txt file.

==> /var/log/syslog <==
Feb 14 13:58:42 xubuntu kernel: [ 2213.863220] [UFW BLOCK] IN=enp5s0 OUT= MAC=70:4d:7b:65:72:d0:58:8d:09:12:a9:c0:08:00 SRC=94.138.13.9 DST=88.192.80.103 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=9204 PROTO=TCP SPT=14064 DPT=23 WINDOW=14600 RES=0x00 SYN URGP=0
Feb 14 13:59:41 xubuntu systemd[1]: Stopping LSB: Apache2 web server…
Feb 14 13:59:41 xubuntu apache2[19647]:  * Stopping Apache httpd web server apache2
Feb 14 13:59:42 xubuntu apache2[19647]:  *
Feb 14 13:59:42 xubuntu systemd[1]: Stopped LSB: Apache2 web server.
Feb 14 13:59:42 xubuntu systemd[1]: Starting LSB: Apache2 web server…
Feb 14 13:59:42 xubuntu apache2[19671]:  * Starting Apache httpd web server apache2
Feb 14 13:59:42 xubuntu apache2[19671]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Feb 14 13:59:43 xubuntu apache2[19671]:  *
Feb 14 13:59:43 xubuntu systemd[1]: Started LSB: Apache2 web server.

==> /var/log/auth.log <==
Feb 14 13:58:15 xubuntu sudo: pam_unix(sudo:session): session closed for user root
Feb 14 13:58:34 xubuntu sudo:  xubuntu : TTY=pts/2 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/sbin/service apache2 restart
Feb 14 13:58:34 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
Feb 14 13:58:36 xubuntu sudo: pam_unix(sudo:session): session closed for user root
Feb 14 13:59:13 xubuntu sudo:  xubuntu : TTY=pts/2 ; PWD=/home/xubuntu ; USER=root ; COMMAND=sudoedit /etc/apache2/mods-available/php7.0.conf
Feb 14 13:59:13 xubuntu sudoedit: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
Feb 14 13:59:33 xubuntu sudoedit: pam_unix(sudo:session): session closed for user root
Feb 14 13:59:41 xubuntu sudo:  xubuntu : TTY=pts/2 ; PWD=/home/xubuntu ; USER=root ; COMMAND=/usr/sbin/service apache2 restart
Feb 14 13:59:41 xubuntu sudo: pam_unix(sudo:session): session opened for user root by xubuntu(uid=0)
Feb 14 13:59:43 xubuntu sudo: pam_unix(sudo:session): session closed for user root

==> /etc/lsb-release <==
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=”Ubuntu 16.04.1 LTS”

==> /var/log/apache2/access.log <==
127.0.0.1 – – [14/Feb/2017:13:40:06 +0000] “GET / HTTP/1.1” 200 3525 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:40:35 +0000] “GET /~xubuntu HTTP/1.1” 301 572 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:40:35 +0000] “GET /~xubuntu/ HTTP/1.1” 200 653 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:40:35 +0000] “GET /icons/blank.gif HTTP/1.1” 200 431 “http://localhost/~xubuntu/&#8221; “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:40:35 +0000] “GET /icons/back.gif HTTP/1.1” 200 499 “http://localhost/~xubuntu/&#8221; “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:55:50 +0000] “GET / HTTP/1.1” 200 3525 “http://localhost/~xubuntu/&#8221; “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:55:57 +0000] “GET /~xubuntu/ HTTP/1.1” 200 994 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:55:58 +0000] “GET /~xubuntu/ HTTP/1.1” 200 994 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:56:14 +0000] “GET /~xubuntu/ HTTP/1.1” 200 994 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”
127.0.0.1 – – [14/Feb/2017:13:59:46 +0000] “GET /~xubuntu/ HTTP/1.1” 200 387 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0”

==> /var/log/apache2/error.log <==
[Tue Feb 14 13:58:09.794671 2017] [core:notice] [pid 18733] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 14 13:58:11.081125 2017] [mpm_prefork:notice] [pid 18733] AH00169: caught SIGTERM, shutting down
[Tue Feb 14 13:58:12.180240 2017] [mpm_prefork:notice] [pid 18843] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Tue Feb 14 13:58:12.180277 2017] [core:notice] [pid 18843] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 14 13:58:34.456460 2017] [mpm_prefork:notice] [pid 18843] AH00169: caught SIGTERM, shutting down
[Tue Feb 14 13:58:35.551123 2017] [mpm_prefork:notice] [pid 19621] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Tue Feb 14 13:58:35.551170 2017] [core:notice] [pid 19621] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 14 13:59:41.638662 2017] [mpm_prefork:notice] [pid 19621] AH00169: caught SIGTERM, shutting down
[Tue Feb 14 13:59:42.737328 2017] [mpm_prefork:notice] [pid 19688] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Tue Feb 14 13:59:42.737368 2017] [core:notice] [pid 19688] AH00094: Command line: ‘/usr/sbin/apache2’

==> /var/log/apache2/other_vhosts_access.log <==

==> /proc/uptime <==
2363.21 8079.36

1

Lopuksi vielä kuva history-komennolla, millä näkee mitä kaikkea oon sohlannut terminaalissa.

H3

klo 19:47 avasin työasemani ja aloin etsimään tietoa Apache2 web serverin asentamisesta.

https://help.ubuntu.com/lts/serverguide/httpd.html

klo 19:53 löysin kyseisen ylläolevan linkin ja aloin seuraamaan ohjeita Apache2 palvelimen pystytyksestä

klo 20:09 kirjoitin komentoriviin apache2 asentavan komennon

sudo apt install apache2

klo 20:14 kirjoitin komentoriviin if config ja poimin ylös ip osoitteni: tässä tapauksessa se oli 88.192.80.103

klo 20:15 menin Firefox selaimella 88.192.80.103 osoitteeseen ja päädyin Apache2 Default sivustolle, sillä en ollu määrittänyt Virtual Hostia, joten se menee defaulttina tälle sivulle

apache2

klo 20:16 menin etsimään printatut logit sivuston käytöstä. nämä löytyivät menemällä terminaalin kautta komennolla cd /var/log –> ls

tämä paljasti että var logeissa löytyi nyt apache2 kansio. joten avasin sen cd apache2 komennolla.

kansiossa kirjoittamalla ls paljastui kolme tiedostoa: access.log, error.log sekä other_vhosts_access.log. Koska minulla ei ollut muita virtual hosteja, eikä mitään erroreita oltu etsimässä, kirjoitin cat access.log ja tämä printtasi minulle sivuston latauksesta syntyneet lokirivit (katso kuvassa komentorivin pohjalla)

apache2_2.png