H2 -package-file-server

Tein harjoitustehtäviä 4.11.18 klo 18 alkaen. Käytin tehtävään xubuntu 18.04.1 live usb-tikkua. Tein tiistai-ryhmän tehtäviä.

Aloitin tehävät asentamalla salt masterin ja minion ja määrittelemällä minion `orja´. Varmistin ohjeista: http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux prosessin.

sudo apt-get update

sudo apt-get install salt-master salt minion

hostname -I

sudo systemctl restart salt-minion.service

sudo salt-key -A

ja siten vielä testasin, että minion vastaa

sudo salt ‘*’ cdm.run ‘whoami’, josta ‘orja’ vastasi.

Loin vielä kansion /srv/salt/

sudo mkdir /srv/salt/

 

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

Ensin asensin apachen käsin, jonka jälkeen tein automasaation saltilla. Käytin ohjeita sivuilta: http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

sudo apt-get install -y apache2

sudo a2enmod userdir

sudo systemctl restart apache2

Tämän jälkeen loin public_html kansion

sudo mkdir public_html

Testasin http://localhost/~xubuntu, näkyi directory eli apache toimi.

Tein kuitenkin vielä testi.html tiedoston public_html kansioon ja testasin sitä: http://localhost/~xubuntu/testi.html

Screenshot_2018-11-04_19-02-07

Toimi.

Sitten tein salt staten:

Loin apache-kansion /srv/salt/ hakemistoon, jonne tein init.sls tiedoston Tero Karvisen sivujen mukaan:

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

 

ajoin sudo salt ‘*’  state.apply apache ja sain virheilmoituksen, kun en ollut tehnyt default-index.html sivua apachelle.

Screenshot_2018-11-04_19-21-06

Tein seuraavaksi /srv/salt/apache -kansioon

sudoedit default-index.html js sitten toimi.

Screenshot_2018-11-04_19-24-30

Testiksi poistin vielä apachen sudo apt-get purge apache2 ja ajoin uudestaan apache staten, jonka jälkeen localhost näytti default-index -sivuni.

Screenshot_2018-11-04_19-30-22

Eli salt state toimi.

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

Googletin ohjeita ja löysin sivuja: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04, http://ix.cs.uoregon.edu/~michaelh/AWS/enable-php-user-dir.html sekä etsin tietoa myös oppilaiden sivulta jaanaputro.wordpress.com, elisalinux.wordpress.com ja https://jernvall.com/2018/04/05/viikko-2-palvelinten-hallinta/

joiden mukaan asensin ensin käsin PHP:n.

sudo apt-get install php libapache2-mod-php

Konfiguroin php;n conf tiedostoa tai yritin konfiguroida. lopulta pääsin tiedostoon.. kommentoin pois alimmatrivit #-merkillä, jotta käyttäjäsivut toimisivat php:llä.

sudoedit /etc/apache2/mods-available/php7.2.conf

Screenshot_2018-11-04_21-08-46

Käynnistin uudelleen apachen

sudo systemctl restart apache2.service

Tein testi php sivun

sudoedit /home/xubuntu/public_html/index.php

Nyt php toimi localhost osoitteessa.

Screenshot_2018-11-04_21-34-55

 

Sama Saltilla:

sudo cp /etc/apache2/mods-available/php7.2.conf php7.2.conf . Tein sinne myös init.sls tiedoston:

Screenshot_2018-11-04_22-04-27

Tästä tuli virhe, kun ajoin sen sudo salt ‘*’ state.apply php -komennolla:

Screenshot_2018-11-04_21-45-21

Hetken aikaa ihmeteltyäni tajusin, että init.sls tiedostossa php7.0 kohdassa oli virhe.. Korjasin kohdan ottamalla 7.0:n pois ja sitten salt state php toimi.

Screenshot_2018-11-04_22-02-14

Screenshot_2018-11-04_21-48-04

 

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.

En ole koskaan aiemmin tehnyt nimipohjaista virtuaalipalvelimen konfiguraatiota ja luettuani ohjeita, niin en nyt tällä hetkellä oikein tiedä miten sen tekisin oikein, palaan tähän myöhemmin.

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.

Tähän tehtävään luin ohjeita: https://lahdemi.wordpress.com/2018/04/08/2-viikkotehtava-palvelinten-hallinta/ sivuilta.

Tein ensin manuaalisesti public_html kansion etc/skel/:liin ja loin sinne index.html -tiedoston. Sitten loin uuden käyttäjän test ja testasin näkyykö index.html test localhost osoitteessa.

Screenshot_2018-11-04_22-46-04

Screenshot_2018-11-04_22-47-51

Lopuksi poistin tekemäni muutokset etc/skel -kansioon.

ja sitten saltilla

Tein /etc/salt/skel/ -kansion, jonne loin index-html tiedoston ja init.sls .tiedoston

Screenshot_2018-11-04_22-59-56

Sen jälkeen ajoin skel -tilan sudo salt ‘orja’ state.apply skel

Screenshot_2018-11-04_22-57-56

Sitten tein uuden käyttäjän ‘skel’ ja tarkistin localhost/~skel että, mitä näkyy.

Screenshot_2018-11-04_23-04-46

Näkyy salt-tilan index.html eli toimii. Alla vielä käyttjän ‘skel’ hakemisto

Screenshot_2018-11-04_23-27-03

 

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.

Kokeilin asentaa nginx- ohjelman saltilla sivun esimerkin mukaan, siinä muutetaan nginx.conf tiedoston oikeuksia. https://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/

Loin srv/salt/nginx -kansion, jonne laitoin nginx.conf -tiedoston ja init.sls-tiedoston. Hain sivulta: https://www.nginx.com/resources/wiki/start/topics/examples/full/ esimerkki nginx.conf -konfiguraation, tässä esimerkissä on vaan tarkoitus itselleni tarkastella miten YAML taipuu eikä asettaa tarkkoja nginx-asetuksia.

Screenshot_2018-11-04_23-41-37

sudo salt ‘*’ state.apply nginx tuli seuraavanlainen tulos

xubuntu@xubuntu:/srv/salt/nginx$ sudo salt ‘*’ state.apply nginx
orja:
———-
ID: nginx
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: nginx
Started: 23:45:39.669564
Duration: 6460.754 ms
Changes:
———-
libnginx-mod-http-geoip:
———-
new:
1.14.0-0ubuntu1.1
old:
libnginx-mod-http-image-filter:
———-
new:
1.14.0-0ubuntu1.1
old:
libnginx-mod-http-xslt-filter:
———-
new:
1.14.0-0ubuntu1.1
old:
libnginx-mod-mail:
———-
new:
1.14.0-0ubuntu1.1
old:
libnginx-mod-stream:
———-
new:
1.14.0-0ubuntu1.1
old:
nginx:
———-
new:
1.14.0-0ubuntu1.1
old:
nginx-common:
———-
new:
1.14.0-0ubuntu1.1
old:
nginx-core:
———-
new:
1.14.0-0ubuntu1.1
old:
———-
ID: /etc/nginx/nginx.conf
Function: file.managed
Result: True
Comment: File /etc/nginx/nginx.conf updated
Started: 23:45:46.917759
Duration: 20.345 ms
Changes:
———-
diff:

+++
@@ -1,85 +1,70 @@
-user www-data;
-worker_processes auto;
-pid /run/nginx.pid;
-include /etc/nginx/modules-enabled/*.conf;
+user www www; ## Default: nobody
+worker_processes 5; ## Default: 1
+error_log logs/error.log;
+pid logs/nginx.pid;
+worker_rlimit_nofile 8192;

events {
– worker_connections 768;
– # multi_accept on;
+ worker_connections 4096; ## Default: 1024
}

http {
+ include conf/mime.types;
+ include /etc/nginx/proxy.conf;
+ include /etc/nginx/fastcgi.conf;
+ index index.html index.htm index.php;

– ##
– # Basic Settings
– ##
+ default_type application/octet-stream;
+ log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘
+ ‘”$request” $body_bytes_sent “$http_referer” ‘
+ ‘”$http_user_agent” “$http_x_forwarded_for”‘;
+ access_log logs/access.log main;
+ sendfile on;
+ tcp_nopush on;
+ server_names_hash_bucket_size 128; # this seems to be required for some vhosts

– sendfile on;
– tcp_nopush on;
– tcp_nodelay on;
– keepalive_timeout 65;
– types_hash_max_size 2048;
– # server_tokens off;
+ server { # php/fastcgi
+ listen 80;
+ server_name domain1.com http://www.domain1.com;
+ access_log logs/domain1.access.log main;
+ root html;

– # server_names_hash_bucket_size 64;
– # server_name_in_redirect off;
+ location ~ \.php$ {
+ fastcgi_pass 127.0.0.1:1025;
+ }
+ }

– include /etc/nginx/mime.types;
– default_type application/octet-stream;
+ server { # simple reverse-proxy
+ listen 80;
+ server_name domain2.com http://www.domain2.com;
+ access_log logs/domain2.access.log main;

– ##
– # SSL Settings
– ##
+ # serve static files
+ location ~ ^/(images|javascript|js|css|flash|media|static)/ {
+ root /var/www/virtual/big.server.com/htdocs;
+ expires 30d;
+ }

– ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
– ssl_prefer_server_ciphers on;
+ # pass requests for dynamic content to rails/turbogears/zope, et al
+ location / {
+ proxy_pass http://127.0.0.1:8080;
+ }
+ }

– ##
– # Logging Settings
– ##
+ upstream big_server_com {
+ server 127.0.0.3:8000 weight=5;
+ server 127.0.0.3:8001 weight=5;
+ server 192.168.0.1:8000;
+ server 192.168.0.1:8001;
+ }

– access_log /var/log/nginx/access.log;
– error_log /var/log/nginx/error.log;
+ server { # simple load balancing
+ listen 80;
+ server_name big.server.com;
+ access_log logs/big.server.access.log main;

– ##
– # Gzip Settings
– ##

– gzip on;

– # gzip_vary on;
– # gzip_proxied any;
– # gzip_comp_level 6;
– # gzip_buffers 16 8k;
– # gzip_http_version 1.1;
– # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

– ##
– # Virtual Host Configs
– ##

– include /etc/nginx/conf.d/*.conf;
– include /etc/nginx/sites-enabled/*;
+ location / {
+ proxy_pass http://big_server_com;
+ }
+ }
}


-#mail {
-# # See sample authentication script at:
-# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
-#
-# # auth_http localhost/auth.php;
-# # pop3_capabilities “TOP” “USER”;
-# # imap_capabilities “IMAP4rev1” “UIDPLUS”;
-#
-# server {
-# listen localhost:110;
-# protocol pop3;
-# proxy on;
-# }
-#
-# server {
-# listen localhost:143;
-# protocol imap;
-# proxy on;
-# }
-#}
———-
ID: nginx
Function: service.running
Result: False
Comment: Job for nginx.service failed because the control process exited with error code.
See “systemctl status nginx.service” and “journalctl -xe” for details.
Started: 23:45:46.994390
Duration: 49.301 ms
Changes:

Summary for orja
————
Succeeded: 2 (changed=2)
Failed: 1
————
Total states run: 3
Total run time: 6.530 s
ERROR: Minions returned with non-zero exit code

 

eli nginx -paketti asentui ja nginx.conf-tiedostossa näkyy paljon muutoksia – ja + merkkejä.. eli esimerkki conf muutti aika paljon alkuperäistä tiedostoa ja init.sls määriteltiin nginx.conf -tiedoston oikeudet.

service.running ei toiminut, tähän en tuosta keksi nyt nopeasti syytä, mutta init.sls tiedoston YAML -lausekkeet olivat hieman eri muodossa kuin tuntiesimerkeissä.

 

Lopetin harjoituksen noin 02:00 5.11.18.

Lähteet

http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

http://ix.cs.uoregon.edu/~michaelh/AWS/enable-php-user-dir.html

jaanaputro.wordpress.com

elisalinux.wordpress.com

https://jernvall.com/2018/04/05/viikko-2-palvelinten-hallinta/

https://lahdemi.wordpress.com/2018/04/08/2-viikkotehtava-palvelinten-hallinta/

https://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/

https://www.nginx.com/resources/wiki/start/topics/examples/full/

 

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s