Palvelinten hallinta H3

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

Harjoitus suoritetaan DigitalOcean.a vuokratulla 64 bittisellä Ubuntu 16.04.03 palvelimella, jossa on 4 ydintä sekä 8 Gb keskusmuistia sekä 64 bitisellä Xubuntu 16.04.3 järjestelmällä jossa on Intel Xeon E7 v3 prosessori (12/24), 32Gb DDR4 ECC keskusmuistia sekä 3Tb WD RED kovalevy.

a) Asenna useita orjia yhteen masteriin. Ainakin yksi rauta- ja useampia virtuaalisia orjia.

c) OrjaSkripti: Tee skripti, joka muuttaa koneen Puppet-orjaksi tietylle masterille. Voit katsoa mallia Tatun tai Eemelin ratkaisuista.

d) (vapaaehtoinen) Laita skripti Vagrantfile:n provisointiskriptiksi.

[master]

Aloitan tehtävän asentamalla Puppetmaster koneen. Tähän tarkoitukseen vuokraan palvelimen DigitalOceanin sivuilta.

Luon uudelle konelle käyttäjän sekä teen suojaavat toimenpiteet ennen varsinaista käyttöön ottoa. Avaan palomuurista portit 22/tcp sekä 8140/tcp pupettia varten. Suljne myös koneelta mahdollisuuden kirjautua sisään root.a.

Tämän jälkeen teen koneelle A-recordin ja laitan osoittamaan sen osoitteeseen pmaster.erkinjuntti.me.

Tarkemmat ohjeet tämän tekemiseen löytyy aikaisemman kurssini raportista : Linux palvelimet H4

Lataan ja asennan koneelle päivitykset komennolla

“sudo apt-get update”

“sudo apt-get upgrade”

Tämän jälkeen asennan koneelle puppet.n sekä puppetmaster.n, teen tämän komennolla

“sudo apt-get install puppet puppetmaster”.

Pysäytän palvelun komennolla

“sudo service puppetmaster stop”

Muokkaan “etc/puppet/puppet.conf” tiedostoa, teen lisäyksen vaihtoehtoisista dns nimistä sekä alustan autosign toiminnon, tosin asetan sen “false” toistaiseksi.

Luon uuden moduulin sekä ini.pp tiedoston tätä harjoitusta varten, sijoitan sen /etc/puppet/modules/slavemessage/manifests/init.pp

Luon myös site.pp tiedoston /etc/puppet/manifests kansioon johon teen lisäyksen uudesta modulista = “include slavemessage”

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

“sudo service puppetmaster restart”

Asennusskriptit

Käytän tässä harjoituksessa kolmea skriptiä. Yksi Vagrant.n asennusskripti, yksi puppetorja skripti sekä varsinainen puppetorja puppet moduli.

VAGRANT.

Tunnilla läpikäyty asennusskripti oli varsin toimiva mutta koin sen hivenen työlääksi jos tarkoituksena olisi asentaa hyvin monta virtuaalikonetta samaan aikaan. Aikani kokeiltua sain toimivan loop rakenteen lisättyä skriptiin, tähän huomioitu myös ssh port forward ongelma joka esiintyy ajoittain. Samaan skriptiin on lisätty puppetorja asennus sekä hosts lisäys masterkoneesta.

 

PUPPETORJA SKRIPT

Nämä olivat esillä aikaisemmalla opetutunnilla, ainoa muutos on uuden master serverin nimi.

[Slave]

Asennan slave koneen palvelinkäytössä olevalle tietokoneelleni, käyttöjärjestelmäksi asensin 64 bittisen Xubuntu 16.04.3 käyttöjärjestelmän. Laitetiedot:

Teen tästä fyysistä koneesta ensimmäisen puppet orjan, koneen päivityksen jälkeen lataan ja ajan orjaskriptin, teen tämän komennolla

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

ja tämän jälkeen

“bash puppetSlaver.sh”

Tarkistan masterkoneelta että yhteystoimii ja lisään koneen “slave”

Tämän jälkeen tarkastan että masterin moduli välittyy orjalle

Asennan Vagrantin, teen tämän komennolla

“sudo apt-get install vagrant virtualbox”

Tämän jälkeen luon kansion “vagrant”, tänne lataan tekemäni vagrantskriptin komennolla

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

Suoritan asennuksen komennolla

“vagrant up”

Asennuksen jälkeen tarkistan master koneelta että yhteys toimii ja lisään uudet orjat

kirjaudun vagrant virtuaalikoneelle komennolla

“vagrant ssh slave3”

ja tarkastan että linkki toimii.

Koska kurssilla on pieni muotoinen kilpailu (suurin määrä orjakoneita samalla masterkoneella). Muokkaan masterkoneen puppet.conf tiedostoa ja muutan autosign arvoksi “true”, näin minun ei tarvitse käsin hyväksyä kaikkia pyyntöjä. tämän jälkeen käynnistän puppetmaster.n uudestaan. Tämän jälkeen muokkasin vagrant skript.a jotta luotavia koneita olisi 100.

Edit 14.11.2017

Tällä hetkellä master.n alaisuudessa on 263 orjaa, jotka sijaitsevat samalla tietokoneella.

Koneiden luonnin aikana esiintyi virhe “remote connection disconnect” ssh yhteyden kanssa. Tämä käytännössä katkaisi koneiden luontiprosessin. Jatkaakseen piti poistaa aikaisempi luomansa virtuaalikone ja ajaa Vagrantfile uudestaan. 

b) Kerää tietoa orjista: verkkokorttien MAC-numerot, virtuaalinen vai oikea… (Katso /var/lib/puppet/)

Asennan master koneella tree.n, näin tiedosto rakenteen näkeminen on selkeämpää. Teen tämän komennolla

“sudo apt-get install tree”

Yritin päästä käsiksi kansioon /var/lib/puppet mutta sain ilmoituksen “permission denied”. Koska en halua leikkiä kansioiden oikeuksilla kirjauduin root käyttäjäksi komennolla

“sudo -i”

Tämän jälkeen pääsin ongelmitta käsiksi kansioon.

Löysin kansion /var/lib/puppet/yaml/node joka sisälsi kaikki sen hetkiset orjat.

Tarkastelin konetta jonka tiesin olevan fyysinen, tässä tapauksessa slave.yaml.

Ja vertailun vuoksi kone jonka tiedän varmasti olevan virtuaalinen, tässä tapauksessa slave1

Skriptit saatavilla osoitteesta:

https://github.com/TatuE/Vagrantfile

https://github.com/TatuE/puppetslaver

https://github.com/TatuE/puppetInstaller

Lähteet:

https://www.vagrantup.com/docs/vagrantfile/tips.html

http://joequery.me/guides/multiple-vagrant-vms-ssh-2222-already-in-use/

http://www.thisprogrammingthing.com/2015/multiple-vagrant-vms-in-one-vagrantfile/

http://terokarvinen.com/2017/provision-multiple-virtual-puppet-slaves-with-vagrant