Viikko 2 Palvelinten hallinta

Viikot vierivät ja tehtävät etenevät.

Tällä viikolla rakennetaan enemmän tiloja.

Tehtävät löytyvät kurssin sivulta – Terokarvinen.com Palvelinten-Hallinta

Tässä harjoituksessa käytän salt masterina digitaloceanin palvelinta, joka toimi myös viime harjoituksessa masterina.
Minion koneena toimii tällä kertaa xubuntu, joka pyörii livetikulta.

Digitaloceanissa on ubuntu palvelin 16.04.3 x64, ohje tämän laittamiseen löytyy vanhemmasta artikkelista Viikko 4, Virtuaalipalvelimen hallintaa ja testailu

Käytän minion koneessa xubuntu-16.04.4-desktop-amd64.iso, mikä on ajettu usbtikulle UNetBootilla

Specsit minion koneesta


Tehtävät

Tehtävät tästä eteenpäin (h2, h3…) tulee ratkaista tekemällä Saltin tila (state), ellei tehtävänannosta muuta ilmene. Tee ensin käsin, automatisoi vasta sitten. Muista testata lopputulos.

a) Opiskele yllä aikataulussa olevat artikkelit. (Tätä lukutehtävää ei tarvitse raportoida). Luettava materiaali on kunkin tapaamiskerran kohdalla, esimerkiksi nyt “2. Package-file-server. […] Luettavaa: Karvinen 2018: Pkg-File-Service – Control Daemons with Salt..”

b) Laita käyttäjien kotisivut toimimaan Apachella.

c) Laita PHP toimimaan käyttäjien kotisivuilla. (Huomaa, että PHP toimii oletuksena kaikkialla muualla kuin käyttäjien public_html-kotisivuilla.)

d) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

e) Tee tila, joka laittaa esimerkkikotisivun uusille käyttäjille. Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‘adduser tero’ komennolla käyttäjiä luodessa.

f) Eri asetukset. Tee Package-File-Service tilalla eri asetuksia kuin ne, mitä tehtiin tunnilla; ja eri kuin mitä teit/teet h2 muissa kohdissa. Voit muuttaa jotain toista asetusta samoista demoneista tai valita kokonaan eri demonit.

Kaikki tehtävät tulee ratkaista saltin tilalla(state), testataan ensiksi manuaalisesti, sitten vasta automatisoidaan.

b) Tehtävän tarkoituksena on laittaa käyttäjien kotisivut toimimaan Apachella.

Käyttäjien kotisivut apachella, helppo juttu! Olemmehan tämän jo tehneet muutaman kerran aikaisemminkin.

Kokeillaan onko apache asenneltu aikaisemmin, haetaan nettiselaimella localhost


Ei ainakaan itselläni ollut.

Asennetaan apache:
sudo apt-get update
sudo apt-get install apache2


Nyt näkyy! Eli toimii!

Tarkistetaan vielä toimiiko käyttäjän kotisivut.

Käydään luomassa tälle käyttäjälle public_html kansio mihin luodaan index.html tiedosto. Lisään index.html tiedostoon rivin “Moi kaikki!”, ilman html koodia, jotta voidaan testata toiminta.


Ei näy mitään, koska emme ole laittaneet moduulia userdir päälle

Nyt on manuaalisesti testattu tämän sivuston toiminta ja kaikki näyttää toimivan moitteettomasti.

Asennetaan nyt livetikulla olevaan koneeseen salt-minion ja automatisoidaan tämän apachen asennus, sekä käyttäjien kotisivut, että ne näkyvät suoraan.

sudo apt-get install salt-minion

Meidän pitää muistaa käydä laittamassa minion tiedostoon, salt-masterin ip osoite jolloin master näkee meidät.


muokataan tuota minion tiedostoa sudoeditillä ja lisätään rivi.


rivin – id: pulkka lisään koska minulla on livetikulta toimiva xubuntu, nimi määritetään asennuksessa, joten tätä ei ole pakko laittaa, jos teillä on asennettuna linux.

Käynnistetään minion palvelu uudelleen, jotta uusi asetus tiedosto tulee voimaan.
sudo systemctl restart salt-minion.service

Nyt voimme tarkistaa näemmekö salt-masterilla tämän tietokoneen.
Kyllähän se siellä näkyy!

hyväksytään tämä “pulkka” kone.
sudo salt-key -A  ja hyväksytään “Y” – -A pääte hyväksyy kaikki koneet mitkä ovat “Unaccepted Keys:” alapuolella.


nyt näemme että pulkka löytyy “Accepted Keys:” alapuolelta ja olemme melkein valmiita ajamaan komentoja masterilta.

