Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare uno stack LAMP in una macchina virtuale su Azure

Link copiato negli appunti

Azure, il servizio Cloud di Microsoft, consente la virtualizzazione, cioè la creazione di Macchine Virtuali che potranno essere gestite attraverso sistemi operativi differenti. Sarà possibile creare Macchine Virtuali basate sia su Windows che su Linux, a seconda delle esigenze legate al proprio progetto; nel caso specifico di questa parte della nostra trattazione, verrà presentata la procedure necessaria per la generazione di un classico ambiente LAMP, cioè di una configurazione basata su una distribuzione Linux, il Web server Apache e il Database engine MySQL per la realizzazione di applicazioni tramite linguaggio server side PHP.

Creazione di una Macchina Virtuale Linux

Il primo passaggio da affrontare per disporre di un ambiente LAMP in Azure sarà quello di dotarsi di una Macchina Virtuale basata su una distro del Pinguino; a questo scopo, una volta avuto accesso al Portale che fornisce l'interfaccia per la gestione dei servizi relativi al proprio account Azure, si dovrà clickare sulla voce "Macchine Virtuali" presente nella barra laterale sinistra del servizio:

Figura 1. Gestione delle Macchine Virtuali da Portal

Gestione delle Macchine Virtuali da Portal

Da qui, il collegamento denominato "Crea macchina virtuale" permetterà di accedere a due diverse opzioni: "Creazione rapida" e "Da raccolta".

Figura 2. Opzioni per la creazione di Macchine Virtuali

Opzioni per la creazione di Macchine Virtuali

La prima opzione consentirà di dotarsi in breve tempo di una macchina per poi configurarla successivamente, la seconda permetterà invece di impostare da subito le caratteristiche da associare ad essa in virtualizzazione.

Nel caso in cui si scelga l'opzione relativa alla creazione rapida, verrà richiesta la compilazione di un form i cui campi dovranno essere completati specificando:

  • un nome DNS: cioè l'URL che verrà risolta per l'accesso alla Macchina Virtuale (ad esempio "html.cloudapp.net");
  • un'immagine: cioè l'immagine ISO della distribuzione desiderata che potrà essere scelta tra alcune delle ultime release di Ubuntu, OpenSuse, SUSE Enterprise Server e CentOS;
  • la dimensione dello spazio disco da destinare alla Macchina Virtuale;
  • la password per l'accesso alla Macchina (che dovrà essere immediatamente confermata);
  • il percorso, cioè l'area geografica di riferimento per il sistema operativo virtualizzato.
Figura 3. Creazione rapida di una Macchina Virtuale
Creazione rapida di una Macchina Virtuale

Una volta completato il modulo richiesto, si potranno confermare i parametri definiti cliccando su nuovamente sulla voce "Crea Macchina Virtuale"; l'esito delle operazioni effettuate diventerà disponibile nell'elenco delle macchine virtuali presente su Portal.

Figura 4. elenco delle Macchine Virtuali disponibili

elenco delle Macchine Virtuali disponibili

Nel caso in cui si preferisse invece utilizzare l'opzione di creazione "Da raccolta", il sistema metterà a disposizione innanzitutto un'interfaccia visuale attraverso la quale selezionare il sistema operativo da associare alla Macchina Virtuale, le scelte effettuabili saranno comunque le medesime dell'opzione rapida:

Figura 5. Selezione del sistema operativo da virtualizzare

Selezione del sistema operativo da virtualizzare

Fatto questo, si potrà compilare un modulo che permetterà di selezionare la data relativa al rilascio dell'immagine di riferimento per il sistema operativo desiderato e, subito dopo, di scegliere un nome per la Macchina Virtuale e un nome utente per identificare l'utilizzatore della macchina stessa.

Figura 6. Opzioni per la configurazione della Macchina Virtuale

Opzioni per la configurazione della Macchina Virtuale

Opzionalmente, si potrà caricare una chiave SSH (Secure SHell) per l'autenticazione tramite upload, in questo modo si disporrà di una a coppia di chiavi pubblica/privata per l'accesso sicuro alla Macchina Virtuale. Azure consentirà di caricare un certificato di tipo X.509 (i formati accettati sono cer o pem) che la macchina caricherà automaticamente nella Macchina Virtuale; si potrà così accedere ad essa tramite chiave privata attraverso un qualsiasi client SSH come per esempio Putty.

