Kaikki tehtävät palautettavaksi

Alla linkit kaikista kurssin läksyistä, sisältäen miniprojektin.

Palvelinten hallinta Viikko 1

Palvelinten hallinta Viikko 2

https://miikazitting.wordpress.com/2018/11/13/palvelinten-hallinta-viikko-3/

Palvelinten hallinta Viikko 4

Palvelinten hallinta Viikko 5

Palvelinten hallinta Viikko 6

Palvelinten hallinta Viikko 7 [Miniprojekti]

Palvelinten hallinta Viikko 7 [Miniprojekti]

Projektini moduuli ja koko salt stackini löytyy kokonaisuudessaan GitHubistani.


Mitä projekti sisältää

Tein oman salt moduulin joka tekee seuraavat asiat:

Yhteisesti ajaa saltilla “Hello World” komennon luoden tekstitiedoston kotihakemistoon käyttöjärjestelmästä riippumatta.

Linuxille: (moduulin osat githubista ufw, sekä ssh)

  • Asettaa linuxille ssh demonin, sekä muuttaa oletusportin pois portista 22.
  • Asentaa, muuttaa sääntölistan, sekä käynnistää tulimuurin kyseiselle koneelle.

Windowsille: (githubin salt stackistä osio windows)

  • Asentaa chocolatey paketinhallinnan windowsille
  • Asentaa chocolateyn avulla ohjelman “Mumble” windowsille.
  • Muokkaa Mumblen asetustiedostoa (.sqlite tietokanta) siten että ohjelman avatessa käyttämäni serverit löytyvät listasta, sekä asettaa käyttäjänimen automaattisesti haluamakseni.

 

Palvelinten hallinta Viikko 6

Harjoitus H6

Tehtävät ovat suoraan kopioitu opettajamme Tero Karvisen sivuilta.

http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%E2%80%93-loppukevat-2018-5p

Viikotehtävä: Asenna LAMP Saltilla.


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Molemmissa järjestelmissä käyttöjärjestelmänä pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni Linux pyörii livetikulta.

Koneiden rauta nähtävissä Viikon 1tehtävissä.


Aloitin päivittämällä paketinhallinnan, sekä lataamalla Shutterin kuvakaappauksia varten.

Apache2:

sudo apt-get update

sudo apt-get -y install shutter

Seuraavaksi ajoin scriptini GitHubista joka tekee pöytäkoneestani salt-orjan virtuaalipalvelimelleni.

https://github.com/MiikaZitting/saltsetup

wget https://raw.githubusercontent.com/MiikaZitting/saltsetup/master/startup.sh

bash startup.sh

Hyväksyin pöytäkoneeni avaimen virtuaalipalvelimeltani:

sudo salt-key -A

Ajoin GitHubista löytyvän Apache2 moduulin, joka löytyi virtuaalipalvelimeni /srv/salt/ kansiosta ja varmistin että tämä asentui oikein. Kun ajo oli mennyt onnistuneesti läpi, tein pöytäkoneellani käyttäjälle public_html kansion johon index.html tiedoston.

sudo salt ‘*’ state.highstate

mkdir public_html

cd public_html

nano index.html

Selection_001


PHP:

Sain tässäkin käytettyä jo olemassa olevaa Viikolla 2 tekemää php moduuliani joka löytyy myös GitHubistani.

Selection_002.png

Moduulissa ongelmana on että apache2 ei ole aikaisemmin käynnistynyt automaattisesti uudelleen. Palaan tähän ongelmaan kunhan olen kaikki LAMP stackin palaset saanut ensiksi omiksi moduuleikseen.

Muutin pöytäkoneella olevan public_html kansiossa sijaitsevan index.html tiedoston php muotoon ja sisällön muutin vastaavaksi:

Selection_003.png

Ajettuani php moduulin orjalleni ja käsin käynnistettyä apache demonin, tulokset sivulle olivat vastaavia:

Selection_004

Eli php toimii oikein tämän pohjalta, palaan tuohon apache2 demonin uudelleenkäynnistymis ongelmaan vielä myöhemmin.


Mariadb:

Aloitin tietokantapalvelimen asentamisen ja moduulin luonnin virutaalipalvelimellani. Ensimmäiseksi asensin mariadb clientin, serverin, sekä php modulen mariadb:hen jotta php:n avulla voitaisiin tietokannasta hakea tietoja weppisivulla.

sudo apt-get -y install mariadb-client mariadb-server

sudo apt-get -y install php-mysql

Sitten kirjauduin mariadb:hen roottina, sekä tein tietokannan, sekä tietokannalle käyttäjän. (‘XXXXX’ merkkien tilalle salasana joka käyttäjälle halutaan asettaa)

sudo mariadb -u root

CREATE DATABASE saltbase;

GRANT ALL ON saltbase.* TO saltbase@localhost IDENTIFIED BY ‘XXXXXXXX’;

Seuraavaksi automatisoin kirjautumisen mariadb:hen.

nano .my.cnf

  • [client]
    user=”saltbase”
    database=”saltbase”
    password=”XXXXXXXX”

Nyt kirjoittamalla vain komennon “Mariadb” avaa ohjelma suoraan saltbase käyttäjän sisään.

MariaDB [saltbase]> CREATE TABLE todo (id INT AUTO_INCREMENT PRIMARY KEY, task VARCHAR(255));
Query OK, 0 rows affected (0.00 sec)

MariaDB [saltbase]> SHOW TABLES;
+——————–+
| Tables_in_saltbase |
+——————–+
| todo |
+——————–+
1 row in set (0.00 sec)

Tässä vaiheessa taidot yksinkertaisesti loppuvat kesken. Sain moduulin luotua joka asentaa tarvittavat paketit, mutta tuon .my.cnf tiedoston hallitseminen saltilla ei vain tunnu onnistuvan omalla kohdallani. Tämä käytiin tunnilla 5 minuutissa, eikä opettajan sivuilla tähän ohjeita valitettavasti löydy.

Palvelinten hallinta Viikko 5

Harjoitus H5

Tehtävät ovat suoraan kopioitu opettajamme Tero Karvisen sivuilta.

http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%E2%80%93-loppukevat-2018-5p

a) Säädä Windowsia Saltilla siten, että Windows on orja ja Linux on herra.

b) Säädä Windowsia Saltilla ilman herra-orja rakennetta (salt-call –local)

c) Muuta jonkin Windows-ohjelman asetuksia Saltilla. Monia ohjelmia voi säätää laittamalla asetustiedoston paikalleen, aivan kuten Linuxissa.

d) Valitse aihe omaksi kurssityöksi ja varaa se kommenttina aikataulusivun perään.

e) Vapaaehtoinen: tee omaan käytössä olevaan (Windows, jos käytät Windowsia) koneeseesi Saltilla jokin säätö, josta on sinulle hyötyä jokapäiväisessä elämässä.


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Virtuaalipalvelimella pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni käyttää Windows 10 Pro käyttöjärjestelmää, josta etähallitsen virtuaalipalvelintani ssh yhteydellä PuTTya käyttäen.

Koneiden rauta nähtävissä Viikon 1tehtävissä.


a) Säädä Windowsia Saltilla siten, että Windows on orja ja Linux on herra.

Pöytäkoneeltani ei löytynyt vielä Windowsista salt-minion palvelua joten latasin sen alla olevasta linkistä. Masterillani salt versio oli 2017-07-04

https://repo.saltstack.com/windows/

***HUOM TARKISTA SALT VERSIONUMERO MASTERILTA, MIKÄLI VERSIOT EIVÄT OLE MINIONILLA JA MASTERILLA SAMAT VOI TULLA ETEEN ONGELMIA***

Capture1.PNG

Seuraavaksi asensin salt-minion palvelun jonka latasin.

Asennuksen yhteydessä ohjelma pyysi syöttämään master koneen IP-osoitteen, sekä antamaan minionille nimen.

Capture

Asennuksen jälkeen käynnistin palvelun ja otin SSH yhteyden virtuaalipalvelimelleni PuTTylla. 

Capture4

Ja sieltähän se pyyntö olikin jo tullut. Sitten testasin että toimiiko yhteys masterilta minionille.

Capture5.PNGKomento antoi minulle vastauksen pöytäkoneeltani onnistuneesti, IP-osoite tietoturvasyistä peitetty. Minioni raspberry-pi3 ei ollut verkkoyhteydessä joten tämän vuoksi  “No response”.


b) Säädä Windowsia Saltilla ilman herra-orja rakennetta (salt-call –local)

Avasin powershellin pöytäkoneellani sekä annoin seuraavat komennot:

Capture6.PNG

Paikallisesti salt-call toimi oikein ja näytti oikean ip osoitteen sekä hostnamen.

Testasin myös ajaa lokaalisti saltin highstateen, sekä ilman lokaalia.

Capture7.PNG

Koska paikallisesti ei ole koneellani mitään salt top tiedostoa niin komento ei tehnyt mitään. Mutta kun hain master koneeltani, ajoi se luomani hello moduulin onnistuneesti. 

Moduuli kirjoittaa .txt tiedoston c:\ hakemistoon, moduulin toimii Linux, sekä Windows ympäristössä.

Capture8.PNG


c) Muuta jonkin Windows-ohjelman asetuksia Saltilla. Monia ohjelmia voi säätää laittamalla asetustiedoston paikalleen, aivan kuten Linuxissa.

Latasin ensin git:in windowsilleni saltin avulla.

sudo salt ‘*WIN’ chocolatey.install gitsudo salt ‘*WIN’ chocolatey.install git

Seuraavaksi avasin Gitin koneellani ja asetin käyttäjänimen, sekä sposti osoitteen. Näistä tuli kohteeseen C:\Users\Miika .gitconfig niminen tiedosto. Tästä tiedostosta löytyi seuraava teksti:

[user]
email = a1704460@myy.haaga-helia.fi
name = Miika Zitting

Eli tämän tiedoston kopioimalla on mahdollista asettaa git:iin käyttäjänimi & salasana. 

Loin salt masterilleni /srv/salt/gitconf/ tiedoston, jonne init.sls, sekä jonne kopioin .gitconf tiedoston windowsiltani.

Lisäsin top.sls tiedostoon sarakkeen gitconf moduulille, ja lähdin testaamaan. 

Ensimmäiseksi poistin .gitconf tiedoston windowsiltani, sekä avasin gitin varmistaakseni ettei sieltä käyttäjätietoja löydy.

Capture11

Sitten ajoin moduulin ja toivoin parasta.

Toisella yrittämällä sain aikaan onnistuneen ajon. Ensimmäinen ajo tyssäsi kirjoitusvirheeseen file managedin lokaatiossa.

Capture12

Ja lopulta avattua gitin oli käyttäjätiedot tulleet uudesta .gitconfig tiedostosta.

Capture13


d) Valitse aihe omaksi kurssityöksi ja varaa se kommenttina aikataulusivun perään.

Capture9- OMA MODUULI.PNGMuutokset vielä mahdollisia oman moduulin rakenteeseen ^^

Palvelinten hallinta Viikko 4

Harjoitus H4

Tehtävät ovat suoraan kopioitu opettajamme Tero Karvisen sivuilta.

http://terokarvinen.com/2018/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%e2%80%93-loppukevat-2018-5p

a) Tee skripti, joka tekee koneestasi salt-orjan.

Tee joko b tai c:

b) Lokianalytiikka. Kokeile viimeisintä versiota Jussin, Einon ja Sakun lokien analytiikasta. Täytä tai kommentoi GitHub-sivulla jotain bugia tai kehitysehdotusta. (Jos teit tätä tunnilla, tee uusi bugiraportti/kommentti uusimmasta versiosta) https://github.com/jisosomppi/log-analysis/tree/master/salt

c) Vagrant. Asenna Vagrant. Kokeile jotain uutta kuvaa Atlaksesta. Huomaa, että kuvat ovat vieraita binäärejä, ja virtuaalikoneista on mahdollista murtautua ulos. Jokohan Ubuntun virallinen  Suodatin: VirtualBox, järjestys: Most downloads. https://app.vagrantup.com/boxes/search?provider=virtualbox

d) Ota tunnille mukaan ylimääräinen muistitikku. Jos osaat ja sinulla on Windowsin lisenssejä, tee siitä Windows 10 asennustikku. Levykuvia saa Microsoftin kotisivulta “download windows iso” ja koulun palveluista. Tikkua käytetään joko ensi tunnilla tai sitä seuraavalla.


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Molemmissa järjestelmissä käyttöjärjestelmänä pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni Linux pyörii livetikulta.

Koneiden rauta nähtävissä Viikon 1 tehtävissä.

Asensin pöytäkoneelleni Shutter ohjelman kuvakaappauksia varten.


a) Tee skripti, joka tekee koneestasi salt-orjan.

Sain scriptini valmiiksi jo viime opetuskerran aikana, joten käytin sitä tässä tehtävässä.

Scrpti löytyy kokonaisuudessaan GitHubistani.

Scripti ajaa koneelle suomalaisen näppäinasettelun, päivittää paketinhallinnan, asentaa salt-minionin, sekä tekee muutokset /etc/salt/minion tiedostoon asettaen koneen jolla scripti ajetaan virtuaalipalvelimeni orjaksi.

Selection_001.png

Ajoin scriptin seuraavilla komennoilla:

cd /bin/

sudo wget https://raw.githubusercontent.com/MiikaZitting/saltsetup/master/startup.sh


sudo chmod ugo+x startup.sh

cd

startup.sh

Päätin ajaa wget:in suoraan /bin/ kansioon jotta komento olisi käytettävissä missä vain hakemistossa, sekä lisäsin scriptiin suoritusoikeudet.

Seuraavaksi otin ssh yhteyden virtuaalipalvelimelleni, josko scriptin ajo olisi onnistunut.

Selection_002.png

Ja olihan se !

Scriptin huono puoli on ainoastaan se että se lisää automaattisesti orjan nimellä “practisepc”. Muutos tähän tulee torstain tunnilla.


c) Vagrant. Asenna Vagrant. Kokeile jotain uutta kuvaa Atlaksesta. Huomaa, että kuvat ovat vieraita binäärejä, ja virtuaalikoneista on mahdollista murtautua ulos. Jokohan Ubuntun virallinen  Suodatin: VirtualBox, järjestys:

Most downloads. https://app.vagrantup.com/boxes/search?provider=virtualbox

Aloitin asentamalla Vagrantin & VirtualBOX:in

sudo apt-get -y install vagrant
sudo apt-get -y install virtualbox

Valitsin kokeiltavaksi kuvaksi Debian/jessie64, sillä en ole debianiin pohjautuvia käyttöjärjestelmiä käyttänyt aikaisemmin.

https://app.vagrantup.com/debian/boxes/jessie64

sudo mkdir debian

cd debian/

sudo vagrant init debian/jessie64

sudo vagrant up

Sain virtuaalikoneen käynnistymään :

Selection_004.png

Seuraavaksi otin ssh yhteyden virtuaalikoneelle:

sudo vagrant ssh

Selection_005.png

Ajoin seuraavaksi wget komennon hakeakseni GitHubin scriptini ja kokeillaakseni sitä debianilla.

wget https://raw.githubusercontent.com/MiikaZitting/saltsetup/master/startup.sh

Muutin vielä komennosta salt minion tiedoston id:n oikeaksi, ettei tuli 2 samannimistä laitetta masterille.

Selection_006.png

Scriptistä toimi kaikki muut osioit oikein, paitsi “setxkbmap” joka oli järjestelmän mukaan unknown command.

Selection_007.png

Ja virtuaalipalvelimenikin näki uuden orjan avaimen hyväksyttävänä.

Debianilla komentoja kokeillessani, sekä tiedostorakennetta tutkiessani huomasin että debian on rakenteeltaan hyvin samantapainen kuin itselleni tutumpi xubuntu.


d) Ota tunnille mukaan ylimääräinen muistitikku. Jos osaat ja sinulla on Windowsin lisenssejä, tee siitä Windows 10 asennustikku. Levykuvia saa Microsoftin kotisivulta “download windows iso” ja koulun palveluista. Tikkua käytetään joko ensi tunnilla tai sitä seuraavalla.

Tämän osion suoritin pöytäkoneellani Windows 10 Pro käyttöjärjestelmässä.

https://www.microsoft.com/fi-fi/software-download/windows10

Latasin kyseisestä linkistä Windowsin Media Creation toolin, jolla saa luotua toimivan Windows 10 asennusmedian.

Muistia ohjelmisto vaatii USB tikulta vähintään 8gb, valitsin Windows 10 käyttöjärjestelmän Englanninkielisen version.

capture1.png

Ohjelma sai USB tikun onnistuneesti luotua. Mielenkiintoinen huomio oli että vaikka olin muistitikulle osioinut 9gb osion niin windowsin usb median luonti työkalu poisti kaikki osioinnit, sekä loi vain yhden osion tätä mediaa varten.

Testauksen suoritan tikulle Torstain tunnilla labran tietokoneille.

Palvelinten hallinta Viikko 2

04-11-2018

Harjoitus H2 – Torstain ryhmä

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) Asenna SSH eri porttiin Package-File-Service rakenteella. Käytä service:watch -tekniikkaa niin, että demoni käynnistyy uudelleen, kun asetustiedosto muuttuu. (Vinkki: Pkg-File-Service – Control Daemons with Salt)

c) Asenna Apache käsin niin, että käyttäjien kotisivut näkyvät. Etsi muutetut tiedostot komennolla ‘find /etc/ -printf ‘%T+ %p\n’|sort’. (Muista korjata lainausmerkit oikeiksi, automaattimuotoilu usein sotkee ne). Yritä nyt tehdä tila, joka asettaa nuo tiedostot (file.symlink) paikoilleen. (Katso tarvittaessa: Apache User Homepages Automatically)

d) Eri package-file-service. Tee package-file-service tilalla jokin eri asetus tai asennus kuin tunnilla ja tehtävän muissa kohdissa.


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Molemmissa järjestelmissä käyttöjärjestelmänä pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni Linux pyörii livetikulta.

Koneiden rauta nähtävissä Viikon 1 tehtävissä.

Tehtäviä varten poistin virtuaalipalvelimelta jo löytyvät asetukset ja asennukset salt-master, sekä apachen osalta. Myös tulimuurin sääntölistalta poistettu salt:in vaatimat portit.

Käytin seuraavia komentoja:

apt-get purge salt-master

sudo ufw delete allow 4506/tcp
sudo ufw delete allow 4505/tcp

sudo apt-get purge apache2

sudo rm -r public_html/

sudo rm /var/www/html/index.html


b) Asenna SSH eri porttiin Package-File-Service rakenteella. Käytä service:watch -tekniikkaa niin, että demoni käynnistyy uudelleen, kun asetustiedosto muuttuu. (Vinkki: Pkg-File-Service – Control Daemons with Salt)

Virtuaalipalvelimellani oli valmiina jo ssh demoni asennettuna, sekä tätä varten tehty tulimuuriin reikä porttiin 22/tcp.

Ensimmäiseksi vaihdoin ssh:n oletusportin porttiin 8888.

Selection_001.png

sudoedit /etc/ssh/sshd_config

sudo systemctl restart ssh

logout

Tämän jälkeen yritin kirjautua ssh yhteydellä uudestaan virtuaalipalvelimelle.

Selection_002.png

En päässytkään kirjautumaan sisään ensiksi oletusporttiin (22), enkä myöskään uuteen porttiin (8888). Tämähän johtui tietysti siitä että unohdin lisätä virtualipalvelimen tulimuuriin allow säännön porttiin 8888.

Jouduin menemään DigitalOceanin sivujen kautta ja avaamaan console yhteyden weppiselaimella palvelimelleni, jotta saisin taas ssh yhteydet pelittämään.

Selection_003.png

Tämän korjauksen jälkeen sain taas ssh yhteyden virtuaalipalvelimelleni porttiin 8888.

Selection_004.png

SALT-Master ja Orja

Latasin ensin virtuaalipalvelimelleni salt-masterin viimeviikon tehtävien ohjeiden mukaisesti.

Master

sudo apt-get -y install salt-master

sudo ufw allow 4505/tcp

sudo ufw allow 4506/tcp

Orja

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

  • master: 104.248.162.226
  • id: poytakone

sudo systemctl restart salt-minion

Virtuaalipalvelimelle tuli pyyntö pöytäkoneeltani ja hyväksyin avaimen komennolla:

sudo salt-key -A

Testasin että master-slave yhteys toimi oikein viimeviikolla tekemälläni grains komennolla.

Selection_006.png

SALT SSH state

Tässä osiossa käytin http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port kyseisestä linkistä löytyvää ohjetta, sekä pohjaa sshd.sls tiedostolle.

sudo mkdir /srv/salt/ssh

sudoedit sshd.sls

openssh-server:
 pkg.installed

/etc/ssh/sshd_config:
 file.managed:
   - source: salt://ssh/sshd_config

sshd:
 service.running:
   - watch:
     - file: /etc/ssh/sshd_config

sudo cp /etc/ssh/sshd_config /srv/salt/ssh/

sudoedit sshd_config

# DO NOT EDIT  – this is a managed file, changes will be overwritten

Viimeisin rivi on tärkeä lisätä mikäli jokin tiedosto kopioituu orja koneelle, sillä kaikki orjan tekemät muutokset poistuvat kun master ajaa taas highstaten ja korvaa kaiken /srv/ssh kansiosta löytyvällä.

Seuraavaksi ajoin seuraavan komennon ja katsoin toimiiko uusi ssh state.

sudo salt ‘*’ state.apply sshd

Katsoin tämän pöytäkoneeltani johon state oli ajettu.

Selection_007.png

Lisäsin vielä  pöytäkoneen tulimuuriin säännön portille 8888.

sudo ufw allow 8888/tcp

Seuraavaksi yritin ottaa virtuaalipalvelimeltani ssh yhteyden pöytäkoneeni porttiin 8888. Tämä ei toiminut, mitään ei tapahtunut. Virtuaalipalvelin jää vain miettimään eikä anna mitään error viestiä tai muuta.

Koitin etsiä lokitiedostoista, mistä toimimattomuus voisi johtua, mutta tuloksetta. Lokitiedostoihin ei kerry mitään dataa epäonnistuneesta yrityksestä.

Selection_009

Seuraavaksi koitin kirjautua pöytäkoneellani ssh yhteydellä pöytäkoneeseeni. Tämä onnistui porttiin 8888 normaalisti.

Selection_010.png

Epäilin että sshd_config tiedostossa olisi jotain häikkää. Muutin PermitRootLogin No kohdan “Yes” ja ajaa taas state.apply ssh, mutta tuloksetta. Koitin myös lisätä “#” kyseisen rivin kohdalle ja ajaa state.apply ssh, eikä sekään toiminut. Tälle ongelmalle selvisi syyksi se että kotikoneeni on reitittimen takana, josta tuo portti 8888 ei ole avattu. En halua avata reitittimestäni mitään ylimääräistä, joten tila saa jäädä noin.


 

06-11-2018

Uusi päivä uudet haasteet. Pöytäkoneeni linux on puhdas livetikku boot. Päivitin paketinhallinnan, sekä latasin shutter ohjelman kuvakaappauksia varten. Asensin uudestaan ssh demonin etäyhteyttä varten, sekä asensin salt-minion palvelun uudestaan, johon laitoin virtuaalipalvelimeni masteriksi.

c) Asenna Apache käsin niin, että käyttäjien kotisivut näkyvät. Etsi muutetut tiedostot komennolla ‘find /etc/ -printf ‘%T+ %p\n’|sort’. (Muista korjata lainausmerkit oikeiksi, automaattimuotoilu usein sotkee ne). Yritä nyt tehdä tila, joka asettaa nuo tiedostot (file.symlink) paikoilleen. (Katso tarvittaessa: Apache User Homepages Automatically)

Latasin ensiksi Apachen virtuaalipalvelimelleni, sekä latioin kotisivut näkymään alla vaiheet:

sudo apt-get -y install apache2

echo Default VEX! | sudo tee /var/www/html/index.html

This slideshow requires JavaScript.

Apache toimi kuten piti, sekä vaihdoin default sivun pois. Seuraavaksi laitoin käyttäjän kotisivut näkymään:

mkdir public_html

cd public_html/

nano index.html

sudo a2enmod userdir

sudo systemctl restart apache2

Selection_004.png

Nyt käyttäjänkin kotisivut toimivat ja näkyivät oikein.

Seuraavaksi rupesin tekemään tilaa joka tekisin automaattisesti käyttäjän kotisivut näkyviin.

find /etc/ -prinfind /etc/ -printf ‘%T+ %p\n’|sorttf ‘%T+ %p\n’|sort

Selection_005.png

Kopioin pohjan sls tiedostoon suoraan TÄSTÄ linkistä.

Selection_006

Selection_008.png

Sitten ajoinkin jo seuraavan komennon ja tulokset olivat vastaavia :

sudo salt ‘*’ state.apply apache

This slideshow requires JavaScript.

Apache asentui oikein automaattisesti pöytäkoneele, sekä muokkasi apachen default pagen omaan tekstiini. Sivu vastasi localhostista ja ip:stä yllä olevan kuvan tavalla.

Sitten testasin vielä käyttäjällä omien kotisivujen luomista:

Selection_010

Kotisivut näkyvät käyttäjälle suoraan, eli salt tila on onnistuneesti luotu. YIHUU


d) Eri package-file-service. Tee package-file-service tilalla jokin eri asetus tai asennus kuin tunnilla ja tehtävän muissa kohdissa.

