Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Installazione e Configurazione
Try2Deploy :
William Bergamo (Mat. 837675) Tommaso Furlan (Mat. 822392) Matteo Feltre (Mat. 837473)
SOMMARIO
1) Introduzione
4 1.1 Introduzione..................................................................................................................................... 4 1.2 Obbiettivi del Gruppo..................................................................................................................... 4 1.3 Servizi Offerti................................................................................................................................... 4
5
5 7
14
14 14 16 16 16 16 17 17 18 18 18
3.3
19
19 19 22
23
24
26
1 INTRODUZIONE
1.1 Introduzione
In questa guida verr illustrato come configurare un server GNU / Linux utilizzando i servizi SSH , Apache, MySQL e Ruby on Rails, partendo dall'installazione della macchina virtuale e del sistema operativo per proseguire poi con il test dei servizi. Il progetto viene realizzato per il corso Laboratorio di Amministrazione di Sistema 2012/2013 dagli studenti: Matteo Feltre : Introduzione ed Installazione del Sistema William Bergamo : Installazione e Configurazione Servizi Tommaso Furlan : Test e Risultati ottenuti
2.1
Eseguito l'accesso ci troveremo di fronte ad una schermata divisa in due , nella parte sinistra troveremo i repository per le macchine virtuali. Nel nostro caso sceglieremo l'unica disponibile ammsis.dsi.unive.it
Cliccando col tasto destro sopra la repository scelta , selezionare New Virtual Machine
Si aprir una finetsra per la creazione guidata della Macchina Virtuale Lasciare Typical e cliccare su Next>
Assegnare un nome alla VM scrivendolo nel campo Name . Nel nostro caso il nome scelto stato try2deploy-webserver . Premere nuovamente su Next>
Selezionare il datastore in cui creare la macchina. Nel nostro caso selezioneremo l'unico disponibile datastore1 . Selezioneremo nuovamente Next>
Ora dovremo impostare il sistema operativo , selezioneremo Linux , e la versione Ubuntu Linux (32-bit) dal men a tendina sottostante. Cliccare su Next>
Nella schermata successiva bisogner assegnare un disco virtuale , i parametri di Default andranno pi che bene (datastore1 , 8 Gb , Statico) quindi lasceremo i suddetti. Premere Next> L'ultima pagina il resoconto delle operazioni eseguite fin qui , per permettere una eventuale modifica in caso di errore. Ci dovremo trovare davanti ad una schermata simile nel nostro caso :
Selezionare il comando Edit Machine settings before completion Premere il tasto Finish per completare l'operazione. Ora la macchina stata creata con successo , ma avendo precedentemente cliccato su edit machine settings before completion , si aprir una nuova finestra su cui settare alcuni parametri avanzati : nel nostro caso ci interesseremo solo del Driver di Rete , cliccheremo su Newtwork Adapter , selezioniamo rete192 dal men a tendina sotto la voce Network Connection [Si potrebbero modificare altri parametri come CPU ,RAM , Video , ecc... , ma nel nostro caso le impostazioni di default vanno nuovamente bene]
Un occhio di riguardo al settaggio della RAM che dovr essere settato almeno a 512Mb Cliccare su Ok , e avremo finito le operazioni di creazione della VM
Per monitorare l'avanzamento della procedura di installazione necessario spostarsi sulla scheda "console" di Vsphere.
Inizialmente verr visualizzato il messaggio "Operating system not found"; per ovviare a questo problema necessario inserire un ISO del sistema operativo da installare.
Clicchiamo quindi sull'icona "Connect/Disconnect cd/dvd devices" posizionato sulla barra degli strumenti in alto e successivamente sar necessario selezionare il supporto da cui installare il s.o. dalla directory "datastore" contenente le immagini ISO del So Confermeremo quindi l'immagine selezionando "Connect ISO image on datastore".
In "select a language" sar necessario selezionare la lingua per l'installazione del sistema. Noi proseguiremo selezionando nuovamente English
Proseguendo sar necessario selezionare la propria locazione geografica, quindi nel nostro caso "Other">"Europe"->"Italy".
Nella scheda "Configure locals" selezionare "United States"->EN_US UTF-8 il prossimo passo rchiesto la configurazione della tastiera. Il sistema cercher di identificare automaticamente il layout tramite la digitazione di alcuni comandi.
Una volta rilevato l'hw apparir la scheda "Configure the network" dove alla richiesta di un "hostname" abbiamo assegnato, nel nostro caso, "try2deploy"
Succesivamente apparir la schermata "Setup user and password" dove verr creato un account utilizzato al posto dell'account "root" per attivit non amministrative. Nel nostro caso useremo come username e fullname "t2d-admin". Selezionare, quindi, "Continue" e digitare una password per l'utente appena creato.
Nella scheda successiva verr proposto un fuso orario di default basato sulla propria locazione geografica selezionata precedentemente, se corretta proseguire cliccando <Yes>
In "Partition disks" come metodo di partizionamento selezioniamo "Guided-use entire disk". In questo modo verr usato l'intero disco da 8 gb come unica partizione.
Alla scheda successiva selezioniamo il disco (l'unico disponibile) SCSI3 (0,00) (sda) - 8.6 GB VMWare Virtual disk.
nella scheda "Configure the package manager" non sar necessario configurare un proxy, quindi proseguiamo premendo <Continue>
in "Configuring tasksel" viene richiesta la modalit con cui effettuare gli aggiornamenti; essendo un server non vogliamo che nessun aggiornamento venga fatto in automatico per avere una maggiore "reliability", quindi selezioniamo <No autuomatic updates>
In "Software selection" avremmo potuto installare direttamente il package "LAMP server" in modo automatico ma preferiamo succesivamente in modo manuale. Selezioniamo quindi "manual package selection"
Nella schermata successiva viene richiesto di installare in automatico "the grub bootloader" premendo <Yes>
Modifichiamo la configurazione del file /etc/apache2/sites-available/default per configurare il dominio. La prima cosa da cambiare la direttiva DocumentRoot (che dovr contenere il path della nostra applicazione) DocumentRoot /home/t2d-admin/railsapp/demo_app/public
Bisogna anche abilitare il modulo mod_rewrite per Apache; per fare ci digitiamo il seguente comando da terminale: sudo a2enmod rewrite
Come ultima cosa dovremo modificare gli owners delle directory /var/www/rails/public e /var/www/rails/tmp in base all'utente utilizzato per eseguire il processo di Apache:Web Servers 200. sudo chown -R www-data:www-data /home/t2d-admin/railsapp/demo_app/public sudo chown -R www-data:www-data /home/t2d-admin/railsapp/demo_app/tmp
Ora dovremo riavviare il server apache2 per rendere effettive le modifiche apportate sudo etc/init.d/apache2 reload
oppure
sudo service apache2 reload
Ora potremo cominciare l'installazione di Ruby 2.0.0 vera e propria rvm install 2.0.0
Dopo aver installato Ruby , dovremo installare altri software utilizzati per avviare applicazioni rails , questo generalmente si svolge installando le Gems che sono dei packages di codice ruby Per gestire questi pacchetti necessario installare il package manager RubyGems , gi presente nel pacchetto rvm , che per aggiorneremo con il comando gem update system 1.8.24
Dovremo implementare anche la gemma execjs che ci permeter di eseguire codice javascript tramite ruby sudo gem install execjs
L'ambiente ora pronto, ma quando si creer una nuova applicazione sar necessario qualche piccolo accorgimento per collegare l'applicazione al database mysql. N.B: Una volta che Mysql installato e la nostra app creata, dobbiamo comunicare a quest' ultima di usare il database mysql con relativa password (e non sqlite3 che impostato di default) , modifichiamo quindi il file di configurazione database.yml nella cartella config/ della nostra applicazione demo_app appena creata impostando username e password del database mysql
Dal client ora possibile creare nuove applicazioni rails con il comando rails new [nomeapp] all'interno di una cartella destinata al progetto rails
TEST SISTEMA
Ora simuleremo lo sviluppo dell'applicazione da parte dei developers dell'azienda che succesivamente dovranno trasferire i files sul server
4.1
Questo avvier un server WEBrick sulla porta 3000 , per verificare che sia tutto funzionante apriamo il browser e digitiamo localhost:3000 Ora dovremo eliminare il file index.html nella cartella public di demo_app , come consigliato dalla
schermata d'introduzione, successivamente impostiamo come gestore di controllo della landingpage il controller user#index modificando il file config/routes.rb , aggiungendo il comando root :to => 'users#index' Dopo la modifica , riavviando il server , visualizzeremo la nostra applicazione funzionante in locale
4.2
Una volta creata un'applicazione gli sviluppatori devono avere la possibilit di trasferire la propria applicazione sul server aziendale con facilit. Potranno quindi usare il comando da terminale scp -P 2222 -r apprails/demo_app t2d-admin@192.168.1.55: /home/t2d-admin/railsapp dove : scp sta per copia sicura tramite ssh -P 2222 per connettersi alla porta 2222 -r sta per recursive e serve per copiare tutto il contenuto di una directory -apprails/demo_app la direcotry da copiare dal client al server -t2d-admin@192.168.1.55 il server -/home/t2d-admin/railsapp la cartella di destinazione nel server
5) RISULTATI OTTENUTI
Dopo aver introdotto brevemente i servizi offerti , creato una guida semplice per l'installazione delle componenti di base e della macchina virtuale , ed effettuato dei test con successo , il server per l'azienda funzionante. Abbiamo quindi realizzato un sistema client-server , dove pi client possono accedere tramite SSH per scrivere, caricare, e far eseguire programmi scritti in Ruby on Rails. La connessione eseguita tramite protocollo SSH prevede un metodo di crittografia per lo scambio delle informazioni e l'autenticazione del server al fine di evitare minacce. Gli utenti che accedono al server sono memorizzati all'interno di una database memorizzato nello stesso. Abbiamo risicontrato particolari difficolt nella configurazione del client , in quanto stato spesso necessario installare pacchetti aggiuntivi e librerie mancanti per far funzionare i servizi al meglio, inoltre le macchine del nostro laboratorio non sempre perfettamente funzionanti ci hanno costretto a reperire le versioni migliori e compatibili , per cui stato necessario fare test anche sulle nostre macchine personali. Dunque necessario un lavoro molto accurato di ricerca e consultazione di diverse guide per trovare sempre la procedura di configurazione pi ottimale e funzionante d'applicare. Per rendere il tutto ancora pi comprensibile abbiamo adottato una politica di spiegazioni accompagnate da immagini e stili che aiutano l'utente nella comprensione dei vari passi del nostro tutorial. Fondamentalmente gli obbiettivi che ci eravamo prefissare sono stati rispettati praticamente tutti !
Try2Deploy Staff
6) GLOSSARIO
Apache = il nome dato alla piattaforma server Web modulare pi diffusa. Apache un software che realizza le
funzioni di trasporto delle informazioni, di internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy.
Boot Loader = il programma che, nella fase di avvio (boot) del computer, carica il kernel del sistema operativo
dalla memoria secondaria alla memoria primaria, permettendone l'esecuzione da parte del processore e il conseguente avvio del sistema
Client = si indica una componente che accede ai servizi o alle risorse di un'altra componente detta server. In questo
contesto si pu quindi parlare di client riferendosi all'hardware oppure al software.
Framework = una struttura di supporto su cui un software pu essere organizzato e progettato. Alla base di un
framework c' sempre una serie di librerie di codice utilizzabili con uno o pi linguaggi di programmazione, spesso corredate da una serie di strumenti di supporto allo sviluppo del software, come ad esempio un IDE, un debugger, o altri strumenti ideati per aumentare la velocit di sviluppo del prodotto finito.
Indirizzo Ip = un'etichetta numerica che identifica univocamente un dispositivo (host) collegato a una rete
informatica che utilizza l'Internet Protocol come protocollo di comunicazione. Un indirizzo IP assolve essenzialmente a due funzioni principali: identificare un dispositivo sulla rete e di conseguenza fornirne il percorso per la sua raggiungibilit da un altro terminale o dispositivo di rete in una comunicazione dati a pacchetto.
.Iso = una estensione utilizzata generalmente per immagini ISO, cio un file che contiene l'intero contenuto di un disco ottico (Cd o DVD) che pu essere usato direttamente (tramite software di emulazione) oppure inciso su un
supporto fisico tramite il processo di masterizzazione.
Macchina Virtuale (VM) = indica un software che, attraverso un processo di virtualizzazione, crea un ambiente
virtuale che emula il comportamento di una macchina fisica ed in cui alcune applicazioni possono essere eseguite come se interagissero con tale macchina.
MySql = un Relational database management system (RDBMS), composto da un client con interfacciaa riga di
comando e un server
Partizione Disco = indica una suddivisione logica di un'unit di memorizzazione fisica (per esempio un disco
rigido). Le singole unit logiche vengono viste dal sistema operativo come unit separate e possono essere gestite in modo indipendente. Su ogni disco
Root = il nome utente predefinito dell'amministratore di sistema. Spesso vengono usati come sinonimi
amministratore,super utente o superuser. L'utente root colui in grado di compiere operazioni non consentite agli utenti standard.
Ruby on Rails = un framework open source per applicazioni web scritto in Ruby . I suoi obiettivi sono la
semplicit e la possibilit di sviluppare applicazioni di concreto interesse con meno codice rispetto ad altri framework. Il tutto con necessit di configurazione minimale.
RubyGems = il formato dei pacchetti e il canale di distribuzione ufficiale per librerie ed applicazioni Ruby.
SSH = (Secure Shell,shell sicura) un protocollo di rete che permette di stabilire una sessione remota cifrata tramite
interfaccia a riga di comando con un altro host di una rete informatica.
Sudo = (abbreviazione di super user do) un programma per i sistemi operativi che permette di eseguire altri
programmi assumendo l'identit (e di conseguenza anche i privilegi) di altri utenti.
Webrick = una libreria di Ruby che fornisce servizi server Web HTTP semplici. Il server fornisce HTTP, HTTPS
con autenticazione, configurazione di Servlet con codice Ruby, e altre caratteristiche.
Riferimenti Sitografici
www.it.wikipedia.org http://www.ubuntu-it.org/ https://help.ubuntu.com/12.04/serverguide/serverguide.pdf