Installare Ubuntu 19.10 con webserver pronto all’uso [per esordienti assoluti]

Abbiamo già visto come installare Ubuntu 18.04.2 LTS e Ubuntu 16.04.2 LTS predisponendoli per fare da webserver. Oggi voglio ripetere la procedura con Ubuntu 19.10.

Prima di andare avanti vorrei far notare come questa non sia una versione LTS, ossia una distribuzione con supporto a lungo termine, quindi ne sconsiglio caldamente l’installazione per progetti di lunga portata.

Detto ciò proseguiamo come di consueto utilizzando VirtualBox ai fini di questa guida, benché la procedura sarebbe analoga per chiunque lo volesse installare su una macchina fisica.

Gli argomenti trattati saranno:

  1. Configurazione ed installazione Ubuntu Server 19.10
  2. Installazione e configurazione Apache
  3. Installazione e configurazione MySQL
  4. Installazione e configurazione PHP
  5. Installazione di phpMyAdmin
  6. Ulteriori configurazioni

1. Configurazione Ubuntu Server 19.10

Anzitutto andiamo sul sito ufficiale di Ubuntu e procuriamoci la ISO per l’installazione. Assicuriamoci di selezionare la versione server e poi premiamo download:

A questo punto andiamo a creare la nostra macchina virtual con VirtualBox. All’interno di VirtualBox premiamo su CTRL+N per avviare l’installazione di una nuova macchina.

Diamo un nome alla macchina e scegliamo eventualmente il percorso di installazione, come nell’immagine di sopra. Assicuriamoci anche che il tipo sia settato su Linux e la Versione su Ubuntu (64-bit). Premiamo su Successivo.

Selezioniamo la quantità di memoria da destinare alla macchina virtuale (1GB è più che sufficiente). Ancora Successivo.

Lasciamo l’opzione selezionata Crea subito un nuovo disco fisso virtuale per crearne uno nuovo e andiamo avanti.

Se non abbiamo esigenze specifiche lasciamo il tipo di disco su VDI e procediamo avanti.

Lasciamo l’allocazione del disco su Allocato dinamicamente. In questo modo il disco crescerà solo in presenza di file effettivi, occupando meno spazio sulla macchina ospite. Andiamo avanti.

Diamo un po’ di spazio ad Ubuntu, visto che comunque andrà ad occupare solo quello necessario, mettendo il disco su 20GB.

A questo punto nell’elenco delle nostre macchine virtuali vedremo comparire quella con Ubuntu.

Una volta selezionata spostiamoci in alto e clicchiamo sul tasto verde Avvia per farla partire.

Al primo avvio ci verrà chiesto se caricare una ISO per l’avvio della macchina virtuale. Clicchiamo sulla cartellina gialla e poi selezioniamo la ISO che abbiamo scaricato in precedenza, se abbiamo fatto tutto bene, prima di procedere avanti, vedremo una situazione simili alla seguente:

Aspettiamo che compaia la sezione della selezione della lingua. Tanto per cambiare manca l’italiano, perciò proseguirò in inglese (o per fare uno scherzo proseguo in croato!).

Premiamo INVIO. Ci potrebbe chiedere se vogliamo aggiornare l’installer, diciamo di sì premendo di nuovo INVIO.

Adesso ci verrà chiesto il layout della tastiera. Dal momento che sto usando una tastiera italiana dovrò impostare il layout su Italian, come nell’immagine in alto, altrimenti potrei avere problemi specialmente con i caratteri speciali. Per farlo mi sposto in alto con le frecce direzionali e seleziono il menu premendo SPAZIO. Una volta trovata la voce giusta premo nuovamente INVIO. Dopodiché posso tornare alla voce Done e premere INVIO per procedere.

Mi verrà chiesto di configurare la rete, posso premere nuovamente INVIO e andare avanti.

Sulle impostazioni del proxy, a meno di non essere a conoscenza di diversa configurazione, lascio tutto com’è e premo INVIO.

L’indirizzo del mirror per la repository lo posso lasciare tale e quale, premendo ancora INVIO.