Lähdin tekemään tilaa joka asentaa php moduulin apacheen, ja tätä kautta sallii php:n ajon weppisivulle.

Ensimmäiseksi latasin virtuaalipalvelimelleni php moduulin.

sudo apt-get -y install php

Seuraavaksi enabloin php:n ajon sivuilla apachen asetuksista.

cd /etc/apache2/mods-available/

sudoedit php7.2.conf

“#” risuaidoitin IF moduulin conf tiedostosta.

Seuraavaksi käynnistin apachen uudelleen ja tein public_html kansiossa olevasta index.html tiedostosta php tiedoston.

sudo systemctl restart apache2

sudo rm index.html

nano index.php

miika@Ubuntu-LinuxPalvelimet:~/public_html$ cat index.php
<?php

print “hello world!”

?>

Selection_011.png

Php toimii oikein weppisivulla, joten seuraavaksi tein tästä tilan.

cd /srv/salt/

sudo mkdir php

cd php/

sudoedit init.sls

Selection_012.png

Seuraavaksi kopioin php7.2.conf tiedoston apachen mods-available kansiosta, lisäsin myös oikeudet muokata varmuuden vuoksi.

sudo cp /etc/apache/mods-available/php7.2.conf /srv/salt/php/php7.2.conf

sudo chmod ugo+x php7.2.conf

Ajoin tilan seuraavaksi orjalle

sudo salt ‘*’ state.apply php

Tila asentui oikein pöytäkoneelleni, joten tein pöytäkoneen public_html/index.html tiedostosta php tiedoston. Indexi täytyy tehdä itse, sillä tila ei tee automaattisesti uutta php indexi tiedostoa ainoastaan mahdollistaa php:n käytön.

Selection_013.png

Seuraavaksi koitin weppiselaimella toimiiko sivu, ja eihän se toiminut….

Tila ei käynnistä apachea uudestaan, eli uudet php asetukset eivät tule käyttöön.

Käynnistin apachen manuaalisesti uudestaan ja tulos on vastaava:

sudo systemctl restart apache2

Selection_014.png

It’s ALIVE ! Php tilan asetukset ovat onnistuneesti ajettu pöytäkoneelleni saltin avulla.

Palvelinten hallinta Viikko 1

30-10-2018

Harjoitus H1

a) Lue virallisesta Salt Getting Started Guide -kirjasta luvut Understanding SaltStack (noin 8 alasivua) ja SaltStack Fundamentals (6 alasivua, ei tarvitse asentaa demoympäristöä) ja SaltStack Configuration Management: Functions (1 alasivu). (Tätä lukutehtävää ei tarvitse raportoida).

b) Silmäile Laineen 2017 varastossa olevia salt -asetuksia. (Tätä lukutehtävää ei tarvitse raportoida).

c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

d) Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.

e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

g) Vapaaehtoinen: asenna ja konfiugroi jokin palvelin Saltilla. (package-file-server)


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Molemmissa järjestelmissä käyttöjärjestelmänä pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni Linux pyörii livetikulta.

Alla kuva järjestelmien raudasta komennolla :

sudo lshw -short -sanitize

screenshot_2018-10-30_17-31-24-e1540920730868.png


c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

Ensimmäisenä asensin salt-masterin virtuaalipalvelimelleni, sekä tein tarvittavat muutokset salt:ia varten.

sudo apt-get -y install salt-master

sudo ufw allow 4505/tcp

sudo ufw allow 4506/tcp

Nyt tulimuuriin on luotu reikä salt:ia varten. Seuraavaksi katsoin virtuaalipalvelimeni ip:n jonka asetin seuraavassa vaiheessa pöytäkoneeni salt-master osoitteeksi.

miika@Ubuntu-LinuxPalvelimet:~$ hostname -I
104.248.162.226 10.16.0.5 2a03:b0c0:1:e0::359:b001

Seuraavaksi latasin salt-minionin pöytäkoneelleni, sekä asetin salt-masteriksi virtuaalipalvelimen ip-osoitteen.

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

  • master: 104.248.162.226
  • id: kotikone

sudo systemctl restart salt-minion

Seuraavaksi katsoin tuliko virtuaalipalvelimelle pyyntöä kotikone id:llä ja tulihan sieltä. Hyväksyin pyynnön ja testasin etäkäyttöä lataamalla pöytäkoneelleni shutterin tehtävien kuvakaappaamista varten.

miika@Ubuntu-LinuxPalvelimet:~$ sudo salt-key -A
[sudo] password for miika:
The following keys are going to be accepted:
Unaccepted Keys:
kotikone
Proceed? [n/Y]

sudo salt ‘*’ cmd.run ‘sudo apt-get -y install shutter’

sudo salt ‘*’ cmd.run ‘whoami’

Ja alla kuva otettuna shutterilla joka latauitui virtuaalipalvelimen komennolla.

Selection_001.png


d) Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.

Valitsin tulimuurin asetusten muuttamisen ja aktivoinnin tehtäväkseni, sillä siihen löytyi Laineen sivulta (https://github.com/joonaleppalahti/CCM/tree/master/salt/srv/salt) hyvät pohjat joita oli helppo käyttää omassa tehtävässäni.

Ensiki loin kansiot /srv, /srv/salt, sekä /srv/salt/firewall juureen,

sudo mkdir /srv
sudo mkdir /srv/salt/
sudo mkdir /srv/salt/firewall

Tämän jälkeen loin 2 tekstitiedostoa, johoin määriteltiin mitä konfiguraatioita salt ajaa orjalleen. Alla myös kuva tiedostojen sisällöstä. firewall.sls konfiguraatio on suoraan kopioitu TÄÄLTÄ.

sudoedit top.sls
sudoedit firewall.sls

Selection_003

Seuraavaksi kopioin tulimuurin sääntölistat virtuaalipalvelimen tulimuurin kansiosta. Sääntölistat ja kaikki tulimuurin asetukset löytyvät /etc/ufw.

sudo cp user.rules /srv/salt/firewall
sudo cp user6.rules /srv/salt/firewall

Seuraavaksi siirryin testaamaan toimiiko tehty tila.

sudo salt ‘*’ state.highstate

Ensimmäiset yritykset eivät suorittaneet ajoa pöytäkoneelle, sillä olin unohtanut että tulimuurin sääntölistaa kopioidessa tiedoston lukuoikeudet olivat vielä erittäin rajoitetut.

Muutin kopioitujen sääntölistoihin lukuoikeuden kaikille käyttäjille seuraavilla komennoilla.

sudo chmod ugo+r user.rules
sudo chmod ugo+r user6.rules

Alla vielä kuva tilanteesta kun oikeudet puuttuivat, sekä oikeuksien muutoksen jälkeen.

Selection_004.png

Seuraava yritys:

sudo salt ‘*’ state.highstate

 

Tällä kertaa virtuaalikone ei herjannut erroria, mutta muutosten ajo kesti useamman minuutin ajan. Lopulta sain raportin että muutokset ajettu onnistuneesti.

Alla kuva pöytäkoneen tulimuurin tilasta, sekä yhteenvedosta virtuaalipalvelimelta.

Selection_002.png


e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

Grains komennolla hetken testailleeni päädyin seuraavaan “unelmien” grains komentoon, joka kertoo koneen mac osoitteen, ipv4-, sekä ipv6- osoitteen

Komenonti näyttää tältä:

sudo salt ‘kotikone*’ grains.item ipv4 ipv6 hwaddr_interfaces

Ja vastaus terminaaliin näyttää tältä:

Selection_005.png


f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

Tein tekstitiedoston /srv/salt/peruspaketti.txt johon laitoin sisään seuraavat asiat:

miika@Ubuntu-LinuxPalvelimet:/srv/salt$ cat peruspaketti.sls
shutter:
pkg.installed

gimp:
pkg.installed

fi:
keyboard.system

Eli tämä ajaessa orjan tulisi ladata shutter ja gimp, sekä asettaa näppäimistöasettelu suomeksi. Testiä varten muutin pöytäkoneen näppäinasettelun US.

sudo salt ‘kotikone*’ state.highstate

Shutter pöytäkoneelta löytyikin jo, mutta gimp latautui oikein. Näppäimistöasettelu ei muuttunut vaikka virtuaalipalvelimelle yhteenveto ajosta näytti layoutin muuttuneen onnistuneesti. Selvitän mistä tämä toimimattomuus johtuu ensi viikon tunneilla.


 

Linux Palvelimet viikko 7

Harjoitus H7

09-10-2018

a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. (Löytyy DuckDuckGolla tai Googlella sekä linkeistä tältä sivulta).

b) Kaikki tehtävät arvioitavaksi. Palauta linkki sivuun, josta löytyvät kaikki kotitehtäväraporttisi. Arviointi tehdään ensisijaisesti tästä linkistä. Linkki voi olla esimerkiksi blogin etusivu (jos blogissa on vain kotitehtävät) tai sivuun, jossa on linkki kuhunkin tehtävään. Kaikki tehtävät -linkin palautus Moodlessa kohtaan “Kaikki tehtävät arvioitavaksi”.

c) (vapaaehtoinen) Käytä Linuxia kurssin ulkopuolella.

d) (vapaaehtoinen) Varaa kalenteristasi viikon välein aikoja Linux-harjoitteluun kurssin jälkeen.


Suoritan tehtävät pöytäkoneellani, jonka tiedot löytyvät Viikon 1 tehtävistä. Linuxina pyörii livetikulta Xubuntu 18.04.01 LTS.


Valitsin laboratioharjoitukseksi harjoituksen keväältä 2017. Linkistä pääsee harjoituksen sivulle.

http://terokarvinen.com/2017/arvioitava-laboratorioharjoitus-%e2%80%93-linux-palvelimet-ict4tn021-2-uusi-ops-alkukevaalla-2017-p1

Tehtävä:

Haluamme tehdä PHP-kotisivuja etäältä.

Työntekijöitämme ovat Jorma Mähkylä, Pekka Hurme, Ronaldo Smith, Håkan Petersson, Einari Mikkonen, Einari Vähäkäähkä, Eija Vähäkäähkä. Tee heille HTML5-esimerkkikotisivut siten, että kunkin testisivun otsikossa lukee omistajan käyttäjätunnus.

Maija Virtanen jatkaa ylläpitoa, tee hänelle sudo-tunnus. Maija haluaa käyttäjätunnuksen “maija”.

Pekka Hurme aloittaa LAMPin opiskelun. Tee Pekalle oma tietokanta, ja muuta hänen PHP-esimerkkisivunsa näyttämään tietueita tietokannasta (eli tietokantojen “hei maailma”).

Jorma aikoo kehittää uuden sivun sleep.example.com. Laita Jorman kotisvu näkymään myös tästä osoitteesta. Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

Suojaa kone tulimuurilla.

Tee uusi komento ‘wowstats’, joka näyttää tietoja koneen tilasta. Sen tulee toimia jokaisella käyttäjällä työhakemistosta riippumatta.

Tee kaikki niin realistisesti, kuin se labrassa on mahdollista: käytä järkeviä käyttäjätunnuksia ja salasanoja. Testaa kaikki palvelut niin julkisilla nimillä tai IP-osoitteilla, kuin labrassa on mahdollista.


Etätyöskentely :

Ensimmäiseksi latasin ssh demonin etätyöskentelyä varten.

  • sudo apt-get -y install ssh

Reikä tulimuuriin ssh:ta varten, sekä valmiiksi http portti weppisivuja varten,

  • sudo ufw allow 22/tcp
  • sudo ufw allow 80/tcp
  • sudo ufw enable
  • sudo ufw status verbose

Verbose näytti vastaavalta:

xubuntu@xubuntu:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
— —— —-
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)

Tulimuuri valmis joten siirryin seuraavaan osaan.


Apache:

Apache asentui seuraavilla komennoilla, sekä korvasin oletussivun tekstillä:

  • sudo apt-get -y install apache2
  • echo Testisivu | sudo tee /etc/h

Selection_001Selection_002

Oletussivu korvattu onnistuneesti.

Enabloidaan käyttäjän kotisivujen ajaminen kotihakemiston kansiosta:

  • sudo a2enmod userdir
  • sudo systemctl restart apache2
  • mkdir public_html
  • cd public_html
  • nano index.html

Selection_003.png

Käyttäjän kotisivut toimivat kotihakemiston public_html kansiosta oikein.


PHP:

  • sudo apt-get -y install php

Ja jotta php:ta voitaisiin ajaa tulee sijainnista /etc/apache2/mods-available/ muokata tiedostoa php7.2.conf.

Public_html kansion indexiin kirjoitettu vastaavaa ja muutettu nimi index.php

<?php
Print “Hello World!”
?>

Lopputulos oli vastaava:

Selection_004.png

PHP näytti toimivan oikein joten siirryin seuraavaan osioon.


Käyttäjät:

Loin jokaiselle käyttäjälle omat tunnukset, Maijalle lisättiin vielä sudo oikeudet. Kaikille käyttäjille oli tarkoitus luoda omat weppisivut jonka otsikossa lukee käyttäjän nimi. Jotta jokaiselle et tarvitse luoda erikseen omaa public_html kansiota, tein ensin public_html kansion. Sitten siirsin public_html kansion /etc/skel:iin.

  • sudo cp -r public_html /etc/skel/

Käyttäjätunnuksen salasanoja varten latasin pwgen:in jolla saan generoitua vahvoja salasanoja käyttäjille.

  • sudo apt-get -y install pwgen
  • pwgen 12 10

Loin 12 merkkisiä salasanoja 10 kpl joista valitsin 6 käyttäjiä varten.

Käyttäjien kotisivuja varten tein bash scriptin jonka ajamalla käyttäjän public_html kansioon luodaan automaattisesti index.html tiedosto joka saa sivun näyttämään käyttäjätunnuksen otsikossa.

Scriptistä tuli vastaavanlainen:

#!/bin/bash
echo “<title>$(whoami)</title>” | tee public_html/index.html

Selection_005

Kuten kuvasta näkyy on sivun otsikkona käyttäjän nimi, tässä tapauksessa “xubuntu”.

Scripti toimi joten lisäsin siihen kaikille oikeuden ajaa, sekä siirsin sen /bin :iin.

  • sudo chmod ugo+x omasivu
  • sudo cp omasivu /usr/bin/

Loin ensimmäiseksi käyttäjän jorma:

  • sudo adduser jorma

Salasanaksi asetin pwgenillä luomistani 12 merkkiä pitkistä salasanoista.

Testasin käyttäjän etäkäytön ja varmistin että scripti toimii:

  • ssh jorma@localhost
  • omasivu

jorma@xubuntu:~$ omasivu
<title>jorma</title>

Selection_006.png

Otsikko on “jorma” eli scripti toimi myös oikein käyttäjällä. Seuraavaksi siirryin muiden käyttäjien luomiseen ja testaamiseen.

Loin 6 uutta käyttäjää omille nimilleen, luodut käyttäjät käyttäjänimineen alla:

  • Nimi: Jorma Mähkylä Käyttäjätunnus: jorma
  • Nimi: Pekka Hurme Käyttäjätunnus: pekka
  • Nimi: Ronaldo Smith Käyttäjätunnus: ronaldo
  • Nimi: Håkan Petersson Käyttäjätunnus: hokan
  • Nimi: Einari Mikkonen Käyttäjätunnus: einarim
  • Nimi: Einari Vähäkäähkä Käyttäjätunnus: einari
  • Nimi: Eija Vähäkäähkä Käyttäjätunnus: eija
  • Nimi: Maija Virtanen Käyttäjätunnus: maija

Maija Virtasen käyttäjästä tehtiin myös sudokäyttäjä.

  • sudo usermod -aG sudo maija

Testattu etäkäyttö kaikilla käyttäjilla ja ajettu “omasivu” scripti jolla saatu aikaan odotetut tulokset kuten jormankin käyttäjällä. Maijan käyttäjällä testattu myös että sudo oikeudet ovat perityneet.

maija@xubuntu:~$ sudo whoami
[sudo] password for maija:
root


Mariadb:

Asennettu mariadb:

  • sudo apt-get -y install mariadb-client mariadb-server

Käynnistetty mariadb sudona ja luotu uusi tietokanta jota varten oma käyttäjä:

  • sudo mariadb -u root
  • CREATE DATABASE pekkadb;
  • GRANT ALL ON pekkadb.*TO pekkadb@localhost IDENTIFIED BY ‘******’;

“*” merkkien tilalle laitettava haluttu salasana mariadb käyttäjälle.

Testattu että käyttäjälle kirjautuminen toimii, sekä että käyttäjä ei pysty luomaan tietokantoja. Ainoastaan tiettyyn tietokantaan tauluja ja muita tietoja.

  • mariadb -u pekkadb -p
  • SHOW DATABASES;
  • MariaDB [pekkadb]> CREATE DATABASE lol
    -> ;
    ERROR 1044 (42000): Access denied for user ‘pekkadb’@’localhost’ to database ‘lol’
  • use pekkadb
  • CREATE TABLE pekkapoints (id INT AUTO_INCREMENT PRIMARY KEY, move VARCHAR(1024), points FLOAT);
  • INSERT INTO pekkapoints (move, points) VALUES(“kurkipotku”, 10.0);
  • INSERT INTO pekkapoints (move, points) VALUES(“hide”, 0.0);
  • SELECT * FROM pekkapoints

SELECT * näytti vastaavalta:

MariaDB [pekkadb]> SELECT * FROM pekkapoints
-> ;
+—-+————+——–+
| id | move | points |
+—-+————+——–+
| 1 | kurkipotku | 10 |
| 2 | hide | 0 |
+—-+————+——–+
2 rows in set (0.00 sec)

Seuraavaksi testasin että CRUD toimii tietokannassa oikein:

  • UPDATE pekkapoints SET points=1 WHERE move =”hide”;

MariaDB [pekkadb]> SELECT * FROM pekkapoints
-> ;
+—-+————+——–+
| id | move | points |
+—-+————+——–+
| 1 | kurkipotku | 10 |
| 2 | hide | 1 |
+—-+————+——–+
2 rows in set (0.00 sec)

Update toimi.

Seuraavaksi DELETE:

  • DELETE FROM pekkapoints WHERE name =”hide”;

MariaDB [pekkadb]> SELECT * FROM pekkapoints;
+—-+————+——–+
| id | move | points |
+—-+————+——–+
| 1 | kurkipotku | 10 |
+—-+————+——–+
1 row in set (0.00 sec)

CRUD toimii oikein testien perusteella.

Asensin paketinhallinnasta paketin jolla voidaan php:n avulla lukea tietoja tietokannasta:

  • sudo apt-get -y install php-mysq
  • systemctl restart apache2

Seuraavaksi muokkasin pekka käyttäjän index.html tiedostoa. Koodina käytin pohjaa joka löytyy linkistä:

http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

Koodi näytti vastaavalta kun siihen oli laitettuna tietokannan ja käyttäjän tiedot:

<title>pekka</title>

<?php
// public_html/index.php – Read MySQL from PHP
// (c) 2016 Tero Karvinen http://TeroKarvinen.com

// MySQL Login
$user=’pekkadb’;
$password=’*****’;

// Data Source Name i.e. connection details
$database=$user;
$dsn=”mysql:host=localhost;charset=UTF8;dbname=$database”;

// Open Connection, create new object of PDO class
$pdo=new PDO($dsn, $user, $password);

// Perform SQL Query
$pdoStatement=$pdo->prepare(‘SELECT * FROM pekkapoints;’);
$pdoStatement->execute();
$hits=$pdoStatement->fetchAll();

// Print the $hits Array
foreach($hits as $row) {
echo “<p>”.$row[‘id’].” “.$row[‘move’].” “.$row[‘points’].”</p>\n”;
}
?>

Testisivu näytti tiedot näin:

Selection_007.png

Eli tietojen lukeminen tietokannasta on onnistunut !


Jorman kotisivujen virtuaalihosting:

Järjestelmä ei useiden tuntien yritysten jälkeen vieläkään sallinut näyttämään jorman kotisivuja sleep.example.com sivulta.

Ongelmaksi muodostui sleep.example.com sivun ajaminen käyttäjän kotihakemistosta. /etc/apache2/sites-available/ kansioon loin uuden conf tiedoston jorman sivuja varten mutta tämän enabloitua ja apachen restarttia ajaessa antoi järjestelmä vastaavan virheen:

sudo systemctl restart apache2
Job for apache2.service failed because the control process exited with error code.
See “systemctl status apache2.service” and “journalctl -xe” for details.

Apachen lokitietojen selaaminenkaan ei tuottanut tulosta, enkä löytänyt ratkaisua tähän osioon.


wowstats:

Loin käyttäjällä tekstitiedoston wowstats.sh johon kirjoitin vastaavaa:

#!/bin/bash

echo “Hello,”
whoami

echo “Your IP is:”
hostname -i

echo “Your temps are:”
sensors -A

echo “Status of ram is:”
free -m

Lisäsin kaikille käyttäjille oikeuden suorittaa

  • sudo chmod ugo+x wowstats.sh

Ajoin scriptin omassa kotihakemistossa sudo käyttäjällä ja se toimi oikein. Nimesin scriptin uudelleen ja siirsin /usr/bin/ kansioon.

  • mv wowstats.sh wowstats
  • sudo cp wowstats /usr/bin/

Seuraavaksi otin ssh yhteyden jorman koneelle ja kotihakemistossa suoritin komennon “wowstats”:

Selection_008.png

Scripti toimii oikein käyttäjillä hakemistosta riippumatta !


1_010.png

Tässä vielä kuvakaappaus mitä pitäisi palauttaa labraharjoituksen päätteeksi eri tiedostoina.

Linux Palvelimet viikko 6

Harjoitus H6

01-10-2018

a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt. (Uusin versio: Programming Languages on Ubuntu 18.04. Vinkkejä: vanhat kotitehtäväraportit, Hei maailmojen lista, Hello Go, osin hieman vanha Programming Languages on Linux).

b) (vapaaehtoinen) Kirjoita kullakin kielellä yksinkertainen ohjelma, jolla on jokin käyttötarkoitus. Ideoita: hyödynnä kielen vahvuuksia. Ota käyttäjältä syöte, tee jokin lasku ja tulosta vastaus (input-processing-output).

Tehtävien suorituksessa  käytin kyseistä linkkiä apuna:

http://terokarvinen.com/2018/hello-python3-bash-c-c-go-lua-ruby-java-programming-languages-on-ubuntu-18-04


Suoritan tehtävät pöytäkoneellani, jonka tiedot löytyvät Viikon 1 tehtävistä. Linuxina pyörii livetikulta Xubuntu 18.04.01 LTS.


a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt.

Ensimmäisenä loin oman hakemiston johon voin tallentaa harjoitukseen tehtävät tiedostot.

  • mkdir Testit

Python:

Varmistin että python oli asennettuna järjestelmään komennolla:

  • sudo apt-get -y install python

xubuntu@xubuntu:~/Testit$ sudo apt-get install python
Reading package lists… Done
Building dependency tree
Reading state information… Done
python is already the newest version (2.7.15~rc1-1).
0 upgraded, 0 newly installed, 0 to remove and 180 not upgraded.

Järjestelmästä löytyi jo pythoniin vaadittavat paketit joten pystyin jatkamaan tehtävää.

Loin “Testit” hakemistoon tiedoston hellow.py:

  • nano hellow.py

Seuraavaksi kirjoitin tekstitiedostoon koodia:

print(“Hello World!”)

Testasin koodia terminaalissa komennolla:

  • python3 hellow.py

Ja vastaukseksi tuli :

Selection_001.png

Koodi toimi oikein joten siirryin seuraavan kielen pariin.


Bash:

Varmistin että bash on ajantasalla:

  • sudo apt-get -y install bash

Vastaus oli sama kuin Pythonin kanssa eli ei tiedostoja ladattu tai päivitetty.

Loin uuden tekstitiedoston “Testit” hakemistoon ja kirjoitin tekstitiedostoon seuraavat asiat:

  • nano hei.sh
  • #!/bin/bash
    echo “Hello World!”

“#!/bin/bash” lisätty siksi että kyseistä koodia voitaisiin ajaa shell skriptinä kansiosta. ( tämä lisäys oli omaa harjoittelua skripteihin liittyen )

Lisäsin tiedostoon oikeuden suorittaa kaikilla käyttäjillä:

  • chmod ugo+x hei.sh

Chmod lisää oikeuksia, ja “x” on oikeus suorittaa.

Ensin testasin että koodi toimii kansiossa:

Selection_002.png

Toimi oikein eli pystyin kopioimaan koodin /usr/local/bin kansioon. Tiedoston kopiointi vaati sudo oikeudet.

  • sudo cp hei.sh /usr/local/bin/
  • cd

Cd siksi että siirryin kotihakemistoon testaamaan toimiiko koodi.

Selection_003

Skripti ja koodi toimi oikein !


PHP:

Jotta pystyin testaamaan PHP koodia selaimessa täytyi ensin asentaa apache. Asennus onnistui samalla tavalla kuin viimeviikon tehtävissä, ohjeet löytyvät täältä :

Linux Palvelimet viikko 5

Apachen asennuksen jälkeen asensin PHP:n ja enabloin sen ajon weppisivulle.

Ohjeet löytyivät tähän myös viimeviikon tehtävistä joista linkki yllä.

Kotihakemistoon loin indexitiedoston ja sinne kirjoitin php koodin:

  • nano index.php

<?php
print “Hello World!”;
?>

Seuraavaksi katsoin selaimella localhost/~xubuntu ja sivu näytti vastaavalta :

Selection_004.png

Koodi toimi oikein !