Viikkotehtävä 2

Ympäristö

Ympäristönä toimii pöytäkone, jossa ajan Xubuntu 16.04 LTS livetikulta ja toisena koneena vanha HP625 läppäri, jossa sama käyttöjärjestelmä asennettuna.

  • pöytäkone
  • CPU: Intel Skylake i5-6600K @ 3.50  GHz
  • RAM 16 GB DDR4 2400 Mhz
  • HP 625
  • CPU: AMD Athlon II P320  2.1 GHz / DualCore
  • RAM 4 GB DDR3 1333 MHz

h2.

Tehtävänanto Teron sivuilta

a) Gittiä livenä: Tee ohjeet tai skriptit, joilla saat live-USB -tikun konfiguroitua hetkessä – ohjelmat asennettua ja asetukset tehtyä.

b) Kokeile Puppetin master-slave arkkitehtuuria kahdella koneella. Liitä raporttiisi listaus avaimista (sudo puppet cert list) ja pätkä herran http-lokista (sudo tail -5 /var/log/puppet/masterhttp.log). Tee tämä alusta lähtien ja dokumentoi samalla, tunnilla aiemmin tehdyn muistelu ei riitä.

c) Lue (tästä c-kohdasta ei tarvitse raportoida)

A) Asetusskriptin teko

En ollut aivan varma mitä asetuksia halusin koneelleni valmiiksi tai miten lähtisin rakentamaan skriptiä, joten katsoin ensin Teron suositteleman linkin GitHub käyttäjä poponappi repositoryyn.

Kyseisen repon README oli sen verran hyvä ja essentialtools.sh sen verran yksiselitteinen, että päätin lainata hiukan kyseistä skriptiä ja lisätä siihen myös jotain omaa, että homma ei mennyt täysin plagioinnin puolelle. Skripti näytti lopulta tältä:

#!/bin/bash

#first run chmod +x /home/xubuntu/panoq.sh

sudo timedatectl set-timezone "Europe/Helsinki"
setxkbmap fi
sudo apt-get update
sudo apt-get install -y git tree puppet

git clone https://github.com/panoq/lkh
sudo cp -r /home/xubuntu/lkh/modules/sshd /etc/puppet/modules/sshd

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

sudo service sshd status

Kyseinen skripti asettaa ensin aikavyöhykkeen oikein, tämän jälkeen vaihtaa näppäimistön oikein ja asentaa kurssilla tarvitsemani ohjelmat. Tämän jälkeen se kloonaa git repositoryni ja kopio sieltä moduulini /etc/puppet/modules/sshd -kansioon ja ajaa kyseisen moduulin. Jotta voidaan todeta, että tuo sshd service toisaan on asentunut ja päällä kyseinen skripti ajaa vielä servicen statuksen tarkistavan komennon.

Boottasin livetikun ja testasin toimiko skriptini puhtaalla koneella:

Siirsin ensin skriptin ulkoiselta muistilta koneelle, ajoin komennon ”date” näyttääkseni helpommin, että aikavyöhyke tosiaan muuttui. Seuraavaksi ajoin komennon

run chmod +x /home/xubuntu/panoq.sh

jotta itse skriptin saisi ajettua ja tämän jälkeen ajoin itse skriptin

/home/xubuntu/panoq.sh

ekatoka

Skripti näytti toimivan!

b) Master/Slave arkkitehtuuri

Päätin tehdä helpoimman mahdollisen moduulin, jotta testaaminen olisi mahdollisimman helppoa. Aloitin lisäämällä /etc/puppet/puppet.conf tiedostoon kohdan ”Ordering=Manifest”. Seuraavaksi loin moduulin. Loin /etc/puppet/modules kansion alle kansion ”helloworld”.  Lisäin site.pp tiedoston kansioon /etc/puppet/manifests ja sinne yhden rivin ”include helloworld”.  Loin alikansiot: sudo mkdir /etc/puppet/modules/helloworld/manifests | sudo mkdir /etc/puppet/moduleshelloworld/templates ja init.pp:n helloworld/manifests alle:

class helloworld {

file { '/tmp/helloworld':
 content => "Hello Slave! I am your master!",
 }
}

Seuraavaksi asensin puppetmasterin komennolla sudo apt-get install puppetmaster .

Tämän jälkeen muutin master koneen tietoja Teron ohjeen mukaan:

sudo hostnamectl set-hostname mastershammer
sudoedit /etc/hosts -> toiselle riville xubuntun lisäksi tuo mastershammer
sudo service avahi-daemon restart

Testasin ja master kone vastaa pingiin nimellä mastershammer.local.

Seuraavaksi loin uudet certit master koneelle
sudo service puppetmaster stop
sudo rm -r /var/lib/puppet/ssl

Seuraavaksi lisäsin /etc/puppet/puppet.conf tiedostoon master koneen tiedot:

[master]
dns_alt_names = puppet, mastershammer.local

Tämän jälkeen käynnistin puppetmasterin uudestaan.

Siirryin slave koneelle. Puppet oli jo asennettuna, joten siiryin seuraavaan vaiheeseen. Lisäsin tiedostoon /etc/puppet/puppet.conf rivit:

[agent]
server = master.local

Seuraavaksi otin agentin käyttöön komennolla: sudo puppet agent – -enable ja käynnistin servicen uudestaan: sudo service puppet restart . Seuraavaksi otin yhteyttä masteriin:

sudo puppet agent – -test – -verbose

”Exiting: no certificate found and waitforcert is disabled”

Siiryin takaisin masterille ja allekirjoitin certin:

sudo puppet cert –list
sudo puppet cert –sign hp625

Sitten testasin toimivuuden orjalla:

sudo puppet agent – -test – -verbose

toiimiii

Cert list:

logitt

masterhttp.log:

logit

Lähteet:

Tehtävänanto: http://terokarvinen.com/2017/aikataulu-linuxin-keskitetty-hallinta-3-op-vanha-ops-%e2%80%93-loppusyksy-2017-p5-puppet

Skriptin malli: https://github.com/poponappi/essential-tools

Master/slave setup: http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04
(Huom! osa ohjeesta jatkuu kommenteissa!)

Mainokset

Yksi kommentti artikkeliin ”Viikkotehtävä 2

  1. Päivitysilmoitus: H4 – Lauri Alho

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