Asennetaan vielä salt-ssh minion koneelle.
sudo apt-get install salt-ssh

Kokeillaan ajamalla master koneelta jokin salt-ssh komento.

sudo salt ‘pulkka’ cmd.run “whoami”

Nyt pääsemme automatisoimaan tämän apachen asennuksen, sekä käyttäjien hakemistot toimintaan.

Luodaan salt kansio /srv/ kansioon master koneelta, ellei sitä ole jo luotu.

Luodaan tänne kansio apache.

Luodaan tänne tila init.sls
sudoedit init.sls
lisätään tähän tiedostoon tarvittavat rivit apachen asennukseen, sekä käyttäjien kotihakemistojen toiminta kuntoon laittaminen (a2enmod userdir)

Katsoin tätä konfiguraatiota tero karvisen ohjeesta – Apache User Homepages Automatically

Tämä konfiguraatio asentaa apache2 paketin, jonkajälkeen hakee mods-avaible kansiosta userdir.conf sekä userdir.load tiedoston ja service.running komento tarkastaan onko nämä tiedostot jo käytössä. Jos nämä tiedostot eivät ole, nämä tiedostot siirretään mods-enabled kansioon ja apache2.service käynnistetään uudelleen, jotta nämä moduulit tulevat toimintaan.

Kokeillaan ajaa tämä tila(state) ja katsotaan mitä tapahtuu.

Ei mitään ihmeellistä, koska meillä on jo kaikki asennettuna. Poistetaan apachen asennus minion koneesta.

sudo apt-get purge apache2 apache2-bin apache2-data apache2-utils


Enään ei apachea ole asennettu ja localhost sivut eivät toimi.

Ajetaan nyt masterilla tuo komento uudelleen ja katsotaan mitä tapahtuu.

Kaikki asentuvat oikein, koska succeed: 4  ja (changed=4).
Katsotaan näkyykö nyt localhost/~xubuntu sivu.


Kyllä näkyy!

Tehtävä B valmis.

 

 

 

 

 

c) Tehtävän tarkoituksena on laittaa PHP toimimaan käyttäjien kotisivuilla.

Mennään muokkaamaan tätä init.sls tiedostoa.

Tehdään vähän erilainen alku tähän tiedostoon, jotta voidaan asentaa monta pakettia samaan aikaan.

Jotta PHP toimii käyttäjien kotisivuilla, piti apache2 php asetustiedostosta kommentoida ne muutamat rivit yli.

Kopioidaan tämä tiedosto srv/salt/apache/ kansioon ja muokataan se täällä valmiiksi oikeaan muotoon.

Kommentoidaan ohjeen mukaisesti alimmat rivit, jolloin saadaan käyttäjien kotihakemistossa php toimintaan.

Muokataan nyt init.sls tiedostoa uudelleen ja lisätään tänne tarvittavat rivit, jotta saadaan tämä asetustiedosto oikeaan paikkaan minion koneella.

Käytetään tässä file.managed komentoa, joka kopioi sourcesta salt://apache/php7.0.conf tämän php konfiguraatio tiedoston sisällön /etc/apache2/mods-available/php7.0.conf tiedostoon.

Testataan tässä välissä, että tuo php ei toimi automaattisesti käyttäjien hakemistossa.

Minion koneella muokataan index.html tiedosto index.php tiedostoksi.


ja lisätään pätkä php koodia tuohon tiedostoon.


Päivitetään sivu ja nähdään, että php koodi ei toimi lainkaan.

Ajetaan nyt masterilta tuo tila(state)

Kuten kuvissa näkyy. Php7.0.conf tiedosto päivittyy ja nähdään mikä kohta kommentoidaan pois “-” merkillä ja mitä lisätään “+” merkillä.

Lopuksi vielä koska tämä tiedosto on muuttunut, käynnistetään apache2.service uudelleen, jotta saadaan tämä konfiguraatio voimaan.

 

Kokeillaan nyt toimiiko php koodi minion koneella oikein.

Toimii! Eli nyt tämä tila(state) asentaa apache2 sekä apache2 php moduulin ja laittaa käyttäjien kotihakemistossa php:n toimintaan!

Tehtävä C Valmis!

 

 

 

 

 

d) Tehtävän tarkoituksena on rakentaa tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting).

Kokeillaan ensin manuaalisesti toimiiko tämä uusi nimipohjainen virtuaalipalvelin.

Lisätään hosts tiedostoon uusi osoite.

sudoedit /etc/hosts
127.0.0.1 www.virtuaalista.example.com