Alla voce successiva seleziono la seconda opzione, quella di configurazione dell’intero disco con utilizzo di LVM. Per approfondimenti sull’argomento consiglio LVM, gestore logico dei volumi su Ubuntu [per pinguini alle prime armi]

Mi verrà chiesto quale disco utilizzare, avendone uno soltanto non ho molto da scegliere, in caso contrario potrei selezionare il disco sul quale intendo installare le partizioni principali del server.

A questo punto mi verrà proposto un riassunto di tutte le modifiche che saranno applicate al disco. Se non ho altre esigenze posso premere INVIO e procedere.

Comparirà un avviso che mi segnalerà che l’intero contenuto del disco adesso verrà cancellato e sostituito con la nuova installazione; mi sposto con le frecce direzionali su Continue e premo INVIO.

Adesso inseriamo il nostro nome, scegliamo un nome per il server e username e password, compilando i campi come di seguito.

Una volta compilati tutti i campi premiamo INVIO.

A questo punto ci viene chiesto se vogliamo installare anche il server OpenSSH, che ci permetterà di collegarci in SSH al nostro server. Premiamo la SPAZIO per selezionare l’opzione e poi premiamo INVIO. Prima di premere invio la configurazione dovrebbe apparire come la seguente.

Saltiamo la selezione di snaps per il server (ovvero configurazioni preconfezionate, come viene spiegato alle singole voci). Spostiamoci in basso e selezioniamo semplicemente Done e poi premiamo INVIO.

Se abbiamo fatto tutto bene comincerà un’installazione come la seguente:

Una volta terminata ci verrà chiesto di riavviare il sistema e rimuovere il supporto di installazione. Premiamo semplicemente INVIO.

Se ci dovessero essere problemi con l’unmounting del cdrom, e dovesse comparire una schermata come quella di seguito, sarà sufficiente premere INVIO un’altra volta per dire al sistema di procedere comunque (VirtualBox avrà già smontato l’ISO per conto suo probabilmente).

A questo punto ci si dovrebbe trovare di fronte ad una schermata simile alla seguente:

Faccio notare che continua a persistere il ridicolo problema delle ultimissime versioni di Ubuntu, per cui la schermata di login appare prima che sia terminato il processo di avvio, cosa che riempie la shell di output anche dopo l’apparizione del prompt di ingresso.

Per effettuare il login sarà sufficiente premere nuovamente INVIO e poi digitare il nome utente e la password che abbiamo creato in precedenza.

Adesso, prima di procedere, voglio configurare la scheda di rete di VirtualBox, in modo da poter utilizzare Putty per collegarmi alla macchina virtuale. Lo faccio principalmente per poter copiare ed incollare i comandi sul terminale, cosa non possibile dall’interfaccia di VirtualBox stesso.

Per spegnere il sistema operativo digitiamo quindi:

Una volta spenta la macchina virtuale torniamo sull’interfaccia di VirtualBox e andiamo su File > Preferenze (che possiamo aprire anche premendo CTRL+G)

Andiamo su Rete e clicchiamo sul piccolo pulsante della scheda con il più verde sulla destra che ci permetterà di creare una nuova Rete con NAT da far utilizzare alla nostra macchina virtuale.

Configuriamo la rete nel modo seguente:

Clicchiamo su Inoltro del porte e configuriamo le porte da inoltrare dalla scheda di rete virtuale sul nostro computer alla rete interna di VirtualBox.

Configuriamo l’inoltro delle seguenti porte:

 

Stiamo dando per scontato che la macchina virtuale si troverà all’indirizzo 10.0.2.4 della rete interna (che è tipicamente l’indirizzo predefinito che viene assegnato dal DHCP di VirtualBox).

Detto questo premiamo OK su tutte le finestre aperte e torniamo alla nostra macchina virtuale. Dopo averla selezionata premiamo il tasto Impostazioni (vicino a quello di Avvio).

