Installazione della piattaforma blog Ghost in Windows Server 2016 su Azure
2 January 2017 · Filed inUna piattaforma per il blog che mi aveva interessato molto prima di scoprire GitHub Pages è Ghost: mi era piaciuto in particolare il design minimale ma pulito dell’interfaccia utente.
Ho provato ad installarlo su una macchina virtuale in Azure con Windows Server 2016, per capire se fosse una operazione complicata: diciamo che con qualche accortezza e un suggerimento di google sono riuscito ad ottenere una base funzionante.
Anche se ho scelto di utilizzare GitHub Pages come base per i miei post, mi riprometto di utlizzare Ghost per un altro blog che vorrei curare, incentrato su Windows Server 2016 - Nano Server
..ma come si dice..questa è un’altra storia.
Vi illustro per chi fosse interessato i passi che ho seguito per l’installazione di Ghost nella configurazione accennata prima.
Setup Windows Server 2016 su Azure
-
Una volta connessi al portale di Azure andare sull’icona
Virtual machines
. -
Cliccare su
Add
. -
Nella schermata che appare, selezionare l’immagine che indica
Windows Server
. -
Scorrere la lista e selezionare
Windows Server 2016 Datacenter
. -
Nella schermata che appare cliccare su
Create
. -
Viene richiesto di inserire i dati di base per la creazione della virtual machine; i parametri da valorizzare sono
- Name - Nome che daremo alla virtual machine
- VM disk type - tipo di disco che vogliamo utilizzare tra HDD e SSD
- Username - nome utente dell’account che utilizzeremo per fare l’accesso alla virtual machine
- Password - password dell’account che utilizzeremo per fare l’accesso alla virtual machine
- Confirm password - stessa password inserita prima
- Subscription - si sceglie la sottoscrizione alla quale legare la virtual machine e i suoi costi
- Resource group - viene richiesto se crearne uno nuovo oppure utilizzarne uno creati in precedenza
-
Una volta inseriti questi dati per la crezione della vm, viene presentata una schermata nella quale vengono suggeriti 3 tipi di virtual machine da scegliere; se si è interessati ad una delle 3, basta cliccarci sopra e quindi cliccare su
Select
. -
Se invece si vuole scegliere un altro tipo di virtual machine, basta cliccare su
View All
, cercarla, selezionarla e cliccare suSelect
. -
Compare la schermata dove è possibile scegliere alcune caratteristiche, per esempio, dello storage, extension, etc..per ora lasciate tutto di default e cliccate su
OK
. -
A questo punto, vengono riepilogate le scelte fatte in precedenza: se è tutto come avete scelto basta cliccare su
OK
e Azure inizierà a creare la vostra virtual machine.
Setup di Node.js
-
Andare alla pagina Node.js Download e cliccare su
Windows Download
. -
Una volta scaricato l’installer, cliccare su
Next
per iniziare l’esecuzione. -
Come in tutti i programmi di installazione Windows, vi sarà richiesto in sequenza di
i. Accettare i termini di licenza del software.
ii. Scegliere la directory di installazione.
iii. Scegliere le componenti da installare (di default, tutte).
iv. Confermare cliccando sul tasto
Install
.v. Aspettare che il Node.js si installi.
vi. Completare l’installazione cliccando sul tasto
Finish
.
Installazione di Ghost
-
Andare alla pagina Ghost Download e cliccare su
Download Ghost
. -
Creare sul filesystem una directory
C:\Ghost
dove verrà estratto il contenuto del file zip scaricato dal sito nel passo precedente. -
Andare su
Start
, individuare la cartellaNode.js
e cliccare suNode.js command prompt
. -
Nella command prompt cambiare directory in modo da puntare quella di installazione di Ghost e lanciare il comando di installazione.
cd \Ghost npm install --production
-
L’installazione dura dai 5 ai 10 minuti.
Setup di Ghost
-
Avviare Ghost con il comando
npm Start
-
Nel browser basta digitare
http://127.0.0.1:2368/
per vedere la pagina iniziale generica del blog. -
Per il setup, cliccare su
http://127.0.0.1:2368/ghost
e in sequenzai. Cliccare su
Create Your Account
.ii. Inserire indirizzo mail, password per l’accesso all’interfaccia di amministrazione e titolo del blog.
iii. Inserire persone che partecipino alla gestione del blog (se non si vuole farlo in questo momento, cliccare su
I'll do this later, take me to my blog
). -
Appare l’interfaccia di amministrazione per la gestione del blog e la scrittura dei post.
Date uno sguardo adesso al blog cliccando sul link http://127.0.0.1:2368/
noterete che è cambiato il titolo del blog.
Per dare uno sguardo a come si presentano i post, cliccate su quello di esempio.
Per ora stiamo facendo tutto in un browser locale sulla macchina virtuale: e se volessimo vedere il nostro blog da qualsiasi altro device?
Ovviamente si può fare, facendo qualche configurazione lato Azure e una lato Node.js/Ghost.
Configurazione Azure
Per avere accesso al blog dall’esterno della macchina virtuale dobbiamo settare un nome dns
ed aprire una porta nel Security Group
al quale appartiene la macchina virtuale.
-
Nell’interfaccia di Azure, selezionare la macchina virtuale sulla quale abbiamo installato Ghost.
-
Andare in alto a sinistra e cliccare sull’icona che rappresenta i
Resource groups
. -
Cliccare sul
Resource group
che in fase di installazione della macchina virtuale le avevamo assegnato (nel nostro casoGhost
). -
Andare sulla voce che rappresenta il
Public IP address
(nel nostro casosvr-ghost-ip
) e cliccarci sopra. -
Cliccare sulla voce
Configuration
. -
In
DNS name label
inserire un nome che utilizzeremo per richiamare da browser il nostro blog (nel caso di esempio, il nome scelto ènanoserver4all
); una volta inserito il nome, se premete il tastoTAB
sulla tastiera verificate se il nome è univoco nel DNS Microsoft oppure se dovete cambiarlo. Se è tutto ok, salvate cliccando in alto suSave
. -
Andare a cliccare sulla voce che rappresenta il
Network security group
(nel nostro casosvr-ghost-nsg
). -
Cliccare su
Inbound security rules
. -
Nell’interfaccia che si apre cliccare su
Add
, configurando la regola con i seguenti parametri e premendoOK
alla fine della configurazione.- Name = default-allow-ghost-test
- Priority = 1010
- Source = Any
- Service = Custom
- Protocol = TCP
- Port range = 2368
- Action = Allow
-
La tabella delle regole inbound dovrebbe presentarsi dopo qualche istante in questo modo.
A questo punto avevo pensato di aver completato tutto: vado a fare una prova ed ottengo un errore di connessione rifiutata; all’inizio ho pensato che fosse il firewall di Windows a bloccare la comunicazione, ma anche disattivandolo il risultato era lo stesso.
Ho analizzato con Wireshark ma sinceramente non riuscivo a capire: ho pensato che nella comunicazione venissero passati i pacchetti contrassegnati con l’ip della rete interna su Azure e che quindi questi andasseto persi..ma non era neanche quello il problema.
Per farla breve, cercando su google ho trovato che nel file di configurazione di Ghost, config.js
, l’ip che viene puntato è sempre quello locale, 127.0.0.1
e quindi qualsiasi richiesta verso un altro indirizzo che non sia quello non viene presa in considerazione; per ovviare a questa situazione basta cambiare nella parte del file indicata come development
il parametro host
del server
, facendolo puntare a 0.0.0.0
.
host: 0.0.0.0,
Riavviando Ghost, che di defualt parte in modalità development
, collegandoci da un browser esterno alla macchina virtuale otteniamo il nostro blog.
Nel prossimo post vi mostrerò invece come caricare Ghost direttamente come sito su Azure, cosa che dovrebbe essere molto più veloce e immediata rispetto a quanto visto.
Tags: Previous Post: Introduzione a GitHub Pages come piattaforma per il blogging Next Post: Installazione della piattaforma di blog Ghost su Azure Web Apps