Palvelinten hallinta – ICT4TN022 – 3005 Harjoitus 6

Tehtävän lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

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

Asennettiin RedHat pohjainen CentOS virtuaalikoneelle.

Seuraavaksi liitetään juuri tehty tietokone salt-master koneeseen. Eli aloitetaan asentamalla salt-minion seuraavilla ohjeilla: https://repo.saltstack.com/#rhel.
$ sudo yum install https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest.el8.noarch.rpm
$ sudo yum clean expire-cache
$ sudo yum install salt-minion

Tämän jälkeen käydään muokkaamassa /etc/salt/minion konfigurointi tiedostoa.
$ sudo nano /etc/salt/minion

Tähän tiedostoon laitetaan tiedot master koneesta eli tämän IP-osoite sekä orjan ID
master: 192.168.10.52
id: orja

Tämän jälkeen otetaan uudet tiedot käyttöön käynnistämällä uudestaan salt-minion (CentOS koneessa) ja salt-master (master koneessa.
$ sudo systemctl restart salt-minion
$ sudo systemctl restart salt-master

Seuraavaksi hyväksytään avaimet masterilla.
$ sudo salt-key -A

Seuravaksi käynnistetään uudelleen salt-master, jonka jälkeen päästään testaamaan lopputulos.
$ sudo systemctl restart salt-master

Testataan lopputulos seuraavalla komennolla.
$ sudo salt ‘*’ cmd.run ‘whoami’

Ja näin tiedetään, että kommunikointi koneiden välillä toimii.

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

Lähdin tutkimaan salt –help sivua, josta löysin apua.

Lähdin testaamaan löytämäni tiedon avulla keräämään tietoja orjista.

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.

Muokataan hiukan vanha MOTD seuraavanlaiseksi

Ajetaan sshd moduuli muutaman kerran.
$ sudo salt ‘*’ state.apply sshd

Seuraavaksi testaan lopputulos. Otetaan ensin CentOS koneella yhteys Xubuntu koneseen.
$ ssh make@192.168.10.52

Seuraavaksi vielä Xubuntu koneelta yhteys CentOS koneeseen.
$ ssh make@192.168.10.44

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.

Tässä apuna toiminut Tero Karvisen materiaali: http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains

Aloitetaan tekemällä /srv/salt kansioon /tmp kansio ja luodaan tähän samaiseen kansioon init.sls tiedosto ja os.txt teidosto.
$ sudo mkdir /srv/salt/tmp
$ sudo nano /srv/salt/tmp/init.sls
$ sudo nano /srv/salt/tmp/os.txt

Kirjoitetaan, jotain yksinkertaista os.txt tiedostoon ja käytetään .

Tehdään init.sls teidostoon if lause, joka määrittää millainen /tmp kansio luodaan koneen käyttöjärjestelmän mukaan.

Tämän jälkeen ajetaan muutaman kerran tmp moduuli.
$ sudo salt ‘*’ state.apply tmp

Testataan toimivuus.

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

Luodaan ensin /srv/salt -kansioon apache hakemisto ja tähän luodaan init.sls tiedosto. Tämän lisäksi kopioidaan index.html tiedosto kyseiseen kansioon, sekä haetaan httpd.conf tiedosto orjakoneelta sftp:n kautta.
$ sudo mkdir /srv/salt/apache
$ sudo nano /srv/salt/apache/init.sls
$ sudo cp /var/www/html/index.html /srv/salt/apache/index.html
$ sftp> put /etc/httpd/conf/httpd.conf /srv/salt/apache/

Luodaan init.sls tiedostoon muutama IF-lause. Tiedosto näyttää seuraavalta:

Tehdään muutoksia index.html tiedostoon. Muutokset näkyvät testauksen yhteydessä.
$ sudo nano /srv/salt/apache/index.html

Seuraavaksi ajetaan moduuli muutaman kerran.
$ sudo salt ‘*’ state.apply apache

Apache2 ei pyöri Xubuntulla, koska siellä on taustalla Nginx, mutta muuten kaikki toimii loistavasti. Seuraavaksi testaan tulos menemällä CentOS konellaa apache2 palvelimen etusivulle menemällä localhost:lle.

Kuten huomataan, homma toimii.

Lähteet:

http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains

https://www.linode.com/docs/applications/configuration-management/configure-apache-with-salt-stack/

https://repo.saltstack.com/#rhel

http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

Leave a comment

Design a site like this with WordPress.com
Get started