Dalla schermata delle Impostazioni andiamo su Rete e selezioniamo Rete con Nat, scegliendo dal menu sottostante la Rete Ubuntu che abbiamo creato prima.

Fatto tutto questo premiamo OK e avviamo di nuovo la nostra macchina virtuale. Una volta che sarà ripartita apriamo Putty e digitiamo come indirizzo di connessione 192.168.56.1

Premiamo OK. Se abbiamo fatto tutto correttamente ci verrà chiesto di effettuare la connessione.

Apparirà una schermata che ci chiederà di copiare la chiave di crittografia. Premiamo .

Inseriamo le credenziali e siamo pronti a procedere oltre.

2. Installazione e configurazione Apache

Adesso procediamo con l’installazione di Apache. Aggiorniamo anzitutto tutti i riferimenti della repository digitando:

Dopodiché digitiamo:

Alla domanda se proseguire digitiamo Y e poi premiamo INVIO. Aspettiamo che l’installazione termini. Se tutto è andato bene aprendo l’indirizzo http://192.168.56.1/ dal nostro browser dovremmo vedere la schermata predefinita del webserver Apache nel modo seguente:

3. Installazione e configurazione MySQL

Adesso installiamo il Server MySQL per il database. Per farlo digitiamo:

Come al solito confermiamo l’installazione con Y e aspettiamo che sia terminata.

Una volta terminata l’installazione digitiamo:

Questo avvierà una procedura di configurazione del nostro database, durante la quale ci verranno richieste diverse cose. Alle varie domande rispondiamo rispettivamente:

Press y|Y for Yes, any other key for No: Y

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

(dove: STRONG Length >= 8, numeric, mixed case, special characters and dictionary file)

New password: 4y!7dz=6/%lF-4fes2=lkpl|E^DTL*  (questo è un esempio di password che possiamo mettere, questa password ha una qualità di 180bit e una lunghezza di 30 caratteri)

Se la passowrd è buona ci verrà detto qualcosa come:

Estimated strength of the password: 100

Proseguiamo:

Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Fatto questo il database è pronto per essere utilizzato.

L’utente predefinito del database sarà root e la password quella che abbiamo scelto prima.

4. Installazione e configurazione PHP

Adesso installiamo il PHP, aggiungendo la libreria per Apache e quella per il database MySQL.

Faccio notare che in questo modo verrà installato l’ultimo PHP disponibile, che nel mio caso specifico, come si può vedere anche dall’immagine di seguito, è il PHP 7.3.

Una volta installato il PHP verifichiamo che sotto Apache siano configurate le pagine predefinite come index.php per l’esecuzione. Digitiamo:

Se va tutto bene sotto la voce DirectoryIndex dovremmo trovare, tra gli altri file, anche index.php. Se così non fosse lo aggiungiamo come nell’immagine seguente:

Nel caso avessimo modificato il file salviamo il tutto premendo CTRL+O, altrimenti direttamente CTRL+X per uscire dall’editor.

Fatte tutte queste belle cose riavviamo Apache.

5. Installazione di phpMyAdmin

Per installare il phpMyAdmin utilizzeremo il composer, per cui installiamolo digitando:

Il composer è uno strumento per la gestione delle dipendenze e delle librerie del PHP, che ci permette di installare progetti in PHP come è per l’appunto il phpMyAdmin.

A questo punto installiamo il minimo indispensabile per usare il phpMyAdmin digitando:

Riavviamo Apache digitando come al solito:

Fatto tutto questo possiamo procedere con l’installazione vera e propria. Spostiamoci anzitutto dentro a /var/www:

Assegniamo il nostro utente alla cartella html (che è la cartella predefinita del nostro webserver raggiungibile dall’indirizzo di prima):

Entriamo dentro con:

A questo punto installiamo qui il nostro phpMyAdmin, che creerà una sua cartella alla quale assegneremo successivamente Apache come utente. In realtà la cartella del phpMyAdmin potrebbe essere creata a nostro piacimento in qualsiasi posizione, purché abbia un senso per noi. Tradizionalmente viene inserito sotto etc oppure share. Io l’ho inserito direttamente sotto www per una questione di ordine. (Qualora la si dovesse mettere altrove dovremmo ricordarci di aggiungere il percorso anche ai VirtualHost)