Proseguendo, si dovrà scegliere se creare una Macchina Virtuale autonoma o effettuare una connessione ad una Macchina Virtuale esistente ai fini del bilanciamento del traffico; l'utilizzatore potrà poi definire un nuovo account per l'archiviazione o sceglierne uno già disponibile nonché l'area geografica o rete virtuale di riferimento per la macchina.

Figura 7. Selezione della tipologia di Macchina Virtuale

Selezione della tipologia di Macchina Virtuale

L'ultimo passaggio consentirà di definire un set di disponibilità attraverso un nome scelto arbitrariamente dall'utente, si tratta in pratica di un gruppo di Macchine Virtuali che verranno distribuite fra vari domini di errore e di aggiornamento; tali set svolgeranno il compito di garantire che il funzionamento di una specifica applicazione non venga influenzato da singoli punti di errore con conseguenti vantaggi per la scalabilità.

Figura 8. Definizione di un Set di Disponibilità

Definizione di un Set di Disponibilità

Portata a termine anche l'ultima operazione richiesta, la Macchina Virtuale eventualmente creata tramite l'opzione "Da raccolta" sarà disponibile nell'elenco accessibile dall'interfaccia di gestione della piattaforma cloud di Redmond.

Figura 9. Elenco delle Macchine Virtuali disponibili

Elenco delle Macchine Virtuali disponibili

Successivamente si potranno creare ulteriori Macchine Virtuali ognuna delle quali dedicata a progetti specifici, ma tutte saranno amministrabili attraverso un'interfaccia centralizzata.

Connessione tramite client SSH

Cliccando su una delle Macchine Virtuali precedentemente create, si potrà accedere alla relativa Dashboard, l'area di gestione dedicata ad essa. Qui, in corrispondenza della colonna di destra della pagina ("Quick glance"), sarà disponibile un'informazione denominata "Dettagli su SSH". Si immagini per esempio di aver generato una Macchina Virtuale denominata "html" per la quale l'informazione disponibile in tale voce potrebbe essere "elioxhtml.cloudapp.net : 54128", in questo caso, la prima parte della stringa sarà l'Host name per il collegamento via Secure SHell e la seconda il numero della porta di riferimento.

Per cui, aprendo un client SSH come per esempio Putty, si potrà accedere alla Shell utilizzando tali dati, esattamente come rappresentato nell'immagine seguente:

Figura 10. Connessione alla Macchina Virtuale con un client SSH
Connessione alla Macchina Virtuale con un client SSH

Fatto questo ci si potrà loggare con il nome utente e la password scelti in sede di configurazione della Macchina Virtuale

Figura 11. Autenticazione tramite Putty
Autenticazione tramite Putty

Una volta superata la procedura per l'autenticazione, si potrà dialogare con la propria Macchina Virtuale Linux da Terminale, analogamente a come accadrebbe in una qualsiasi installazione locale.

Configurazione dell'ambiente di sviluppo

Disponendo di una Macchina Virtuale basata sul Kernel Linux (la distribuzione Ubuntu 12.10 nell'esempio proposto), si potrà procedere nella strada verso la realizzazione di un ambiente LAMP effettuando innanzitutto l'installazione del Web server Apache; per fare ciò sarà possibile lanciare la seguente istruzione da riga di comando:

eliox@html:~$ apt-get install apache2

Se tutto dovesse andare per il meglio, cioè se il sistema non dovesse inviare delle notifiche di errore, si potrà procedere con il primo riavvio del Web server tramite il comando:

eliox@html:~$ sudo /etc/init.d/apache2 restart

Si potrà quindi procedere con l'installazione del Database engine desiderato, nel caso specifico MySQL, lanciando l'istruzione:

eliox@html:~$ apt-get install mysql-server

La procedura di setup procederà autonomamente fino alla richiesta della password da associare all'utente di Root, cioè quello che possiede tutti i privilegi di accesso per la gestione dei database:

Figura 12. Scelta della password di Root per MySQL
Scelta della password di Root per MySQL

Una volta confermata la password scelta, l'installazione continuerà automaticamente fino al completamento e si potrà procedere alla fase necessaria per l'integrazione dell'ambiente PHP nel sistema; in questo caso, l'istruzione da lanciare sarà più articolata in quanto insieme al package del linguaggio sarà opportuno installare anche alcune librerie a corredo:

eliox@html:~$ apt-get install php5 php5-mysql libapache2-mod-auth-mysql libapache2-mod-php5

Nel caso specifico, le estensioni richieste attraverso il gestore APT saranno (oltre a PHP), anche le librerie per l'interazione con il Database engine e il necessario modulo per il Web server, naturalmente, sarà sempre possibile integrare ulteriori estensioni in seguito a seconda delle funzionalità desiderate.

Si potrà ora procedere con un rapido riavvio di Apache per il completamento delle operazioni:

eliox@html:~$ sudo service apache2 restart

Nell'esecuzione delle procedure che comportano il riavvio del Web server, potrebbe capitare di ricevere una notifica del tipo:

"apache2: Could not reliably determine the server's fully qualified domain name, using [indirizzo IP] for ServerName

ciò non influirà sul corretto funzionamento dell'ambiente LAMP, ma, nel caso in cui si voglia eliminare il problema, bisognerà editare il file di configurazione di Apache ("apache2.conf") utilizzando il seguente comando:

eliox@html:~$ sudo nano /etc/apache2/apache2.conf

L'editor testuale "nano", disponibile di default in Ubuntu, aprirà il file; all'interno di esso e senza modificare le altre direttive disponibili se non necessario, si dovrà digitare la seguente istruzione:

ServerName localhost

Fatto questo si potrà salvare la modifica effettuata e lanciare nuovamente il comando per il riavvio del Web server; la segnalazione precedentemente indicata non dovrebbe più ripresentarsi.

Creazione di un Endpoint

Una Machina Virtuale generata tramite Azure è in grado di entrare in comunicazione automaticamente con le altre macchine presenti all'interno dello stesso cloud o network virtuale attraverso un apposito canale privato.

Ma nel caso in cui si desideri estendere la comunicazione ad altre risorse sarà necessario creare uno specifico Endpoint, cioè un'interfaccia per la comunicazione, esso accetterà connessioni da protocollo TCP (via HTTP o HTTPS) o UDP.

Per definire un nuovo Endpoint bisognerà selezionare innanzitutto la Macchina Virtuale da associare ad esso per poi clickare sulla voce di menu "Endpoint" e successivamente su "Aggiungi Endpoint".

Figura 13. Menu per la generazione degli Endpoint

Menu per la generazione degli Endpoint

Verrà così visualizzato un form intitolato "Aggiungi un endpoint a una macchina virtuale" e diviso in più parti, la prima richiederà all'utilizzatore se desidera semplicemente creare un Endpoint il cui traffico in arrivo verrà inviato alla Macchina Virtuale oppure se preferisce bilanciare il carico del traffico in un Endpoint precedentemente creato (se disponibile).

Figura 14. Aggiunta di un Endpoint
Aggiunta di un Endpoint

La parte successiva del form riguarderà i parametri da associare all'Endpoint, per cui sarà necessario scegliere un nome con il quale identificarlo, un protocollo di comunicazione (TCP o UDP), una porta pubblica e una porta privata per le comunicazioni.

Per quanto riguarda gli ultimi due parametri, specificando per entrambi la porta "80" si renderà possibile le connessioni alla macchina dall'esterno come per esempio le chiamate provenienti da client attraverso browser Web.

Figura 15. Parametri per la definizione dell'endpoint
Parametri per la definizione dell'endpoint

Fatto questo, si potrà procedere con la conferma delle operazioni effettuate e l'Endpoint configurato sarà presente nell'interfaccia di gestione di Azure tra gli altri eventualmente disponibili per la Macchina Virtuale corrente.

Figura 16. Elenco degli Endpoint configurati

Elenco degli Endpoint configurati

Per testare il funzionamento dell'Endpoint basterà aprire un browser Internet e digitare nella barra degli indirizzi il dato DNS associato alla Macchina Virtuale (ad esempio "elioxhtml.cloudapp.net"), in caso di esito positivo dovrebbe essere visualizzata la Welcome Page del Web server Apache precedentemente installato:

Figura 17. Connessione da browser alla Macchina Virtuale
Connessione da browser alla Macchina Virtuale

Conclusioni

La creazione in Azure di uno stack LAMP per la creazione di un ambiente di sviluppo PHP/MySQL gestito tramite il Web server Apache, richiederà una procedura non particolarmente dissimile rispetto a quella che si dovrebbe affrontare in un terminale locale.

Nel caso del servizio Cloud di Microsoft, vi sarà però la possibilità di virtualizzare diverse distribuzioni di Linux in remoto e direttamente dal Web, utilizzando l'interfaccia Portal; si avrà quindi l'opportunità di adattare ogni Macchina Virtuale creata ai propri progetti.

Ti consigliamo anche