Tehtävänanto:
h2. Asenna jokin palvelin package-file-server -tyyliin. Voit käyttää esimerkkikoodejani pohjana, mutta koita lisätä mukaan jotain omaa.
Bonus: Asenna Puppet herra-orja arkkitehtuuriin niin, että herra (puppetmaster) ja orja (aka agent, puppet) ovat samalla tietokoneella.
BonusBonus: kokeile Puppetia jossain toisessa käyttöjärjestelmässä, esimerkiksi Windowsissa.
Tehtävien ohje otettu: http://terokarvinen.com/2016/aikataulu-palvelinten-hallinta-ict4tn022-1-5-op-uusi-ops-loppusyksy-2016
Harjoituksessa käytetty laitteisto/ohjelmisto:
- 16GB Kingston DataTraveler 100 G3 USB 3.0 muistitikku
- Tietokone (Asus Z170-A, i7-6700K , 16GB DDR4 3200MHz, Evga 1070 sc)
- Oheishärpäkkeet
- Xubuntu 16.04.1 LTS
Alustavat valmistelut:
Seuraavat toimet suoritan aina, kun alan tekemään linux-harjoitusten eri osioita.
Boottasin Xubuntu-livetikulle valitsemalla USB-muistitikun käynnistyksen yhteydessä bootattavaksi levyksi. Kun kysyttiin haluanko testata Xubuntua vaiko asentaa sen, valitsin vaihtoehdon “Try Xubuntu without installing“. Lyhyen latauksen päästä pääsin työpöydälle.
Yhdistin heti kotini langattomaan verkkoon työpöydän oikeasta yläkulmasta sekä muutin näppäimmistön layoutin suomiversioksi komennolla terminaalin komennolla “$ setxkbmap fi”.
Seuraavaksi syötin komennon “$ sudo apt-get update“. Kyseinen komento päivittää pakettivarastot, ja se kannattaa suorittaa aina ennen kuin hyödyntää paketinhallintaa mihinkään.
Apache moduuli
Päätin asentaa apache-webpalvelimen. Aloitin asentamalla Puttyn terminaalin komennolla $ sudo apt-get install puppet.
Teen harjoitusta live-tikulla, mutta tarkistan silti, että apachea ei ole asennettu.
Tämän jälkeen navigoin kansioon $ cd /etc/puppet/modules/.
xubuntu@xubuntu:/etc/puppet/modules$ pwd /etc/puppet/modules
Kyseiseen kansioon tein uuden kansion nimeltä “apache2” komennolla $ sudo mkdir apache2. Kyseisen kansion sisään tein toisen kansion nimeltä manifests: $ sudo mkdir manifests, johon tein sudoeditillä init.pp nimisen tekstitiedoston, joka tulee sitten sisältämään apachemoduulini.
Package
$ sudoedit init.pp
Tein moduuliin tässä vaijeessa vain package osion, jolla apachen asentumisen. Moduulin sisälle kirjoitin:
class apache2 { package { "apache2": ensure => "installed", allowcdrom => "true", } }
Koska työskentelen livetikulla, lisäsin moduuliin myös “allowcdrom => “true”,“.
Seuraavaksi suoritin komennon $ sudo puppet apply -e ‘class {apache2:}’
Vastaukseksi sain:
Notice: Compiled catalog for xubuntu in environment production in 0.15 seconds Notice: /Stage[main]/Apache2/Package[apache2]/ensure: ensure changed 'purged' to 'present' Notice: Finished catalog run in 7.45 seconds
Katsotaan asentuiko apache oikein.
Palvelin on asentunut oikein.
Seuraavaksi tein apache2 kansioon manifests:n ohelle uuden kansion nimeltä templates: $ sudo mkdir templates
xubuntu@xubuntu:/etc/puppet/modules/apache2$ ls manifests templates
File
Nyt lisätään moduuliin file-osio, joka muokkaa apachen oletussivua:
$ sudoedit init.pp
class apache2 { package { "apache2": ensure => "installed", allowcdrom => "true", } file { "/var/www/html/index.html": content => template("apache2/index.html), } }
Seuraavaksi tein manuaalisesti templates kansioon nanolla index.html tiedoston, jonka sisälle kirjoitin perus html5 pohjan, jonka katsoin täältä: http://terokarvinen.com/2012/short-html5-page.
$ sudo nano index.html
<!doctype html>Testimoduuli
Markuksen moduuli
Let’s test UTF-8 with “päivää”
Sitten suoritetaan taas komento $ sudo puppet apply -e ‘class {apache2:}’
Vastaus:
Notice: Compiled catalog for xubuntu in environment production in 0.20 seconds Notice: /Stage[main]/Apache2/File[/var/www/html/index.html]/content: content changed '{md5}9ad421244b28db9cb4a6857edd297ef5' to '{md5}5f10ceb6a7ff11b9fc4e97e74c29f2ab' Notice: Finished catalog run in 0.04 seconds
Katsotaan, miltä oletussivu nyt näyttää:
Eli template toimii oikein.
Service
Viimeiseksi lisäsin vielä service osion moduuliin.
$ sudoedit init.pp
class apache2 { package { "apache2": ensure => "installed", allowcdrom => "true", } file { "/var/www/html/index.html": content => template("apache2/index.html"), } service { "apache2": ensure => "running", enable => "true", } }
Sitten taas komento: $ sudo puppet apply -e ‘class {apache2:}’, johon sain vastaukseksi:
Notice: Compiled catalog for xubuntu in environment production in 0.26 seconds Notice: Finished catalog run in 0.04 seconds
Testasin vielä servicen toimivuutta sammutamalla palvelimen komennolla $ sudo service apache2 stop. Katsotaan, miltä localhost nyt näyttää:
Nyt, jos ajan moduulini, sen pitäisi käynnistää www-palvelimeni uudelleen.
$ sudo puppet apply -e ‘class {apache2:}’
Notice: Compiled catalog for xubuntu in environment production in 0.27 seconds Notice: /Stage[main]/Apache2/Service[apache2]/ensure: ensure changed 'stopped' to 'running' Notice: Finished catalog run in 1.20 seconds
Toimii.
Tällä hetkellä tekemäni www-sivu ei siis toimi käyttäjän kotihakemistossa, vaan se vaatisi muutamia lisävaiheita.
Yhteenveto
Tässä harjoituksessa luotiin onnistuneesti Puppet-moduuli, joka asentaa Apache webpalvelimen, muuttaa Apachen oletussivun ja luo sille html-sisältöä sekä varmistaa, että palvelin on koko ajan toiminnassa.
Lähteet:
Harjoituksen ohjeet
URL: http://terokarvinen.com/2016/aikataulu-palvelinten-hallinta-ict4tn022-1-5-op-uusi-ops-loppusyksy-2016
HTML-pohja
http://terokarvinen.com/2012/short-html5-page
Vinkkejä ja lisäapua Joona Leppälahden harjoitus 1 – raportista.
https://joonaleppalahti.wordpress.com/2016/10/24/palvelinten-hallinta-harjoitus-1/