Palvelinten hallinta ICT4TN022-3005 Harjoitus 6

Yksi totuus


Tehtävän suorittaminen aloitettu 12.5.2020 klo. 11:00

Laitteen/alustan tiedot, jolla tehtävä suoritettiin:

VM #1 (Xubuntu)

  • Oracle VirtualBox 6.1.6
  • Xubuntu 18.04.03 LTS (+ VirtualBox guest additions)
  • 4GB RAM
  • 8GB Levytilaa (dynaaminen)

VM #2 (CentOS)

  • Oracle VirtualBox 6.1.6
  • CentOS 8.1.1911
  • 2GB RAM
  • 16GB Levytilaa (dynaaminen)

a) Asenna jokin toinen Linux-levityspaketti orjaksi Saltille. CentOS on hyvä vaihtoehto. Voit esimerkiksi asentaa CentOS:n VirtualBoxiin ja tehdä koneiden välille virtuaaliverkon. Jos käytät Vagrantia, ‘cent.vm.box = “centos/7″‘ on kätevä.

Aloitin lataamalla CentOS-käyttöjärjestelmän ISO-tiedoston CentOS-projektin verkkosivuilta. Tämän jälkeen loin VirtualBoxin GUI:ssa uuden virtuaalikoneen, jonka käyttöjärjestelmäksi määritin yleisesti RedHat-perheen. RAM-muistin määräksi asetin 2GB ja loin virtuaalikoneelle myös 16GB virtuaalisen kovalevyn. Tämän jälkeen mounttasin virtuaalikoneen levyasemaan lataamani ISO-tiedoston ja käynnistin koneen. Tämä aloitti käyttöjärjestelmän asentamisen ja määrittelin samalla käyttäjän asetuksen, näppäimistöasetukset yms. Pienen odottelun ja uudelleenkäynnistyksen jälkeen CentOS oli käyttövalmis. Päätin olla asentamatta VirtualBox Guest Additionsia tälle virtuaalikoneelle, sillä en kokenut sitä tarpeelliseksi tehtävän suorittamista varten. Tämän jälkeen asensin virtuaalikoneelle Salt Minionin SaltStackin ohjeen mukaan. Huomasin myös, että minion piti CentOS:lla käynnistää erikseen komennolla ”sudo systemctl start salt-minion.service”, sillä se ei automaattisesti asentamisen jälkeen käynnistänyt itseään.

Tämän jälkeen tein VirtualBoxin GUI:n kautta uuden Nat-verkon, jotta voisin yhdistää CentOS-minionin Xubuntulla olevaan masteriin. Löysin verkon luomisesta videon, jota seurasinkin verkon luomisessa. Käytin apuna myös Teemu Aittomäen harjoitus 4 raportissa olevia ohjeita verkon luomisessa. Tämän jälkeen liitin molemmat virtuaalikoneet luomaani NAT-verkkoon VirtualBoxin käyttöliittymän kautta.

Tämän jälkeen ajoin Xubuntu-masterilla komennon ”hostname -I”, jolla sain masterin osoitteen. Muutin tämän osoitteen molempien Xubuntu ja CentOS minioneiden ”Minion” tiedostoon ja asetin myös molemmille omat ID:t. Masterilla ajoin komennon ”sudo salt-key -A”, jolla sainkin hyväksyttyä CentOS-minionin (Xubuntu-minion oli jo hyväksytty aikaisemmissa harjoituksissa). Testasin vielä molempien toimivuuden/vastauksen komennolla ”sudo salt ’*’ cmd.run ’whoami’”, johon sainkin molemmilta vastaukset.


b) Kerää grains.items avulla tiedot orjista, joissa on eri levityspaketti.

Keräsin minioneista levityspaketin tiedot, joka onnistui komennolla ”sudo salt ’*’ grains.item osfinger”. Tämä palautti minioneilta terminaaliin seuraavan

Komennolla voi tarkastella vaikka mitä tietoja minioneista. Tarkistin vielä RAM-muistin määrän komennolla ”sudo salt ’*’ grains.item mem_total”, joka palauttikin oletetut määrät vastauksena (Xubuntulla 4GB, CentOS 2GB)


c) Tee päivän viesti (motd), jossa koneen tyyppi tulee grains osfinger -muuttujasta. Kokeile, että saat eri levityspaketeilla eri tuloksen. Voit hyödyntää aiemmin tekemääsi motd:ia.

Käytin tämän tehtävän suorittamiseen aikaisemmin luotuja motd ja ssh määrityksiä. Testasin suoraan ajaa sshd-tilan komennolla ”sudo salt ’*’ state.apply sshd”, joka onnistui Xubuntu-minionilla suoraan (niin kuin pitäisikin) ja osittain CentOS-minionilla. Jostain syystä motdissa ollut grainssin eräs komento ei halunnut toimia, joten poistin sen tekemästäni motdista. Tämä poisti virheen yrittäessä ajaa tilaa uudestaan. Toinen ongelma oli sshd_config tiedostossa, joka esti jostain syystä demonin käynnistämisen. Löysin tähän selvityksen, jossa selitettiin, että ssh-portin vaihtaminen saattaa estää demonin käynnistämisen. Vaihdoinkin portin aikaisemmin määritellystä 8888 takaisin porttiin 22 ja sain ajettua tilan tämän jälkeen onnistuneesti molemmilla minioneilla. Testasin vielä ottaa ssh-yhteyden molempiin ja tämä onnistui, sekä näytti muokatun motdin.


