Homework 2. Package-file-server

H2 Tiistai ryhmä

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

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

Eli halutaan automatisoida etusivujen luomiseen apache2:lla.

Aluksi luodaan kansioon /srv/salt/ uuden kansion. Annetaan sen nimeksi apache2:

/srv/salt $ sudo mkdir apache2

Seuraavaksi luodaan init.sls tiedoston, mihin kirjoitetaan meidän ohjeet:

Ja luodaan uusi index.html joka vaihtaa apache2 default etusivun:

Tarkempi init.sls tiedostosta ja sen sisällöstä:
Se on tiedosto joka käynistää vuorotellen kaikki antamat ohjeet.

Asentaa apache2 paketti:

apache2:
  pkg.installed

Vaihtaa apache2 etusivun uudella etusivulla:

/var/www/html/index.html:
  file.managed:
    - source: salt://apache2/index.html

/var/www/html/index.html:
Tiedosto mitä vaihdetan ja sen paikka.

file.managed:
Manage a given file, this function allows for a file to be downloaded from the salt master and potentially run through a templating system.

Eli tällä komennolla haetaan tiedoston.

– source:
The source file to download to the minion, this source file can be hosted on either the salt master server (salt://), the salt minion local file system (/), or on an HTTP or FTP server (http(s)://, ftp://).

Ja tällä komennolla merkataan mistä.

Linkataan tiedostot userdir.conf ja userdir.load ja siirretään niitä kansiosta mods-available kansioon mods-enabled eli otetaan käyttöön userdir:

/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

Tekee samaa asia kuin komento:

$ sudo a2enmod userdir

file.symlink:
Create a symbolic link.

– target:
The location that the symlink points to.

Tarkistetaan oliko tehty muutoksia tiedostoihin ja päivitetään palvelu (sama kuin sudo systemctl restart apache2) tarvittaessa:

apache2service:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-enabled/userdir.conf
      - file: /etc/apache2/mods-enabled/userdir.load

service.running:
Ensure that the service is running.
Varmistaa, että palvelu on käynissä.

– watch:
watch can be used with service.running to restart a service when another state changes.

Ja tässä kuvat onnistuneesta asennuksesta:

Etusivu on muuttunut ja toimii:

Ja käyttäjän testslave etusivu:

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

init.sls tiedosto:

libapache2-mod-php:
  pkg.installed

/etc/apache2/mods-available/php7.2.conf:
  file.managed:
    - source: salt://php/php7.2.conf

phprestart:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-available/php7.2.conf

Muokattu php7.2.conf tiedosto:

<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>

d) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla. Jos et ole koskaan tehnyt nimipohjaisia virtuaalipalvelimia Apachelle, katso ohje (Name Based Virtual Hosts on Apache) tee tehtävä niin pitkälle kuin osaat.

e) Tee tila (state), 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.

Leave a Reply

Your email address will not be published. Required fields are marked *