Palvelinten hallinta H2

Package-File-Service, sovellusten asentamista ja säätämistä Saltin avulla

Tein tehtävän kotona pöytäkoneellani, jossa oli mm. Intel i5-3570K prosessori, 8GB RAM-muistia, Asus GTX 1060 (6GB) näytönohjain ja käyttöjärjestelmänä Win 10. Jatkoin tehtävien tekemistä VirtualBoxissa (versio 6.1.4) luomillani virtuaalikoneilla, joita käytin edellisessä harjoituksessa.

Tehtävä on osa Haaga-Helian Palvelinten hallinta -kurssia.



a) Demonin asetukset. Säädä jokin demoni (asenna+tee asetukset+testaa) package-file-service -rakenteella. Tunnilla muutettiin ssh:n porttinumeroa, joten tee jotain muuta.

H2-harjoitus tuntui yleisvilkaisulta itselleni melko haastavalta. Päätin tehdä tämän a-kohdan Tero Karvisen ohjeiden mukaan saadakseni jonkinlaisen yleiskäsityksen package-file-service -menetelmästä.

Aloitin harjoituksen tekemisen 14.4.2020 klo 20:30 (UTC +3).



Apachen asentaminen

Asensin ensin masterille käsin Apachen, muutin Apachen default-sivun, otin käyttöön userdirin ja tein käyttäjälle sivut. Tein myös kaikki välitestit.



Viimeeksi muokattujen tiedostojen tarkastelu

Tarkistin, mitä tiedostoja userdirin käyttöönottaminen oli muokannut.

find -printf "%T+ %p\n"|sort

Tero Karvinen on sivuillaan avannut kyseisen komennon merkitystä:

“%T+” is the modification time

“%p” is the filename with path

“\n” is newline

Apachen asentamisen jälkeen listassa näkyvät userdir.conf sekä userdir.load.

Alimpana viimeisimpänä muokatut tiedostot

Annoin komennot ls -l userdir.conf ja ls -l userdir.load nähdäkseni lisätietoja tiedostoista. Kyseessä ovat symlinkit tiedostoihin, jotka sijaitsevat mods-available -kansiossa.

Symlinkit



Tilatiedoston luominen

Loin kansion /srv/salt/apache ja sinne tein valmiiksi Apachen oletussivun komennolla sudoedit default-index.html, jonka sisällöksi kirjoitin ”Apachen default-sivu”.

Nyt aloin luomaan itse tilatiedostoa (/srv/salt/apache/init.sls) komennolla sudoedit init.sls. Tiedoston sisällöksi kirjoitin:

apache2:
 pkg.installed
/var/www/html/index.html:
 file.managed:
   - source: salt://apache/default-index.html

Kyseisten komentojen pitäisi asentaa orjalle Apache ja korvata oletussivu aiemmin luomallani sivulla. Kävin slavella tarkistamassa, ettei minulla ollut ennestään Apachea asennettuna, minkä jälkeen ajoin tilan komennolla sudo salt ’*’ state.apply apache, minkä pitäisi asentaa kaikille orjille (minulla yksi) ohjeiden mukaisesti Apache ja Apacheen uusi default-sivu.

Minuutin verran raksuteltuaan, tuli ilmoitus onnistuneesta suorituksesta. Kävin slavella testaamassa tilanteen kirjoittamalla selaimen osoiteriville ”localhost”, jolloin Apachen default-sivu aukesi kuten oli tarkoituskin. Homma siis näytti toimivan toivotulla tavalla.

Nyt uskalsin lisätä init.sls tiedostoon userdir-moduulin vaatimat rivit. Kokonaisuudessaan init.sls näytti lisäysten jälkeen tältä:

apache2:
 pkg.installed
/var/www/html/index.html:
 file.managed:
   - source: salt://apache/default-index.html
/etc/apache2/mods-enabled/userdir.conf:
 file.symlink:
   - target: ../mods-available/userdir.conf
/etc/apache2/mods-enabled/userdir.load:
 file.symlink:
   - target: ../mods-available/userdir.load
apache2service:
 service.running:
   - name: apache2
   - watch:
     - file: /etc/apache2/mods-enabled/userdir.conf
     - file: /etc/apache2/mods-enabled/userdir.load

Uudet rivit lisäävät orjille symlinkit userdir -asetustiedostoihin, minkä jälkeen Apache käynnistetään uudelleen.

Annoin jälleen komennon sudoedit salt ’*’ state.apply apache. Hetken miettimisen jälkeen tuli ilmoitus viidestä onnistuneesta suorituksesta, ja yhteensä muutoksia tehtiin kolme. Kaksi symlinkkiä luotiin ja Apache käynnistettiin uusiksi.

Tässä vaiheessa tajusin, että olisi ollut hyvä testailla userdir:n toimimattomuutta slavella ennen tilan ajamista. En kuitenkaan ryhtynyt siihen enää tässä vaiheessa.

Menin slavelle ja tein käyttäjälle normaalein käyttäjäoikeuksin sivut, joiden sisällöksi kirjoitin ”Slaven sivut”. Selaimen osoiteriville ”localhost/~slave”, ja slaven sivut avautuivat. Toimii!.

Orjalla käyttäjäoikeuksin luotu sivu



b) Uusi ohjelma. Asenna + tee asetukset + testaa jokin sovellus, jota ei ole käsitelty tunnilla. Asenna ensin käsin, ja käytä sen jälkeen find-komentoa etsiäksesi muuttuneet tiedostot.

Tässä kohtaa sain oikein tosissaan miettiä, millä ohjelmalla saattaisin osata toteuttaa tehtävänannon. Halusin muuttaa jonkin sovelluksen asetuksia graafisesta käyttöliittymästä ja sitten tarkastella muuttuneita tiedostoja.



VLC:n asetustiedostojen etsintää

Valitsin sovellukseksi VLC:n. Asensin yhdelle virtuaalikoneistani VLC:n komennolla sudo apt-get -y install vlc. Käynnistin VLC:n ja muutin graafisen käyttöliittymän asetuksista soittimen ulkonäköä. Sammutin sovelluksen ja käynnistin sen uudestaan tarkistaakseni, ovatko muuttamani asetukset yhtä voimassa, ja olivathan ne.

Nyt siirryin etsimään, mihin sovellus on asennettuna. Ensiksi /etc/ -kansioon, jossa ei ollut VLC:n tiedostoja. Tässä kohtaa meninkin sitten vaikeaksi. Etsin ensiksi googlaamalla mahdollisia asennussijainteja, ja löysinkin joitakin mm. /usr/bin/ sijainnin. Kyseisessä kansiossa annoin komennon find -printf ”%T+ %p\n”|sort. Yhdenkään hakutuloksen kellonaika ei täsmännyt. Lopulta yritin muistlela mieleeni grepin käyttämistä. Menin kaikkien hakemistojen juureen, jossa annoin komennon find -printf ”%T+ %p\n”|sort |grep vlc ja löysin etsimäni. Asetustiedosto oli /home/joni/.config/vlc/vlc-gt-interface.conf.

Kommentti: Unohdin ottaa screenshotin tekemästäni hausta, joten kävin tekemässä haun myöhemmin uudestaan. Kellonajat eivät siis täsmää:

Kuva grep vlc -hausta. Alimpana etsimäni asetustiedosto

Aikani googlattuani sain selville, että .config on piilotettu kansio. Seuraavaksi aloin miettimään, miten ihmeessä pystyn saltin avulla muuttamaan käyttäjien tiedostoja, kun en edes tiedä tulevien käyttäjien nimiä. Tässä vaiheessa oli todettava, ettei minun osaamiseni riitä tämän homman ratkaisemiseen. Kaiken kaikkiaan touhusin tämän ongelman kanssa pari tuntia.



Sovellusten asentelua ja testailua

Sitten vain miettimään seuraavaa sovellusta ja toivomaan, että sen tiedostot olisivat muualla kuin käyttäjän kotikansiossa. Audacityn asentelin, ja siinä oli sama homma. Kokeilin useita muitakin ohjelmia, mutta asetukset tuntuivat aina olevan käyttäjien kotikansioissa. Lopulta muistin, että olin edellisellä Linux-kurssilla säätänyt sysstatin asetustiedostoja. Asensin sysstatin, ja siellä asetustiedostot olivat /etc/ -kansiossa. En osannut muokkailla sysstatin asetuksia terminaalista käsin, joten päädyin asetustiedostoihin tämän ohjeen perusteella. Tässä vaiheessa kello oli kuitenkin jo niin paljon, että minun oli pakko jättää loput tehtävistä aamuksi. Ne eivät aivan kerkeä annettuun deadlineen, mutta katsoin silti parhaimmaksi palata tehtävän pariin tuoreilla silmillä.

Lopetin tehtävien tekemisen 15.4.2020 klo 03:30 (UTC +3). Aikaa olin käyttänyt tähän mennessä noin 7 tuntia. Aikaa kului eniten eri sovellusten testailuun, asetustiedostojen etsimiseen, ohjeiden tutkimiseen, raportin kirjoittamiseen jne.




Sysstat

15.4.2020 klo 16:00 (UTC +3)

Olin aamuyöllä päätynyt tutkimaan sysstatia ja nyt jatkoin siitä mihin jäin. Asensin masterille ensin sysstatin testatakseni asetusten säätämistä.

sudo apt-get install -y sysstat

Komennolla sar -A sysstatin pitäisi antaa järjestelmän tiedot, mutta tuli ilmoitus, ettei tietojen kerääminen ole päällä. Näin siis kuuluikin olla, sillä sysstat ei oletusasetuksilla kerää järjestelmätietoja. Seuraavaksi säätämään tiedostoja. Päädyin muokkaamaan tämän ohjeen mukaan kahta eri tiedostoa, jotta saisin sysstatin kerämään järjestelmätietoja kahden minuutin välein.

Ohjeen mukaisesti muutin /etc/default/sysstat tiedostosta kohdan:
ENABLED=”false” --> ENABLED=”true”

Kommentti: Tässä kohtaa olisi ollut hyvä testata sysstatin toiminta ennen ”kahden minuutin muutosta”, mutta se jäi epähuomiossa tekemättä.


Tämän jälkeen siirryin muokkaamaan toista tiedostoa /etc/cron.d/sysstat

Muutin tämän rivin:
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Täksi riviksi:
*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

Sysstat piti käynnistää uudelleen komennolla sudo service sysstat restart
Komennolla sar -A totesin sysstatin todellakin keräävän tietoja kahden minuutin välein.



Sysstat -tilan tekeminen ja asetustiedostot

Kävin ensin tarkistamassa, ettei orjakoneella ole sysstatia asennettuna. (Komento sar -A, antoi ilmoituksen, ettei sysstatia ole asennettu)

Tein masterille kansioon /srv/salt/ tiedoston nimeltä syssat.sls, ja sisällöksi kirjoitin:

sysstat:
  pkg.installed

Ajoin tilatiedoston orjille komennolla sudo salt ’*’ state.apply sysstat ja sain ilmoituksen onnistuneesta sysstatin asentamisesta orjakoneeseen.

Sysstat asentui

Kävin toteamassa asennuksen orjakoneella kirjoittamalla kirjoittamalla terminaaliin sar -A, jolloin sysstat ilmoitti, ettei tietojenkerräystä ole otettu päälle. Ei siis enää ilmoitusta puuttuvasta sysstat -sovelluksesta, joten sysstat oli asentunut.


Asetustiedostot

Loin masterille kansion /srv/salt/sysstat ja sinne tiedoston nimeltä sysstat. Tiedoston sisällöksi kirjoitin:

#
# Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat
# and /etc/cron.daily/sysstat files
#

# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
ENABLED="true"

Oletusasetuksiin nähden muutin siis vain false -> true.

Toinen asetustiedosto oli täsmälleen saman niminen kuin ensimmäinen, joten pistin sen omaan kansioon /srv/salt/sysstat/cron.d/ ja sisällöksi:

# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# Activity reports every 10 minutes everyday
*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

Kommentti: Olisi kannattanut muuttaa kommenttikohdasta 10 minutes -> 2 minutes. Nyt tiedostoon jäi periaatteessa väärää infoa antava kommentti.

Lisäsin sysstat.sls -tiedostoon rivit asetustiedostoille, ja ajoin tilatiedoston uudestaan. Sain seuraavanlaisen virheilmoituksen:

Olin laittanut liikaa välilyöntejä melkein jokaiselle riville. Poistin turhat välilyönnit, minkä jälkeen lopullinen sysstat.sls näytti tältä:

sysstat:
  pkg.installed
/etc/default/sysstat:
  file.managed:
    - source: salt://sysstat/sysstat
/etc/cron.d/sysstat:
  file.managed:
    - source: salt://sysstat/cron.d/sysstat
sysstatservice:
  service.running:
    - name: sysstat
    - watch:
      - file: /etc/default/sysstat
      - file: /etc/cron.d/sysstat

Annoin jälleen masterilla komennon sudo salt ’*’ state.apply sysstat, jolloin sain tiedot onnistuneesta toiminnasta, minkä mukaan sysstat oli jo valmiiksi asennettu, mutta asetustiedostot päivitettiin, ja sysstat käynnistettiin uusiksi.

Kävin orjakoneelta tarkistamassa sysstatin toimivuuden komennolla sar -A, ja totesin sysstatin keräävän tietoja kahden minuutin välein.

Osa sar -A komennon näyttämistä tiedoista

Lopuksi poistin sysstatin orjakoneelta, ja ajoin sysstat -tilatiedoston masterilta uudestaan nähdäkseni koko tilan toimivuuden. Kaikki kohdat suoritettiin nätisti, ja orjakoneella totesin sysstatin toimivan toivotulla tavalla. Tämä tehtävä oli paketissa.

Tilatiedoston toimivuus testattu vielä lopuksi. Kaikki kohdat suoritettu onnistuneesti.




c) Aja jokin tila paikallisesti ilman master-slave arkkitehtuuria. Tutki debug-tulostetta. ’sudo salt-call –local state.apply hellotero –state-output terse’

Ajoin masterilla komennon sudo salt-call –local state.apply sysstat –state-output terse testatakseni paikallisesti sysstat -tilan toimivuuden.

Paikallinen ajo

Ekalla riviltä (vihreällä) nähdään, että sysstat oli jo valmiiksi asennettuna, joten sitä ei tarvinnut asentaa. Kahdella seuraavalla rivillä kerrotaan kahden sysstat -tiedoston muokkaamisesta. Neljännellä rivillä sysstat käynnistettiin uudestaan. Lopuksi yhteenveto: Neljä toimintoa ajettiin ja kolmessa tehtiin muutoksia, ei epäonnistumisia. Kaikki tilat siis suoritettiin onnistuneesti. Nähtävillä on myös eri toimintoihin käytetty aika.

Ajoin vielä lopuksi uudestaan saman local -komennon, jolloin kaikki tilarivit muuttuivat vihreiksi, eli muutoksia ei tehty.

Toisella kerralla muutoksia ei tarvinnut tehdä


Tehtävät sain tehdyiksi ja raportin kirjoitetuksi kellon näyttäessä aikaa 20:30 (UTC +3)
Kokonaisuudessaan tehtävien tekemiseen käytin tehokasta työaikaa arviolta 9 tuntia.


Loppukommentit

Tehtäviin tuli käytettyä kyllä todella paljon aikaa. En tiedä raportoinko kaiken liian tarkasti, vai valitsinko itselleni liian hankalan tehtävän (graafisen käyttöliittymän kautta asetusten muokkaaminen VLC:ssä). Harkitsin moneen otteeseen nopeamman tehtävän tekemistä, mutta päädyin nyt sitten kuitenkin tällaiseen lopputulokseen. Jatkossa pitää miettiä tarkemmin, miten teen ja raportoin tehtävät, sillä en pysty joka viikko käyttämään näin paljon aikaa yhden kurssin tehtävien suorittamiseen. Opittua tuli kuitenkin paljon.


Lähteet:

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s

Create your website with WordPress.com
Aloitus
%d bloggaajaa tykkää tästä: