Palvelinten hallinta H2

Tehtävässä käytetyt harjoitukset löytyvät osoiteesta : Palvelinten hallinta
Kurssin opettajana toimii Tero Karvinen.

Harjoitus suoritetaan Lenovo T470P kannettavalla tietokoneella, jossa on i7 7700hq suoritin, 16 Gb DDR4 keskusmuistia sekä Samsung 960 evo 256Gb m.2 kovalevy.

Käyttöjärjestelminä toimii kolme Ubuntu 16.04.3 64bit asennusta, jotka on asennettu VirtualBox virtuaaliympäristöön.

Ennen tehtävän aloitusta asennan käyttöjärjestelmät ja varmistan että ne ovat samassa virtuaaliverkossa.

Jotta saan virtuaaliympäristöt samaan verkkoon, joudun luomaan sitä varten DHCP-palvelimen. Verkkon nimi on tässä tapauksessa “intnet”, ip-osoitteella 10.13.13.100.

Tämän jälkeen asennan järjestelmät normaaliin tapaan virtualbox.n. Koneet nimetään Ubuntu-01, Ubuntu-02, Ubuntu-03.

Kun järjestelmät on asentunut, muokkaan hieman niiden verkkoasetuksia omia käyttötarkoituksia varten.

Ensimmäinen verkkoadapteri liitetään juuri asennettuun “intnet” verkkoon.

Toinen verkkoadapteri liitetään NAT.n, jotta järjestelmillä olisi yhteys myös internettiin.

Tämän jälkeen testaan että verkko toimii, kuten tarkoitettu.

Tämän jälkeen päivitän uudet koneet komenolla

“sudo apt-get update”

sekä

“sudo apt-get upgrade”

 

h2.

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

Teen asennus skriptin käyttäen bash.a, ja asennan sillä modulit jotka olen tehnyt aikaisemmassa tehtävässä, sekä lamp modulit jotka tein aikaisemmalla opetustunnilla.

Asennettavat modulit ovat : UFW, SSH sekä LAMP. Huom! LAMP.n mysql asennuksessa root salasanaa en saanut asentumaan, puppet ohittaa asennuksessa root salasanan luonnin. Tietokantaan voi kirjautua komennolla

“sudo mysql -u root”

Modulit löytyvät osoitteesta https://github.com/TatuE/puppet sekä https://github.com/TatuE/puppetInstaller

Toteutettava skripti:

Koska skripti on alustavasti tarkoitettu omaan käyttöön, sen lisää siihen mitään itselleni turhaa.

Toteutan skriptin Ubuntu-01 koneella, koska siitä on tarkoitus tulla seuraavassa harjoituksella tulla puppetmaster.

Lataan koneelle suoritettavan skriptin komennolla

“wget https://raw.githubusercontent.com/TatuE/puppetInstaller/master/puppetInstaller.sh”

tämän jälkeen ajan sen komennolla

“bash puppetInstaller.sh”

Skriptin saa suoritettua ilman ongelmia, tämän jälkeen testaan kaikki asennetut modulit:

 

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ä.

Aloitan tekemällä tarvittavat muutokset Ubuntu-01 koneeseen, josta on tarkoitus tehdä Master.

Muutan Ubuntu-01 koneen host nimen muotoon “master”, teen tämän komennolla

“sudo hostnamectl set-hostname master”

Tämän jälkeen lisään hosts tiedostoon viitteen “master” nimestä

Tämän jälkeen käynnistän avahin uudestaan komennolla

“sudo service avahi-daemon restart”

Teen samat muutokset Ubuntu-02 sekä Ubuntu-03 koneeseen mutta käytän master nimen sijaan slave1(Ubuntu-02) sekä slave2(Ubuntu-03) nimeä.

Tämän jälkeen testaan että koneet saavat yhteyden toisiinsa, uusilla hostnimillä.

Tämän jälkeen asennan Ubuntu-01 koneelle puppetmaster.n, teen tämän komennolla

“sudo apt-get install puppetmaster”

Tämän jälkeen pysäytän puppetmaster.n komennolla

“sudo service puppetmaster stop”

Poistan puppet.n ssl tiedoston komenolla

“sudo rm -r /var/lib/puppet/ssl”

Muokkaan puppet.conf tiedostoa, joka sijaitsee kansiossa /etc/puppet/ ja teen siihen dns_alt_names lisäyksen. Teen tämän käyttäen sudoedit.a

Tämän jälkeen käynnistän puppetmaster.n komennolla

“sudo service puppetmaster start”

Seuraavaksi asennan Ubuntu-02(slave1) koneelle puppet.n, teen tämän komennolla

“sudo apt-get install puppet”

Tämän jälkeen teen lisään “master” koneen dns nimen puppet.conf tiedostoon, jotta “slave1” tietää mihin ottaa yhteyttä.

Luon uuden tiedoston sudoedit.a “/etc/default/puppet” ja teen siihen lisäyksen

“START=yes”

Näin “slave1” saa luvan käynnistyä.

Tämän jälkeen käynnistän puppet.n uudestaan, komenolla

“sudo service puppet restart”

Tämän jälkeen testaan “master” on saanut yhteyden “slave1” koneelta ja lisään “slave1” koneen sertifikaatin “master” koneelle.

Teen tämän komennoilla

“sudo puppet cert –list”

sekä

“sudo puppet cert -sign [haluttu slave, tässä tapauksessa slave1.pp.htv.fi].

Tämän jälkeen testaan että puppet toimii halutulla tavalla, aikaisemmassa tehtävässä ajoin puppet asennus-skriptin Ubuntu-01(master) koneella, joten tarvittavat site.pp tiedosto sekä asennettavat modulit ovat jo valmiina “master” koneella.

Teen testin käynnistämällä “slave1” koneen uudestaan.

Tämä ei tuottanut tulosta, joten käynnistin Ubuntu-02 koneen uudestaan. Tämän jälkeenkään modulit eivät olleet vielä asentuneet. Odotin vielä hetken ja paketit olivat asentuneet koneelle “slave1”.

“master” koneen cert –list sekä pätkä herran http-lokia.

Slave2

Nyt kun varmistuin että prosessi toimii, kokeilen voisinko toteuttaa tämän samalla ajatuksella kuin ensimmäisen tehtävän skriptin kanssa.

Luon puppet modulin, johon liitän templateksi “slave1” koneen /etc/default/puppet sekä /etc/puppet/puppet.conf tiedostot. Lataan sen github.n ja testaan jos lataus ja skriptin ajo toimii.

 

Ensimmäisellä kerralla skriptin ajo kaatui kirjoitusvirheeseen. Kun tein korjauksen moduliin niin skriptin sai suoritettua kunnolla. Tämän jälkeen hyväksyin uuden orjan “master” tietokoneella.

Olin vielä hieman skeptinen skriptin toimivuudesta, joten loin vielä uuden Ubuntu virtuaalikoneen ja ajoin sen siinä läpi. Skripti suoritettiin ilman ongelmia ja uuteen orjaan ladattiin halutut modulit.

HUOM! Tämä harjoitus on tehty eri verkossa, kuin aikaisempi tehtävä. Tästä johtuen “slave2” sekä “slave3” certname poikkeaa.

Moduli nähtävissä: https://github.com/TatuE/puppetslaver

 

Lähteet:

http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04

https://superuser.com/questions/119732/how-to-do-networking-between-virtual-machines-in-virtualbox

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