d) Tee tila, joka tekee RedHat-perheellä (esim. CentOS) tiedoston /tmp/redhat ja Debian-perheellä (esim Ubuntu) tiedoston /tmp/debian. Voit käyttää mitä vain eri perheiden levityspaketteja.

Aloitin luomalla /srv/salt -hakemistoon uuden kansion komennolla ”sudo mkdir tiedosto”. Siirryin kansion sisälle ja loin sls-tiedoston komennolla ”sudoedit init.sls”. Tähän tiedostoon kirjoitin Tero Karvisen tunnilla näyttämään esimerkkiin perustuvan koodin

Tämän jälkeen ajoin tilan komennolla ”sudo salt ’*’ state.apply tiedosto” ja se suoritettiin molemmilla minioneilla onnistuneesti.

Ajoin komennon vielä uudestaan varmistuakseni sen olevan idempotenssi ja tilan ajaminen onnistui ilman muutoksia.


e) Tee tila, joka asentaa ja konfiguroi Apachen kahteen erilaiseen järjestelmään, esim. CentOS ja Ubuntu. Paketin nimi on CentOS:ssa “httpd”. Käytä Salt-koodin generointia muoteilla.

Aloitin poistamalla aikaisemman Nginx-asennuksen Xubuntu-virtuaalikoneelta komennolla ”sudo apt-get purge nginx”, sekä poistin tätä varten tehdyn tilan ja index.html -sivun /var/www/html/ -hakemistosta.

Tämän jälkeen loin masterin /srv/salt/ -hakemistoon uuden kansion komennolla ”sudo mkdir apache” ja tämän kansion sisälle sls-tiedoston komennolla ”sudoedit init.sls”. Lisäsin tämän tiedoston sisälle Tero Karvisen tunnilla näyttämän esimerkkikoodin, jolloin tiedoston sisältö näytti seuraavalta

Ajoin tilan ja se suoritettiin onnistuneesti. Testasin palvelinten toimivuuden selaimella. Localhost-osoitteessa näkyi onnistuneesti Xubuntulla pyörivä Apache-palvelin. Yrittäessäni päästä CentOS:lla pyörivälle palvelimelle Xubuntun selaimella tämä ei toiminutkaan. Löysin ongelmaani ratkaisun eräästä CentOS-foorumeiden postauksesta. Ajoin CentOS-terminaalissa komennon ”firewall-cmd --add-service=http”, jonka jälkeen palvelin näkyi selaimessa onnistuneesti.

Tämän jälkeen muokkasin aikaisemmin tehtyä init.sls -tiedostoa seuraavasti

ja loin apache-kansioon index.html tiedoston komennolla ”sudoedit index.html”. Tiedostoon kirjoitin satunnaisen testaustekstin. Tämän jälkeen ajoin tilan uudestaan ja se suoritettiin molemmilla minioneilla onnistuneesti. Tarkistin vielä selaimesta molempien sivujen muutokset ja ne olivat päivittyneet haluttuun tiedostoon

Tehtävä suoritettu 12.5.2020 klo. 18:30


Lähteet

Karvinen, Tero 2020: Configuration Managment Systems – Palvelinten Hallinta – Spring 2020, h6. http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/, Luettu 12.5.2020

SaltStack Package Repo. https://repo.saltstack.com/#rhel, Luettu 12.5.2020

Aittomäki, Teemu 2020: Palvelinten hallinta – Harjoitus 4. https://teemuaittomaki.wordpress.com/2020/04/29/palv-hallinta-h4/, Luettu 12.5.2020

Asecurity: How to create NAT Network in Virtualbox. https://www.youtube.com/watch?v=X-uBoEW9H2Q, Katsottu 12.5.2020

Gratschew, Tommy 2020: Palvelinten hallinta ICT4TN022-3005 Harjoitus 5. https://tgratschew.news.blog/2020/04/30/palvelinten-hallinta-ict4tn022-3005-harjoitus-5/, Luettu 12.5.2020

StackExchange: sshd service fails to start. https://serverfault.com/questions/538037/sshd-service-fails-to-start, Luettu 12.5.2020

CentOS Forums: Unable to access Apache over LAN. https://forums.centos.org/viewtopic.php?t=59161, Luettu 12.5.2020

CentOS ISO-tiedosto. https://www.centos.org/download/, Luettu 12.5.2020

One thought on “Palvelinten hallinta ICT4TN022-3005 Harjoitus 6

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

Create your website with WordPress.com
Get started
%d bloggers like this: