h7 Oma Moduuli

Tehtävän tavoitteena oli ratkaista jokin oikean elämän tai keksitty tarve omilla tiloilla/moduleilla. Oman moduulin tekemiseen meni

Suoritan tehtävät omalla tietokoneellani (HP Pavillion 15) VirtualBoxin kautta kahdella Linuxin Ubuntu 18.04 käyttöjärjestelmällä, sekä tässä tehtävässä toisessa virtuaalikoneessa CentOS 7 käyttöjärjestelmällä.

Tehtävä on osa Tero Karvisen palvelimen hallinta kurssia keväällä 2020. Tehtävän anto löytyy osoitteesta: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

b) Oma moduli (iso tehtävä). Ratkaise jokin oikean elämän tai keksitty tarve omilla tiloilla/moduleilla. Voit käyttää Salttia tai muuta valitsemaasi modernia keskitetyn hallinnan ohjelmaa. Esitä tulos viimeisellä opetuskerralla, 5-10 min (keskiviikon ryhmä). Live demo olisi kiva. Raportoi modulisi tarkoitus, koodi ja testit.

Moduulini tarkoitus on asentaa tilojen avulla LAMP kolmelle eri koneelle, masterille sekä kahdelle orjalle joista toinen on eri käyttöjärjestelmällä (CentOS)

Halusin aloittaa moduulin kokonaan puhtaalta pöydältä, joten ensimmäiseksi asensin kaksi virtuaalikonetta Ubuntun käyttöjärjestelmällä ja yhden CentOS käyttöjärjestelmällä. Latasin Ubuntun ISO-tiedoston Tero Karvisen sivuilta (http://terokarvinen.com/2020/remote-learning-tools-for-my-courses/) ja CentOS:in paketin CentOS sivuilta (http://isoredirect.centos.org/centos/7/isos/x86_64/).

Masterin ja minion asennus

Kun virtuaalikoneet oli asennettu, aloitin ensiksi asentamalla salt-masterin. Käytin masterin ja minioneiden asennukseeen avuksi Tero Karvisen ohjetta(http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux). Ensiksi aloitin asetamalla masterin master koneelle ja tarkistin tämän jälkeen masterin IP-osoitteen komennoilla:

sudo apt-get -y install salt-master
hostname -I

Tämän jälkeen asensin minionin sekä master koneelle, että toiselle Ubuntu koneelle ja lisäsin /etc/salt/minion tiedostoon orjan id:n(ubuntuorja) ja master IP:n (192.168.8.124) sekä viimeisenä käynnistin palvelun uudelleen komennoilla:

sudo apt-get -y install salt-minion
sudoedit /etc/salt/minion
sudo systemctl restart salt-minion

Tämän jälkeen asensin minionin CentOS käyttöjärjestelmään ja lisäsin id:n (centosorja), master IP:n sekä käynnistin palvelun uudelleen komennoilla:

sudo yum -y install salt-minion
sudo nano /etc/salt/minion
sudo systemctl restart salt-minion

Menin takaisin masterin koneelle ja hyväksyin kaikkien minioiden avaimet komennolla:

sudo salt-key -A

Viimeisenä testasin vielä, että kaikki minionit toimivat komennolla:

sudo salt ‘*’ cmd.run ‘whoami’

LAMP asennus

Päätin tehdä LAMPin eri ohjelmille kaikille oman tilan, joka konfiguroi ja asentaa kyseinen ohjelman. Asensin ohjelmat ensin käsin molemmille käyttöjärjestelmille ja varmistin miten ne toimivat käsin asennettuina ennen kuin tein tilat. Ensiksi asennan ja konfiguroin Apachen. Kyseinen kohta on melkein samanlainen kuin edellisessä tehtävässä 6 (https://janni.tech.blog/2020/05/11/h6-yksi-totuus/)

Käsinasennus

Asensin ensin masterille kaikki ohjelmat käsi ja käytin tässä kohdassa näitä komentoja:

sudo apt-get -y install apache2 mariadb-server mariadb-client php7.2 libapache2-mod-php7.2 php-mysql
sudo a2enmod userdir
sudo systemctl restart apache2

LAMP Moduuli

LAMP moduulin asennukseen käytin apuna Linoden ohjeita (https://www.linode.com/docs/applications/configuration-management/use-salt-states-to-create-lamp-stack-and-fail2ban-across-salt-minions/ ja https://www.linode.com/docs/applications/configuration-management/use-salt-states-to-configure-a-lamp-stack-on-a-minion/) sekä Teron ohjeita (http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example). Katsoin myös apua edellisen vuoden opiskelijoilta (https://www.bloglinux.me/node/15 ja https://otsorauta.wordpress.com/2018/12/03/h6-lamp-asennus-saltilla/)

Aloitin ensiksi luomalla /srv/salt ja /srv/salt/lamp hakemistot komennoilla:

sudo mkdir /srv/salt
sudo mkdir /srv/salt/lamp
sudoedit init.sls


Päätin tehdä erikseen tilat asennukselle ja konfiguroinnille. Tein ensinki tilatiedoston ja se oli tämän näköinen:


Tämän jälkeen ajoin tilan ja kaikki muut menivät läpi molemmissa käyttöjärjestelmissä, paitsi libapache2-mod-php7.2 CentOS:ksella. Tämä oli odotettavissa sillä kyseistä pakettia ei CentOS:ksella ole. Käytin komentoa:

sudo salt ‘*’ state.apply lamp

Kun kaikki oli onnistuneesti asentunut, tein uuden kansion ja init.sls tilatiedoston konfiguroinnille komennoilla:

sudo mkdir /srv/salt/lampconf
sudoedit /srv/salt/lampconf/init.sls

Tässä kohdassa päätin jatkaa vain Ubuntu orjalle, sillä en keksinyt miten olisin saanut userdir moduulin toimimaan saltin avulla CentOS:ksessa. En keskinyt miten olisin fiksusti voinut kirjoittaa koodin.

Loin tässä vaiheessa myös tiedostot uusiindex.html (Tämän sisällä luki vain hei kaikki), uusiindex.php ja uusiphp.conf /srv/salt/lampconf polkuun. Kaksi muuta näyttivät tältä:

Tämän jälkeen tein lampconf init.sls tilatiedoston, joka näytti tältä:

Tämän jälkeen loin vielä tietokannan tekeen oman tilan mariadb ja sen sisälle init.sls tiedoston sekä tiedot.sql tiedoston, jotka näyttivät tältä:

Loin tämän jälkeen top.sls tiedoston ja lisäsin kaikki tilat tähän. Ajoin tämän jälkeen tilat komennolla ja ne menivät oikein läpi:

sudo salt ‘ubuntuorja’ state.apply

En saanut tietokannan tietoja näkymään PHP koodin avulla public_html sivuillani. Joten index.php public_html kansiossani ei toiminut. Yritin etsiä tähän netistä vastausta, mutta en saanut sitä toimimaan. Loin orjalle info.php tiedoston /var/www/html kansioon ja testasin, että PHP toimi. Se toimi. Myös Apache index.html tiedosto samassa polussa toimi. Kirjauduin MariaDB:lle ja tarkistin, että kyseinen tietokanta tuli varmasti luotua. Se löytyi MariaDB:sestä oikeanlaisena.

Selvittelin asiaa vielä ja vika oli PHP koodissa tai sen tiedoissa. Yritin tehdä PHP koodin vielä kahden eri ohjeen tavalla (https://www.ionos.com/community/hosting/mysql/use-php-to-retrieve-information-from-a-mysqlmariadb-database/ ja https://www.tutorialspoint.com/mariadb/mariadb_connection.htm) Toisessa sain kyllä html kohdan toimimaan, mutta php ei toiminut. Yritin vielä selvittää asiaa, mutta en löytänyt ratkaisua.

Olin tätä ennen joutunut jo kerran aloittamaan kokonaan alusta virtuaalikoneen hajottua, tällöin olin tehnyt mariaDB tilan Tero Karvisen ohjeiden avulla (http://terokarvinen.com/2018/mysql-automatic-install-with-salt-preseed-database-root-password)

Lähteet:

Bloglinux.me
https://www.bloglinux.me/node/15

Otso Rauta
https://otsorauta.wordpress.com/2018/12/03/h6-lamp-asennus-saltilla/

Tero Karvinen
http://terokarvinen.com/2020/remote-learning-tools-for-my-courses/

Tero Karvinen
http://terokarvinen.com/2018/mysql-automatic-install-with-salt-preseed-database-root-password

Tero Karvinen
http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Tutorialpoint
https://www.tutorialspoint.com/mariadb/mariadb_connection.htm

Ionos
https://www.ionos.com/community/hosting/mysql/use-php-to-retrieve-information-from-a-mysqlmariadb-database/

Linode
https://www.linode.com/docs/applications/configuration-management/use-salt-states-to-create-lamp-stack-and-fail2ban-across-salt-minions/
https://www.linode.com/docs/applications/configuration-management/use-salt-states-to-configure-a-lamp-stack-on-a-minion/

CentOS ISO-tiedosto
http://isoredirect.centos.org/centos/7/isos/x86_64/

Leave a comment

Design a site like this with WordPress.com
Get started