ATTENZIONE! composer non va lanciato come root/super user, quindi non va utilizzato sudo anteposto al commando. 

Aspettiamo con pazienza l’esito dell’installazione che potrebbe richiedere qualche minuto, soprattutto all’inizio quando non sembra succedere niente di che. Se tutto è andato bene vedremo un output come quello di seguito.

In caso di errore assicuriamoci di aver installato tutte le librerie per il PHP come di sopra e di aver riavviato Apache.

Prima di testare il phpMyAdmin così installato ripristiniamo sulla cartella html l’utente predefinito di Apache digitando:

A questo punto digitiamo nel browser http://192.168.56.1/phpmyadmin/

Se abbiamo fatto tutto bene dovremmo vedere qualcosa come questo:

Provando ad inserire root e la password creata in precedenza potremmo incorrere nel seguente errore:

Nessun problema. Torniamo sul terminale e digitiamo:

Inseriamo la password creata in precedenza per l’utente root. (per capirsi nel mio caso la password era 4y!7dz=6/%lF-4fes2=lkpl|E^DTL*)

Creiamo un utente apposito per gestire il database da phpMyAdmin. Per farlo eseguiamo la seguente sequenza di query:

L’utente così creato sarà:

username: admin

password: HGOqXovUhyZJ4}08}eg-lAiOM])}@lYt

Proviamo ad accedere con tali dati da http://192.168.56.1/phpmyadmin/

Nel caso dovesse apparire l’errore mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] eseguiamo i seguenti due comandi sul database.

Se è andato tutto bene possiamo riprovare ad accedere e vedremo una situazione simile a questa.

6. Ulteriori configurazioni

A questo punto abbiamo finito la configurazione principale e dovremmo fare ancora qualche implementazione, configurando cose come:

  1. Sistemare il Firewall
  2. Mettere in sicurezza Apache
  3. Configurare fail2ban ed altri eventuali servizi
  4. Aggiungere un VirtualHost al webserver
Vedi articolo

[mysql] Aumentare le performance del database MySQL

Questo esempio è sviluppato su un server Ubuntu con le seguenti caratteristiche:

32GB di RAM @2133 MHz, CPU Intel Xeon E3-1270v6 – quad core, 3,8GHz, 500GB disco SSD.

Le caratteristiche del server sono importanti, quanto il carico di lavoro che si intende sostenere per ottenere una giusta configurazione.

Prima di procedere oltre valutiamo anche lo stato iniziale del server ed eventualmente monitoriamo il carico di lavoro, per capire quanto margine abbiamo per le operazioni di calibrazione. A tale scopo ci saranno utili 2 programmi di Ubuntu.

Anzitutto usiamo htop per verificare l’uso di risorse della nostra macchina.

Se non dovessimo averlo installo eseguiamo:

Eseguendo htop da terminale dovremmo vedere una situazione simile a questa:

In questo caso possiamo notare che il server è scarico (in questo preciso momento).

Altro strumento che voglio utilizzare è mysqltuner. Questo ci permetterà di monitorare la situazione del server MySQL. Prima di lanciarlo è utile lasciare il server operativo per un tempo sufficiente (si parla di giorni o settimane, dipende dalla variabilità nell’utilizzo).

Se non disponiamo di mysqltuner installiamolo eseguendo:

Una volta eseguito, digitando semplicemente:

Vedremo un output con diverse statistiche e in fondo un elenco di raccomandazioni simile a questo:

A questo punto procediamo a modificare il file /etc/mysql/my.cnf impostando nuovi parametri (e poi provandoli).

Digitiamo dunque:

Andiamo ad impostare i seguenti parametri, di cui ne analizziamo alcuni:

innodb_buffer_pool_size

