Palvelinten Hallinta H3 tehtävä

Tehtävänanto:

h3.

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

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

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.

e) Vapaaehtoinen: Oikeaa elämää. Ratkaise jokin kurssin ulkopuolinen asia Puppetilla.

f) Vapaaehtoinen: Unelmien tikku. Tee unelmiesi USB-live-tikku.

(Tehtävät tulee raportoida tehdessä, tunnilla tehdyn muisteleminen ei riitä).

Harjoituksessa käytetty tietokone:

  • CPU: Intel Core I5 3570K
  • GPU: Gainward Geforce 1070 GTX
  • HDD: Corsair 1TB
  • SSD: Corsair Force 3 120GB
  • RAM: Corsair Vengeance DDR3 16GB
  • MB: MSI H77MA-G43

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.

Aloitin tehtävän 8.11.2017 klo. 17.15. Aloitin tehtävän antamalla peruskomennot. Tein tehtävää yhdessä kurssilaisen kanssa.

$ setxkbmap fi

$ sudo apt-get update

 

Master

Varsinaisen tehtävän aloitin luomalla omasta koneestani Masterin ja toisesta rautakoneesta orjan.

Latasin puppetmasterin

$ sudo apt-get -y install puppetmaster

 

Muutin hostnamen masteriksi komennolla

$ sudo hostnamectl set-hostname master

$ sudoedit /etc/hosts

 

master.png

Laitoin vielä $ hostname -I -komennosta saadun IP-osoitteen kuvan ensimmäisten osoitteiden alle, ja perään nimeksi master.

Määritin puppet.conf -kansioon masterin tiedot. Master.localin lisäksi määritin nimeksi myös master.

 $ sudoedit /etc/puppet/puppet.conf

masterdns

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

$ sudo service avahi-daemon restart

T’ämän jälkeen pingasin orjaa.

$ ping rautaorja.local

pingaus

 

Loin orjan sertifikaatin onnistumisen testaamiseksi moduulin /etc/puppet/modules/hello/manifests/ -kansioon

$ sudoedit init.pp

hello2moduuli

(tiedosto vaihtui kuvasta hello.txt)

Ajoin moduulin komennolla

$ sudo puppet apply -e ‘class {hello:}’

 

applyingmodule.png

 

Käynnistin puppetmasterin uudestaan

$ sudo service puppetmaster restart

Orjan sertifikaattipyynön suoritin komennoilla, jotka listasivat kysytyt sertifikaatit, ja hyväksyitvät sertifikaatin kysyjälle

$ sudo puppet cert list -all

$ sudo puppet cert sign rautaorja.home

 

sign.png

Pyyntö allekirjoitettiin onnistuneesti, ja kokeilimme sen toimivuutta avaamalla orjalla masterin moduuli.

Rautaorja

Rautaorjan luonti tapahtui toisella koneella. Ensimmäisenä muutettiin hostname

$ sudo hostnamectl set-hostname rautaorja

Seuraavaksi lisättiin masterin ip-osoite hosts-kansioon, sekä omaksi host-nimeksi rautaorja

$ sudoedit /etc/hosts

orjan hosts

Seuraavaksi lisättiin agent määritys, ja masterin nimi puppet tiedostoon, sekä uudelleenkäynnistettii avahi-daemon

sudoedit /etc/puppet/puppet.conf

puppetconf

$ sudo service avahi-daemon restart

Masterin pingaus onnistui, ja masterille lähetettiin sertifikaattipyyntö

Sudo puppet agent enabloitiin, ja lähetettiin pyyntö -tdv -komennolla, jonka jälkeen master hyväksyi avaimen, ja ajettiin tdv -komento uudestaan.

 $ sudo puppet agent –enable

$ sudo puppet agent -tdv

Screenshot_2017-11-08_17-50-49

 

Masterin luomaa tekstitiedostoa pystyi lukemaan onnistuneesti

hellotxt

 

 

Virtuaaliorja

Virtuaaliorjan luomiseen katsoin Teron ohjeista mallia.

Asensin Vagrantin ja Virtualboxin komennoilla

$ sudo apt-get -y install vagrant virtualbox

Seuraavaksi loin Vagrantfilen ja syötin sinne tarvittavat komennot virtuaaliorjien asennusta varten, joihin otin mallia Teron ohjeista

$ nano Vagrantfile

# http://TeroKarvinen.com/
Vagrant.configure(2) do |config|
config.vm.box = “bento/ubuntu-16.04”

config.vm.define “slave01” do |slave01|
slave01.vm.hostname = “slave01”
end

config.vm.define “slave02” do |slave02|
slave02.vm.hostname = “slave02”
end
end

# http://TeroKarvinen.com/
Vagrant.configure(2) do |config|
config.vm.box = “bento/ubuntu-16.04”

config.vm.define “slave03” do |slave03|
slave03.vm.hostname = “slave03”
end

config.vm.define “slave04” do |slave04|
slave04.vm.hostname = “slave04”
end
end

(Skripti tehtiin kahteen vagrantfileen, joissa toinen asensi orjat 01-02 ja toinen orjat 03-04. Slave02 jäätyi asennuksen jälkeen, eikä siihen voinut ottaa yhteyttä, eikä sitä näkynyt lokeissa. Asian olisi voinut hoitaa myös yhdellä skriptillä, mutta aika loppui kesken sen selvittämiseen)

Laitoin asennuksen käytäntöön komennolla

$ vagrant up

Kun asennus oli valmis otin yhteyttä slave01 komennolla

$ vagrant ssh slave01

Tein bash skriptin, joka tekee koneesta orjan, ja latasin sen slave01

$ wget https://raw.githubusercontent.com/Defthy/Slaverscript/master/vagrantpuppet.sh

Suoritin skriptin komennolla

$ bash vagrantpuppet.sh

Jouduin antamaan vielä seuraavat komennot uudestaan, jotta sertifikaatin toteuttaminen onnistui

$ sudo puppet agent –enable

$ sudo service puppet restart

Masterilla sertifikaatin allekirjoitus onnistui

sertifikaatteja.png

Slave01 pystyi lukemaan tekemäni moduulin

$ cat /tmp/hello.txt

toimii2.png

Kokelin samoja toimintoja toisella orjalla

jotenkin-hello.png

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

cd /var/lib/puppet en päässyt sudo-oikeuksilla käsiksi hakemistoon, joten jouduin menemään superuser oikeuksilla kyseiseen kansioon

$ sudo -i

Tutkin hakemistot läpi, ja löysin lokeja, joista ilmeni orjien tietoja. Tiedostosta  ilmenee onko kone fyysinen vai virtuaalinen, käyttöjärjestelmä tietoja, rauta yms. Samasta lokista näkyi myös MAC, sekä muut verkko-osoitteet. Halutut tiedot löytyivät

$ cd /var/lib/puppet/reports

Joissa löytyi konekohtaisesti .yaml-kansiot, joita pystyi lukea

$ cat 201711081836.yaml

Rautaorjan tiedot

img_20171108_210122.jpg

 

img_20171108_210104.jpg

  Virtuaaliorjan tiedot (virtuaaliselta jäi ottamatta kuva kohdasta jossa ilmennetään onko kyseessä virtuaalinen vai fyysinen kone.

img_20171108_210025.jpg

 

Lähteet:

https://github.com/Defthy/Vagrantfile

https://github.com/poponappi/vagrant-puppet

Advertisements

One thought on “Palvelinten Hallinta H3 tehtävä”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s