Navigoidaan tähän osoitteeseen selaimella


Osoite toimii! Tämä lataa siis tavallisen default-pagen, koska emme ole määritelleet muuta osoitetta sites-available konfiguraatioihin.

 

Nyt tämä pitäisi automatisoida

Luodaan uusi tila, vaikka virtual.sls

sudoedit virtual.sls
ja kopiodaan samalla hosts konfiguraatio tiedosto, jotta voimme muokata sitä.

Tässä vaiheessa voidaan käydä poistamassa minion koneesta tuo manuaalisesti tehty hosts tiedoston konfiguraatio eli poistetaan se lisätty rivi.


Sekä lisätään tämä sama rivi MASTER koneen hosts tiedostoon, mikä kopioitiin aiemmin.

Mennään nyt muokkaamaan tuota virtual.sls tiedostoa master koneella.
Nyt kun meidän täytyy muokata vain yhtä tiedostoa, eikä mitään tarvitse käynnistää uudelleen, riittää meille tämä.

Ajetaan tämä tila ja katsotaan mitä tapahtuu.

Nähdään, että hosts tiedostoon lisätään tämä meidän lisäämä rivi.

Nyt jos menemme katsomaan minion koneelta tuota osoitetta, pitäisi apachen default page näkyä.

ja sehän näkyy!

Tehtävä D valmis!

 

 

 

 

 

e) Tehtävän tarkoituksena on tehdä tila, joka laittaa esimerkkikotisivun uusille käyttäjille.  Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‘adduser tero’ komennolla käyttäjiä luodessa.

Testaillaan ensiksi manuaalisesti.

Luodaan /etc/skel kansio public_html ja tuon kansion sisään index.html sivu.

Kirjoitin index.html tiedoston sisään “moi :)”

Luodaan nyt uusi käyttäjä
sudo adduser jjekku
Meillä pitäisi olla nyt toiminnassa semmoinen sivu kuin localhost/~jjekku

ja onhan se! toimii!

Nyt automatisoidaan tämä

Luodaan uusi tila(state) master koneelle.
sudoedit sivut.sls ja lisätään tänne seuraavat rivit
file.directory voi luoda kansoita, sekä antaa erioikeuksia. https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.directory

Loin myös kansion public_html /srv/salt kansion sisälle ja lisäsin tämän sisään index.html tiedoston mistä tämä tila(state) hakee tiedoston.

Nyt jos ajamme tämän komennon


Komento lisää directoryn, sekä kopio index.html tiedoston mikä juuri luotiin.

Nyt jos tarkistamme minion koneesta osoitteen localhost/~mopo meidän pitäisi nähdä sivu mikä luotiin.

Ja sehän näkyy!

Tehtävä D valmis!

 

 

 

 

f) Tehtävän tarkoituksena on tehdä eri asetuksia Package-File-Service tilalla

Ajattelin jos laittaisin esimerkiksi mopo.example.com osoitteen menemään suoraan mopo käyttäjän omaan public_html sivustoon.

Tämänhän saa muokattua siten, että luo uuden konfiguraatio tiedoston /etc/apache2/sites-available kansioon.

Luodaan masterilla tiedosto vp.conf /srv/salt kansioon ja lisätään sinne seuraava pätkä tekstiä.

Meidän täytyy myös lisätä hosts tiedostoon rivi:
127.0.0.1 mopo.example.com

Luodaan myös tiedosto mopo.sls
sudoedit mopo.sls ja lisätään sinne seuraava teksti.

Hetki meni miettiessä, että miten sain luotua tiedoston mutta manuaalista löytyy kyllä hyvin ohjeita! https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.managed

Ajetaan tuo tila ja katsotaan mitä tapahtuu, sekä näkyykö sivusto minion koneella tuon tilan ajamisen jälkeen.

Uusi tiedosto vp.conf luodaan.
Symlink luodaan sitest-availableen ja hosts tiedostoon lisätään rivi.
Tämän jälkeen vielä apache2 käynnistetään uudelleen, koska tuli uusi konfiguraatio tiedosto.

Sitten tarkistetaan toimiiko tämä osoite mopo.example.com minion koneessa ja näyttääkö se tuon mopo käyttäjän sivuston.

Siellähän se näkyy! Nyt voi mopo käyttäjä muokata omia sivuja ja ne tulevat näkymään mopo.example.com osoitteessa.

On pitkä pätkä tekstiä, mutta tulipahan opittua kaikenlaista uutta! Jee!

Ensiviikkoon

-JJ

9 thoughts on “Viikko 2 Palvelinten hallinta

Leave a Reply