Questo parametro ci permette di impostare il pool del buffer. Il valore deve essere un multiplo del parametro innodb_buffer_pool_chunk_size moltiplicato per il parametro innodb_buffer_pool_instances. Il valore predefinito di innodb_buffer_pool_chunk_size è di 128MB, mentre innodb_buffer_pool_instances è impostato su 16.

Questo significa che un valore di 8GB per innodb_buffer_pool_size va bene, perché 8GB = 8192MB da cui 8192MB / ( 16 * 128MB ) = 4 (un numero intero).

Invece un valore di 15GB non andrebbe bene, perché 15GB = 15360MB da cui 15360MB / ( 16 * 128MB ) = 7,5 (un numero decimale).

query_cache_size

Il MySQL può tenere in cache le query già utilizzate, aumentando così notevolmente la velocità di esecuzione e le performance.

Anzitutto verifichiamo che la cache sia abilitata usando il commando:

Dopodiché possiamo impostare le seguenti variabili:

Le specifiche dimensioni dipendono dalla nostra disponibilità di RAM sul server.

max_connections

Questo parametro ci permette di stabilire il numero massimo di connessioni. Il valore predefinito è 150. Aumentando questo valore aumenterà il consumo di RAM.

Attenzione! Durante queste configurazioni assicuriamoci che la stima di memoria utilizzata da parte di mysqltuner non superi la massima memoria disponibile nel sistema, come in questo caso:

Entrambi i valori dovrebbero risultare OK, come nel seguente esempio:

Per fare una stima in anticipo sulle prestazioni possiamo usare il MySQL Calculator su questo indirizzo.

La precedente stima si ottiene sulla seguente configurazione di parametri:

Aumentando i valori naturalmente si aumenterà la quantità di risorse potenzialmente consumate dal database.

Una volta finite le modifiche al file my.cnf riavviamo il servizio MySQL digitando:

Come ultima operazione ottimizziamo il database, lanciando il seguente commando:

Se stiamo usando Plesk possiamo anche usare:

In questo modo la password dell’utente admin del database verrà prelevata dal file di configurazione di Plesk.

Fatto tutto questo monitoriamo il sistema e apportiamo eventuali correzioni.

Vedi articolo

[ubuntu] Creare cluster MySQL

Obiettivo: creare un cluster MySQL, ovvero un server MySQL distribuito, utilizzando 3 macchine con Ubuntu, 1 per il gestore del server e 2 per i nodi

Anche questa volta, come negli altri esempi, mi avvarrò di VirtualBox, per emulare il gruppo di server. Ovviamente la procedura è valida anche su macchina fisiche oppure utilizzando un altro tipo di macchine virtuali. La struttura che andremo a creare sarà la seguente:

1. Preparazione di Ubuntu su VirtualBox

Anzitutto scarichiamo ed installiamo VirtualBox dal sito ufficiale.

Quello che voglio creare, prima di cominciare con la configurazione del cluster, sono 3 macchine con sopra Ubuntu perfettamente identiche. Sottolineo il fatto che non sia necessario che siano identiche, ma solo che su tutte e tre sia configurato correttamente il MySQL.

Cominciamo configurando la prima macchina virtuale per metterci sopra Ubuntu.

Come parametri di configurazione, nella procedura guidata, scegliamo:

  • Versione: Ubuntu (64-bit)
  • Dimensione memoria: 1024MB
  • Disco virtuale: 10GB
  • Tipo di disco: VDI
  • Tipo allocazione: dinamica

Una volta creata la macchina virtuale facciamo partire ed inseriamo la ISO per l’installazione che abbiamo scaricato dal sito ufficiale di Ubuntu. Ricordo di scaricare la versione Ubuntu Server 64-bit.

Per questo esempio utilizzerò la versione 16.04.2 di Ubuntu Server.

Avviamo normalmente l’installazione, per chi non l’avesse mai fatto suggerisco di seguire la prima parte di: Installazione Ubuntu webserver pronto all’uso [per esordienti totali]

L’unica differenza è che non installeremo il server apache al momento in cui ci verrà richiesto.

Come nome del host mettiamo ubuntu-mysql-manager (si tratta comunque di un nome a piacere):

Ad un certo punto dell’installazione ci verrà proposto quanto segue:

Assicuriamoci di aver selezionato solamente le voci della figura precedente, per selezionarle muoviamoci con le frecce direzionali e spuntiamo le voci premendo SPAZIO. Con la tabulazione spostiamoci su Continua e premiamo INVIO dopo aver selezionato le voci correttamente.

Una volta completata l’installazione riavviamo la macchina virtuale ed entriamo con il nome utente che abbiamo creato.

A questo punto spegniamo la macchina virtuale digitando:

Prima di procedere vogliamo creare una rete NAT interna sulla quale testare le nostre macchine. Per farlo utilizziamo le impostazioni di virtual box andando su File ⇒ Preferenze (oppure premendo CTRL+G dal panello di controllo di virtual box). A questo punto spostiamoci su Rete nel modo seguente e scegliamo di aggiungere una nuova rete.

Una volta creata la nuova rete dovremmo vedere comparire una voce NatNetwork come nell’immagine seguente:

Una volta selezionata clicchiamo sul pulsante per modificarla ed impostiamola nel modo seguente:

Faccio notare che l’impostazione della rete è arbitraria e a nostra scelta, quella predefinita parte sulla configurazione 10.0.2.0/24 che ho modificato nella classica rete domestica col 192.168.0.0/24 a titolo di esercizio. Questo significa che avremo a disposizione 254 host dal 192.16.0.1 al 192.16.0.254.

Diamogli OK e andiamo nelle impostazioni della macchina virtuale mettendo nella configurazione di rete la rete appena creata, in maniera seguente:

Riavviamo la macchina virtuale e colleghiamoci in SSH effettuando l’inoltro delle porte.

Per farlo, una volta partita la macchina virtuale, digitiamo:

Il risultato dovrebbe essere qualcosa di simile a questo:

Nel mio caso noto che la macchina virtuale, di quello che diventerà il manager, si trova all’indirizzo 192.168.0.5 distribuito dal DHCP. Tornando su File ⇒ Preferenze andiamo sulla rete creata prima e apriamo le configurazioni, poi clicchiamo su Inoltro delle porte e aggiungiamo la seguente regola:

Diamo OK. Adesso possiamo collegarci in SSH dalla nostra macchina host (detto banalmente: dal nostro PC che ospita le macchine virtuali) usando l’indirizzo 192.168.56.1 porta 22.

Fatta questa bella impostazione possiamo passare al passaggio successivo.

2. Installazione MySQL sul primo Nodo

Anzitutto installiamo il cluster su tutti i nostri nodi, nello specifico lo installiamo sulla macchina appena creata che poi duplicheremo opportunamente. Per l’installazione possiamo seguire i passaggi indicati sul sito ufficiale, oppure scaricare dalla pagina ufficiale i file .deb necessari.

Io utilizzerò la repository APT, ma prima di cominciare installiamo le dipendenze necessarie al funzionamento del cluster:

A questo punto dobbiamo installare la MySQL APT Repository sul nostro sistema. Per farlo ci è sufficiente scaricare il file di installazione dal sito ufficiale andando qui. Nello specifico digitiamo:

Una volta scaricato il file procediamo all’installazione:

A questo punto ci verrà chiesto che cosa intendiamo configurare e scegliamo la voce MySQL Server & Cluster:

Ci verrà chiesta la versione che intendiamo installare e selezioniamo mysql-cluster-7.6:

A questo punto torniamo alla schermata precedente e selezioniamo OK:

A questo punto non ci rimane che installare il componente base per tutti i nodi digitando:

L’update ci serve per aggiornare la repository dopo le recenti modifiche, altrimenti è probabile che sia impossibile trovare mysql-cluster-community-server.

Ad un certo punto ci verrà chiesto di impostare una password per l’utente root del database, impostiamo una password e segniamocela da qualche parte. Ricordo che l’utente root non è quello del sistema, ma del database.

