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/tcpsudo 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.
sudoedit /etc/ssh/sshd_config
sudo systemctl restart ssh
logout
Tämän jälkeen yritin kirjautua ssh yhteydellä uudestaan virtuaalipalvelimelle.
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.
Tämän korjauksen jälkeen sain taas ssh yhteyden virtuaalipalvelimelleni porttiin 8888.
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.
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.
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ä.
Seuraavaksi koitin kirjautua pöytäkoneellani ssh yhteydellä pöytäkoneeseeni. Tämä onnistui porttiin 8888 normaalisti.
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
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
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
Kopioin pohjan sls tiedostoon suoraan TÄSTÄ linkistä.
Sitten ajoinkin jo seuraavan komennon ja tulokset olivat vastaavia :
sudo salt ‘*’ state.apply apache
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:
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
<?phpprint “hello world!”
?>
Php toimii oikein weppisivulla, joten seuraavaksi tein tästä tilan.
cd /srv/salt/
sudo mkdir php
cd php/
sudoedit init.sls
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.
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
It’s ALIVE ! Php tilan asetukset ovat onnistuneesti ajettu pöytäkoneelleni saltin avulla.
2 thoughts on “Palvelinten hallinta Viikko 2”