H2 Palvelinten hallinta (Linux)

Tehtävät liittyvät Haaga-Helia AMK Tero Karvisen pitämään kurssiin, Palvelinten hallinta ict4tn022-3. Tehtävät löytyvät täältä.

Koneen rauta (labraluokan koneet 5004 haaga-helia)

konenrauta.png

Ennen tehtävien aloittamista, tarkistin verkkoyhteyden ja ajoin Xubuntulla komentokehotteessa komennot <sudo apt-get update><setxkbmap fi>, eli päivitin paketit ja vaihdoin näppäimistön kieleksi Suomi.

Tein tehtävät 2.11.2017. Tehtävissä kesti noin 5 tuntia.

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

Alotin tekemällä scriptin githubiin:

https://raw.githubusercontent.com/Rasmusekmanhh/allinone/master/allinone.sh

Screenshot_2017-11-02_13-30-06.png

Scripti tekee seuraavat komennot:

  • Aikavyöhyke Helsinki
  • Näppäimistö suomeksi
  • Päivittää paketit
  • Lataa gitin, treen ja puppetin
  • Menee puppet modules kansioon ja kloonaa sinne githubista valmiiksi luodun sshd moduulin, joka on konfigoroitu toimimaan portilla 8888.
  • Ajaa sshd moduulin

Seuraavaksi koitin ajaa scriptini bashilla

 

Screenshot_2017-11-02_13-59-54.png

 

Screenshot_2017-11-02_14-00-32.png

Scripti toimi. Seuraavaksi testasin tekikö se halutut muutokset:

Screenshot_2017-11-02_14-01-52.png

Aikavyöhyke oli Europe/Helsinki.

Näppäimistö oli suomenkielinen.

Git asennus toimi koska scripti toimi, puppet oli asentunut ja tree myös.

Screenshot_2017-11-02_14-09-13.png

Kokeilin ssh:ta ja että se toimii vain portilla 8888.

Screenshot_2017-11-02_14-10-54.png

Screenshot_2017-11-02_14-11-42.png

Scripti toimi ja nyt valitsemani säädökset saa uudelle linux koneelle kahdella komennolla!

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

Ohjeet tehtävään löytyy täältä:

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

Tehtävään tarvitsee kaksi konetta. Käytin Haaga-Helian luokan 5004 koneita. Toinen koneista oli master ja toinen slave.

Aluski määrittelin sekä masterille että slavelle omat hostnamet.

<sudo hostnamectl set-hostname master(tai slave)>

<sudoedit /etc /hosts>

linuxmaster.png

Eli 127.0.1.1 Linux loppuun lisäsin “master”. Myös orjan koneella on tehtävä tämä, mutta loppuun lisätään tietysti “slave” tai mikä tahansa muu orjalle luomasi hostname.

Käynnistin avahi-daemon uudestaan

<sudo service avahi-daemon restart>.

Tein tämän siis masterille ja slavelle erikseen omilla koneillaan.

Seuraavaksi kokeilin pingata masterilta->masterille, masterilta->slavelle,slavelta->slavelle,slavelta->masterille komennolla

<ping slave(tai master, riippuu mitä haluat pingata).local>

Screenshot_2017-11-02_16-12-48.png

Kaikki OK

Seuraavaksi latasin master koneelle puppetmasterin

master$<sudo apt-get install -y puppetmaster>.

Regeneroin uuden master sertifikaatin pysäyttämällä puppetmaster demonin

master$<sudo service puppetmaster stop>

ja deletoimalla ssl tiedoston /var/lib/puppet kansiosta

master$<sudo rm -r /var/lib/puppet/ssl>.

Seuraavaksi lisäsin masterin nimet /etc/puppet/puppet.conf tiedostoon

master$<sudoedit /etc/puppet/puppet.conf> kuten kuvassa näkyy:

Screenshot_2017-11-02_16-21-39.png

dns_alt_names = puppet, master.local, puppet.master <— master.local kohtaan laitetaan siis masterille määritelty hostname.

Käynnistin puppetmaster demonin uudestaan

master$<sudo service puppetmaster start>.

Seuraavaksi latasin slaven (orja) koneelle puppetin (ei siis puppetmasteria vaan pelkkä puppet).

slave$<sudo apt-get install -y puppet>

Muokkasin orjalla puppet.conf tiedostoa, lisäämällä sinne masterin DNS nimen.

slave$<sudoedit /etc/puppet/puppet.conf>

[agent]

server = master.local

Seuraavaksi annoin orjalle oikeudet käynnistyä menemällä /etc/default/puppet kansioon

slave$<sudoedit /etc/default/puppet>

Lisäsin tekstitiedostoon (joka on siis tyhjä) :

START=yes

Seuraavaksi käynnistin orjan puppetin uudestaan

slave$<sudo service puppet restart>

Seuraavaksi lisäsin orjan sertifikaatin masterille

master$<sudo puppet cert –list> <sudo puppet cert –sign (tähän se osoite jonka saat cert lististä “example.com“>

Sitten loin moduulin masterilla

master$<cd /etc/puppet><sudo mkdir -p manifests/ modules/helloworld/manifests/> <sudoedit manifests/site.pp>

include helloworld

master$<sudoedit modules/helloworld/manifests/init.pp>

class helloworld {
file { ‘/tmp/helloFromMaster’:
content => “See you at http://terokarvinen.com/tag/puppet\n”
}
}

Ajoin moduulin komennolla:

<sudo puppet apply -e ‘class{“helloworld”:}’>

Seuraavaksi kun moduuli oli luotu masterilla ja ajettu, käynnistin orjan puppetin uudestaan

slave$<sudo service puppet restart><sudo service puppet reload>

slave$<sudo puppet agent –enable>

Kokeilin orjalla ajaa mestarilla luodun helloworld tiedoston

slave$

<cat /tmp/helloFromMaster>

Screenshot_2017-11-02_14-57-29.png

Sain siis masterilla luotua tiedoston, ja se luotiin myös orjan tietokoneelle samalla. Hallitsen siis orjaa masterin koneelta ja kaikki toimii OK.

Tässä masterin cert list:

cert list masterilla.png

Tässä masterhttp.log:

masterhttp.log.png

Muuta ohjeita tehtäviin:

Miten regeneroida masterille sertifikaatti:

master$<sudo service puppetmaster stop> <sudo rm -r /var/lib/puppet/ssl> <sudo service puppetmaster start>

Orjalle sama:

slave$<sudo service puppet stop> <sudo rm -r /var/lib/puppet/ssl> <sudo service puppet start>

Jos teet masterin koneella muutoksia ja ne eivät näy orjalla, koita

slave$<sudo puppet agent –enable> <sudo service puppet reload>.

Jos ongelmia saada masterille orjan sertifikaatti, pysäytä orjalla puppet ja masterilla puppetmaster ja deletoi ssl tiedosto sekä orjalta että masterilta. Käynnistä puppet ja puppetmaster uudelleen ja kirjoita orjalla

slave$<sudo puppet agent -t>

ja sen jälkeen masterilla

master$<sudo master cert –list>

LÄHTEET:

http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04 – Tero Karvinen, ohjeet puppetmasterin asennukseen ja käyttöön.

http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5 – Tero Karvinen, Palvelinte hallinta (linux) -kurssi, tehtävänanto ja ohjeita.

https://github.com/poponappi/essential-tools – Eemeli Aaltonen, esimerkki scripti h1 tehtävää varten

 

 

 

 

Advertisements

4 thoughts on “H2 Palvelinten hallinta (Linux)

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