A questo punto abbiamo preparato un nodo.

Replicheremo questo nodo per altre due volte, designando un singolo nodo come manager del cluster.

3. Replica dei nodi

Per replicare i nodi possiamo decidere di creare un’immagine del nostro sistema che reinstalleremo a piacere, oppure, visto che stiamo usando VirtualBox di duplicare le macchine virtuali. Quindi spegniamo la nostra macchina e creiamone una copia.

Per farlo ci è sufficiente cliccare sulla macchina virtuale e selezionare Clona…

A questo punto ci verrà mostrata una schermata delle opzioni da configurare nel modo seguente:

Spuntiamo l’inizializzazione di un nuovo indirizzo MAC (visto che vogliamo usare le macchine insieme) e diamo un nome alla nuova macchina, nel mio caso Ubuntu MySQL Nodo 1.

Ripetiamo la medesima operazione per creare un Ubuntu MySQL Nodo 2.

A questo punto sistemiamo la nostra rete per poter accedere alle macchine virtuali. Per farlo assegniamo a tutte le macchine un indirizzo IP statico, modifichiamo opportunamente i nomi e configuriamo il file hosts in modo tale che possano vedersi le une con le altre. La configurazione finale sarà così:

Cominciamo con Ubuntu MySQL Manager.

Usando ifconfig verifichiamo che la nostra macchina si trovi all’indirizzo 192.168.0.5. Scopriamo il nostro gateway digitando:

Il risultato dovrebbe assomigliare a qualcosa di simile:

Il gateway è quindi 192.168.0.1, ricordiamoci che la nostra rete è stata impostata con netmask /24 ovvero 255.255.255.0

Impostiamo quindi tale indirizzo come indirizzo statico, usando le informazioni che abbiamo raccolto.

Modifichiamo il file interfaces affinché abbia il seguente contenuto:

Faccio notare che per il DNS utilizziamo il DNS di Google all’indirizzo 8.8.8.8.

A questo punto riavviamo la scheda di rete digitando:

Faccio notare che la nostra interfaccia di rete è enp0s3, mentre in una classica configurazione fisica probabilmente sarebbe eth1.

Fatto questo modifichiamo il file hosts inserendo gli host stabiliti all’inizio:

Il file alla fine dovrebbe risultare qualcosa di simile a questo:

Salviamo il tutto, spegniamo la macchina (onde evitare conflitti, dal momento che sono tutte duplicate) e spostiamoci sul prossimo nodo.

Configurazione Ubuntu MySQL Nodo 1

Prima di procedere soffermiamoci un attimo a configurare le porte per l’inoltro sulla scheda di virtual box, ottenendo una configurazione simile a questa:

In questo modo collegandoci su porte diverse dell’interfaccia esterna potremo accedere, mediante SSH, alle specifiche macchine virtuali.

Una volta avviato il secondo nodo è molto probabile, essendo la prima macchina sull’indirizzo 192.168.0.5, che questo si trovi sull’indirizzo 192.168.0.6. Se facciamo tutto in questo ordine ci risparmiamo qualche piccolo lavoretto extra nella riassegnazione degli indirizzi. Colleghiamoci quindi al nostro nodo 1 (se usate Putty potete collegarvi al 192.168.56.1:23) e modifichiamo la scheda di rete con l’indirizzo statico, come abbiamo fatto prima.

Il risultato sarà simile a questo:

Modifichiamo il file hosts:

Aggiungiamo le righe di prima:

E notiamo che abbiamo ancora ubuntu-mysql-manager come riferimento interno. Rinominiamolo in ubuntu-mysql-nodo1. Il file hosts alla fine risulterà così:

Infine modifichiamo il hostname digitando:

Anche qui dentro sostituiamo il nome di poco fa con quello nuovo, ovvero ubuntu-mysql-nodo1.

Fatto tutto questo spegniamo la macchina e passiamo al secondo nodo.

Configurazione Ubuntu MySQL Nodo 2

A questo punto dovrebbe essere tutto semplice, basta replicare quanto fatto per il nodo 1.

Il file /etc/network/interfaces avrà quindi il seguente aspetto:

Il file /etc/hosts apparirà così:

Mentre il file /etc/hostname conterrà una sola riga:

A questo punto anche il secondo nodo è pronto e possiamo spegnere la macchina.

4. Installazione del MySQL Cluster Manager

Adesso riavviamo il nostro cluster manager e avviamo l’installazione del software manager:

Una volta installato andiamo a creare la seguente cartella nella quale metteremo il file di configurazione:

Creiamo dentro un file chiamato config.ini:

A questo punto procediamo alla configurazione nel modo seguente:

Ho inserito i commenti ai singoli parametri nel file stesso in modo da rendere più agevole la consultazione. I parametri in cima non sono di per se necessari, ma li mettiamo a scopo didattico per tenere presente che eventualmente li potremo modificare in base alle nostre esigenze.

Per finire installiamo il mysql-server, dal momento che abbiamo detto che il daemon del MySQL si troverà sulla medesima macchina del menager. Digitiamo:

Fatto.

5. Configurazione dei nodi

Adesso avviamo i nostri due nodi e configuriamoli nella maniera seguente (io qui configurerò il primo nodo, la stessa cosa va fatta sul secondo).

Anzitutto installiamo il programma per ciascun nodo digitando:

Quindi digitiamo:

Dentro al file scriviamo:

In questo modo collegheremo il nodo al cluster, demandando la gestione del servizio al cluster medesimo.

6. Avvio del cluster

Ora che abbiamo configurato sia il manager che gli altri nodi possiamo procedere all’avvio del nostro cluster.

Spostiamoci sul manager e digitiamo:

Questo avvierà il cluster sul manager importando il file di configurazione. Affinché si avvii automaticamente ad ogni riavvio modifichiamo il file di avvio nel seguente modo.

Anzitutto abilitiamo i servizi locali digitando:

E modifichiamo il file:

Inserendo, prima di exit 0, il precedente comando (questo sarà l’aspetto complessivo del file):

Adesso spostiamoci sui singoli nodi e per ciascun nodo digitiamo:

In questo modo creeremo la cartella per l’allocazione dei dati necessaria al nodo (con il comando -p diciamo ad mkdir di creare l’intero percorso).

Dopodiché avviamo il nodo digitando:

Affinché anche tutto ciò parta all’avvio digitiamo:

E poi ancora:

Modifichiamo il file affinché appaia in questo modo:

Riavviamo il tutto.

7. Verifichiamo il funzionamento del cluster

A questo punto possiamo verificare il funzionamento del cluster spostandoci sul nostro manager e digitando:

Entrando nel terminale del ndb_ngm digitiamo:

Quello che dovremmo vedere sarà qualcosa di simile a questo:

Se tutto è andato bene questo sarà il risultato. Qualora uno dei nodi non fosse raggiungibile, oppure non fosse possibile collegarsi al daemon ci verrebbe segnalato esplicitamente.

Per uscire dal manager è sufficiente digitare exit e premere invio.

Come ultima operazione proviamo a creare una tabella sul nostro cluster.

8. Creiamo una tabella sul cluster

Accediamo anzitutto al mysql digitando nel manager:

Questo ci permetterà di accedere con l’utente root del database e ci verrà chiesta la password a schermo.

Anche qui possiamo fare una seconda verifica di quello che ci è già noto:

Infatti se tutto è andato bene ci verrà dato il benvenuto con la versione del MySQL Cluster Community Server.

A questo punto creiamo il nostro database di prova digitando:

Inseriamo nel database cluster_test la nostra tabella di prova:

ATTENZIONE! E’ molto importante che l’engine sia impostato su ndbcluster, affinché la tabella lavori e sia distribuita sul cluster.

Inseriamo dei valori di prova:

Adesso proviamo ad interrogare la tabella digitando:

Il risultato dovrebbe essere questo:

Fatto, abbiamo il nostro cluster perfettamente funzionante e pronto all’uso.

Vedi articolo