WeDeploy: Come installare Liferay 7 Community Edition GA4

Se sei arrivato fino a qui, immagino che tu sappia i fondamenti di WeDeploy e quello che potresti farci. Molto bene. Pensiamo subito a come poter raggiungere il nostro obiettivo: Installare Liferay 7 come servizio su WeDeploy.

1. WeDeploy: la scelta del metodo di deploy

L’operazione di deploy su WeDeploy è davvero semplice e immediata. WeDeploy supporta diversi metodi di deploy, quello utilizzato da noi è basato su Docker. Per quest’occasione ho preparato un’immagine docker che utilizzeremo per installare la nostra istanza di Liferay 7 CE GA4 su WeDeploy.

WeDeploy offre OOTB l’opportunità d’installare un’istanza di Liferay DXP in versione trial della durata di 15 giorni.

2. Cosa serve

Prima di proseguire oltre, se non disponete di un account su WeDeploy, ne consiglio la creazione Get Started, It’s Free. La creazione del vostro account è ancora più immediata nel caso voi abbiate un account GitHub o Google.

La nostra interazione con WeDeploy avverrà esclusivamente utilizzando il tool Command Line (CLI) che possiamo utilizzare per eseguire i seguenti task:

  • Deploying
  • Checking logs
  • Setting environment variables
  • Managing custom domains

La CLI (Command Line Interface) di WeDeploy è disponibile sia per i sistemi Unix-like come macOS o Linux sia per i sistemi Windows. Tutti i dettagli sulla procedura di installazione sono indicati nella sezione Download the CLI della documentazione di WeDeploy.

L’ultima versione della CLI rilasciata è la 1.1.4. Potete verificare la vostra versione della CLI tramite il comando we version.

3. Preparazione al deploy di Liferay

Sul nostro account WeDeploy andremo a installare Liferay 7 Community Edition GA4 basandoci su un’immagine docker creata ad hoc per WeDeploy. Le caratteristiche principali dell’immagine sono:

  • basata sul bundle Liferay 7 CE GA4 – Tomcat – HSQL
  • directory installazione /usr/local/liferay-ce-portal-7.0-ga4
  • root data directory /opt/liferay
  • supporto per l’hot-deploy
  • configurazioni osgi via cfg (o config) file
  • personalizzazione della configurazione tramite meccanismo di override dei properties file
  • esposizione della Gogo Shell su 0.0.0.0:11311

L’immagine di docker che utilizzeremo si chiama liferay-portal versione 7-ce-ga4-tomcat-hsql-v1.7. Il repository GitHub docker-liferay-portal contiene i sorgenti dell’immagine docker. Il repository è un fork dell’ottimo lavoro svolto da Manuel de la Peña che ho successivamente personalizzato per l’utilizzo su WeDeploy.

Adesso che abbiamo definito l’immagine da utilizzare, non dobbiamo far altro che preparare il file wedeploy.json che conterrà la definizione del nuovo servizio liferay (attributo id del file wedeploy.json) di cui vogliamo fare il deploy, in questo caso il servizio è proprio l’istanza Liferay 7 CE GA4.

Analizziamo brevemente le parti salienti del file wedeploy.json. Il blocco env imposta una serie di variabili d’ambiente, di cui, le prime tre agiscono direttamente sulla configurazione di Liferay (vedi portal-ext.properties mostrato a seguire), l’ultima decide se fare l’operazione di clean della root data directory di Liferay (/opt/liferay).

L’attributo image è valorizzato con il nome dell’immagine docker. Il nome completo dell’immagine è amusarra/liferay-portal:7-ce-ga4-tomcat-hsql-v1.7 disponibile sul mio account Docker Hub.

L’attributo volume definisce il path assoluto della root data directory di Liferay che deve essere preservata.

WeDeploy punta alla sicurezza, tutti i servizi sono esposti in maniera trasparente per lo sviluppatore in SSL/TLS su HTTP, ragione per cui dobbiamo fare in modo che Liferay sia configurato per funzionare correttamente in HTTPS (azione eseguita dalle prime due environment).

L’environment LIFERAY_PUBLISH_GOGO_SHELL fa in modo che Liferay esponga pubblicamente il servizio telnet per accedere alla Gogo Shell per esempio da un altro servizio.

La root data directory /opt/liferay è così strutturata:

  • data: directory che contiene la document library, il data base HSQL, etc.
  • deploy: directory di auto deploy per bundle e theme
  • osgi: directory che contiene tutta la parte OSGi di Liferay (bundle, state, marketplace, etc.)
  • configs: directory che contiene gli eventuali file di properties

4. Esecuzione del deploy di Liferay

A questo punto siamo pronti per eseguire il deploy del servizio Liferay sulla piattaforma WeDeploy. Per rendere le cose più semplici e nello stesso tempo farvi contenti, sul repository GitHub wedeploy-project ho pubblicato il progetto con tutto il necessario per il deploy del servizio Liferay.

Il repository wedeploy-project contiene anche altri progetti per WeDeploy ma quello di nostro interesse si trova all’interno della directory liferay-7-ga-4. Gli step da seguire al fine del deploy sono:

  • Clonazione del repository wedeploy-project
  • Login su WeDeploy tramite CLI (step che può essere saltato se già loggati)
  • Deploy del servizio su WeDeploy tramite la CLI

A seguire sono mostrati i comandi che consentono il deploy del servizio Liferay su WeDeploy.

In Figura 1 è mostrato l’output che c’informa circa il successo dell’operazione di deploy per il servizio liferay sulla piattaforma WeDeploy. Tramite una serie di comandi è possibile monitorare lo stato di avanzamento dell’operazione di deploy e lo stato del servizio.

Figura 1 - Risultato dell'operazione di deploy del servizio Liferay 7 CE GA4

Figura 1 – Risultato dell’operazione di deploy del servizio Liferay 7 CE GA4

Il video mostra l’operazione di deploy del servizio liferay su WeDeploy.

A seguire sono mostrati una serie di comandi d’esempio che consentono di:

  • Vedere i log del servizio liferay
  • Vedere lo stato del servizio liferay
  • Vedere le environment del servizio liferay

In Figura 2 possiamo vedere il risultato del comando che mostra informazioni di dettaglio circa il servizio specificato, in questo caso quello di liferay. Dall’output notiamo in particolare che il servizio è in stato Online e l’FQDN per raggiungere il servizio (tramite protocollo HTTPS) è liferay-amusarra.wedeploy.io.

Figura 2 - Output del comando per verificare lo stato del servizio liferay

Figura 2 – Output del comando per verificare lo stato del servizio liferay

Per i più curiosi, sul gist liferay.log è possibile visionare l’intero output del comando we log che mostra i log del servizio liferay. La parte iniziale è quella più significativa.

Una delle caratteristiche dell’immagine amusarra/liferay-portal:7-ce-ga4-tomcat-hsql-v1.7 è il supporto per l’hot-deploy. All’atto pratico, cosa vuole dire? Abbiamo la possibilità d’indicare quali bundle (jar, lpkg) e theme installare su Liferay.

All’interno del folder wedeploy-project/liferay-7-ga-4 esiste una directory che sia chiama deploy e al cui interno devono essere posizionati bundle (jar, lpkg) e theme che desiderate installare su Liferay. L’attuale contenuto della directory è:

  • il bundle org.apache.felix.webconsole-4.3.4-all.jar che installa l’Apache Felix Web Console;
  • il bundle Web Gogo Shell.lpkg che installa la Web Gogo Shell rilasciata qualche giorno addietro sul Marketplace di Liferay e sviluppata da Mario Anzà.

A questo punto il servizio liferay è su e raggiungibile all’indirizzo indicato dalla CLI (vedi comando we list -p amusarra -s liferay)  che in questo caso è https://liferay-amusarra.wedeploy.io. Le credenziali di accesso sono le solite, la coppia test@liferay.com/test. Al primo accesso vi chiederà l’accettazione delle condizioni d’uso e l’inserimento della domanda segreta.

Con questo servizio liferay, abbiamo chiesto l’hot-deploy del bundle Apache Felix Web Console e del bundle Web Gogo Shell, raggiungibili rispettivamente alla URL https://liferay-amusarra.wedeploy.io/o/system/console e da Pannello di Controllo → Configurazione → Web Gogo Shell Portlet.

Figura 4 - Web Gogo Shell portlet in action

Figura 4 – Web Gogo Shell portlet in action

Le Figure 4 e 5 mostrano i due bundle in azione che sono stati installati con l’operazione di deploy del servizio liferay. La portlet Web Gogo Shell è davvero comoda per innumerevoli motivi, grande Mario Anzà per averla ideata e realizzata.

Figura 3 - Dettagli del bundle Web Gogo Shell tramite Apache Felix Web Console

Figura 3 – Dettagli del bundle Web Gogo Shell tramite Apache Felix Web Console

2 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...

Cos'è il progetto CIE/CNS Apache Docker - Developers Italia

In questo video https://youtu.be/TcAzn1POhsM introdurrò il progetto CIE/CNS Apache Docker di Developers Italia (https://developers.italia.it/it/cie/#resourcecontent-3) nato circa due anni fa.

L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS.

Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all'interno della TS-CNS o della CIE. La particolarità del sistema implementato (attraverso questo container) è quella di consentire l'autenticazione tramite:

  • La TS-CNS (Tessera Sanitaria - Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  • La CIE (Carta d'Identità Elettronica), rilasciata dal comune di residenza.

Nella versione 2.0.0 il progetto è stato aggiornato per essere uniforme alle linee guida di Bootstrap Italia. A seguire alcune risorse che possono essere utili.

  • Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  • CIE Carta d'Identità Elettronica (https://developers.italia.it/it/cie/)
  • Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaforme/carta-nazionale-servizi)
  • Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  • Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  • Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)