H5 Virtuaalipalvelin Vagrantilla

Tehtävänanto

Tee nimipohjainen virtuaalipalvelin Apachelle (name based virtual hosting). Muista laittaa sekä http://www.example.com että example.com. Voit simuloida asiakkaan nimipalvelua muuttamalla /etc/hosts -tiedostoa.

Kokeile virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta tai monista muista paikoista. Linodella ja Amazonilla saattaa olla ilmainen kokeilupaketti, DigitalOcean on halvin. Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä oman vagrantilla.
Päätin kokeilla Vagrantia, koska eräs ystäväni oli kyseistä ohjelmaa kehunut, enkä itse ollut kokeilut kyseistä ohjelmaa aikaisemmin. Käytin tehtävää tehdessä Tero Karvisen ohjeita, sekä Vagrantin omaa Getting Started ohjetta:

http://terokarvinen.com/2016/deploy-flask-python3-on-apache2-ubuntu

https://www.vagrantup.com/docs/getting-started/

Valmistelut

Asensin ensin Vagrantin ja Virtual Boxin komennoilla

sudo apt-get install vagrant

sudo apt-get install virtualbox

Virtuaalikoneen käyttöönotto

Luon kotihakemistooni kansion vm Vagrantin käyttöä varten komennolla mkdir vm . Siirryn kansioon komennolla cd vm ja luon kyseiseen kansioon Vagrantin alustustiedoston komennolla vagrant init .

xubuntu@xubuntu:~/vm$ vagrant init
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
xubuntu@xubuntu:~/vm$

Seuraavaksi latasin levykuvan Vagrantia varten komennolla

vagrant box add precise64 http://files.vagrantup.com/precise64.box

Tässä vaiheessa tajusin, että Vagrantin alustustiedosto pitäisi tehdä käytettävästä levykuvasta. Poistin vanhan alustustiedoston komennolla rm Vagranfile ja loin uuden komennolla vagrant init precise64 . Seuraavaksi käynnistin virtuaalikoneeni komennolla vagrant up .

 

Sain virheviestin:

The guest machine entered an invalid state while waiting for it to boot. Valid states are ’starting, running’. The machine is in the ’poweroff’ state. Please verify everything is configured properly and try again.

Googleteltuani päädyin seuraavalle sivulle:

https://github.com/mitchellh/vagrant/issues/2157

Siellä sain varmistuksen siitä, että ainoa vaihtoehtoni on todella käydä muokkaamassa BIOS-asetuksia ja aloittaa sen jälkeen kaikki alusta. Päätin tehdä sen vasta seuraavana päivänä.

Päivä 2

Toistin kaikki edelliset vaiheet, jättäen välistä tietysti aikaisemmat kömmähdykset, ja sain virtuaalikonee toimimaan ongelmitta. Ainoa eroavaisuus oli että kansion nimi muuttui vm:stä Vagrantiski.

Selection_001

Seuraavaksi kirjauduin virtuaalikoneeseen komennolla vagrant ssh ja ensitöikseni asensin apache2 koneelle komennolla sudo apt-get install apache2. Asensin myös curlin komennolla sudo apt-get install curl , sillä Tero käytti kyseistä ohjelmaa ohjeissaan. Loin kotihakemistoon public_html kansion sivua varten komennolla mkdir public_html,  loin public_html kansioon nanolla tiedoston index.html, johon kirjoitin vain ”Hello World!” ja otin käyttöön userdir modin komennolla sudo a2enmod userdir ja käynnistin Apachen uudestaan komennolla sudo service apache2 restart.

Seuraavaksi aloin muuttamaan asetuksia niin, että pääsisin käsiksi sivuuni käyttäen lau.ri osoitetta. Käytin Teron ohjeiden lisäksi erään entisen oppilaan tekemää tehtävää: https://teemuhalmela.wordpress.com/2014/03/03/name-based-virtual-hosting-homework-5/ Loin Teron ohjeiden mukaisesti sites-available kansioon oman moi.conf -tiedoston komennolla sudoedit /etc/apache2/sites-available/moi.conf . Muokkasin tiedostosta kuitenkin saman tyylisen kuin Teemu Halmelalla, sillä en käyttänyt Pythonilla tehtyä sivua, vain pelkästään perus html-sivua. Tiedostoni näytti siis tältä:

<VirtualHost *:80>
ServerAdmin esimerkki@mail.com
ServerName lau.ri
ServerAlias http://www.lau.ri
DocumentRoot /home/vagrant/public_html/
</VirtualHost>

Seuraavaksi tein kyseisestä tiedostosta oletustiedoston komennolla sudo a2ensite moi.conf ja käynnistin Apachen uudestaan sudo service apache2 restart.

Seuraavaksi muokkasin hosts-tiedostoa, kuten Teemu Halmela oli tehnyt, komennolla sudo nano /etc/hosts . Tiedostoni näytti seuraavalta:

127.0.0.1       localhost
127.0.1.1       precise64
127.0.0.1       http://www.lau.ri lau.ri

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Avatessani curlilla lau.ri näkyi tekemäni index.html sivu kuten pitikin. Avatessani localhostin tuli kuitenkin  Apachen oletussivu näkyviin. Tässä vaiheessa tajusin etten ollut poistanut Apachen oletus sivua käytöstä. Tein sen komennolla sudo a2dissite default . Nyt käyttäessäni curl localhost komentoa sain esiin oman ”Hello World!” -testisivuni. Selection_002

Pohdintaa

Ajattelin tehtävää aloittaessani, että parempi kokeilla tehtäävää Vagrantilla, kuin vuokrata oma virtuaaliserveri. Jos olisin silloin tiennyt kuinka monta kertaa joudun toistamaan tehtävän eri kohdat, niin että saan kaiken toimimaan oikein, olisin mielelläni käyttänyt GitHubin tarjousta. Kaiken kaikkiaan Vagrantin kanssa säätämiseen ja tappeluun meni minulta noin kuutisen tuntia, enkä edelleenkään ole varma sainko tehtyä tehtävää täysin kuten tehtävänanto oli vaatinut. Vaikka tekstiä on Päivä 2 osiossa suht vähän, käytin todellisuudessa tähän pisteeseen pääsemiseen noin kolme tuntia. Tämä voi kylläkin johtua siitä, etten ole kovin hyvä käyttäämään Linuxia.

 

Mainokset

Vastaa

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

WordPress.com-logo

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

Google+ photo

Olet kommentoimassa Google+ -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