In ambienti di tipo enterprise è ormai consuetudine consegnare “chiavi in mano” l’ambiente di sviluppo per il progetto al team di sviluppo. La standardizzazione degli ambienti di sviluppo e la produzione degli stessi tramite meccanismi d’automazione, aumenta l’affidabilità e sicurezza degli ambienti oltre che rendere più veloci i cicli di sviluppo e rilascio.
Nella fase di startup di un recente progetto ho dedicato la mia attenzione alla progettazione e realizzazione dell’architettura HA per SugarCRM. Una delle fasi del progetto prevedeva l’installazione di SugarCRM su un determinato stack software in linea con quanto indicato sul documento SugarCRM Supported Platforms, quest’operazione è stata “tradotta” poi con il build di una virtual appliance adatta a ospitare l’ambiente di sviluppo per SugarCRM 7.2 (nelle versioni commerciali attuali).
Nel corso di quest’articolo vedremo quindi le caratteristiche della virtual appliance realizzata per l’ambiente di sviluppo SugarCRM e come ottenere la stessa per importarla sul vostro ambiente virtualizzazione.
1. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
1
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
SugarCRM
Enterprise
Development
Importazione
della
Virtual
Appliance
In
ambienti
di
tipo
enterprise
è
ormai
consuetudine
consegnare
“chiavi
in
mano”
l’ambiente
di
sviluppo
per
il
progetto
al
team
di
sviluppo.
La
standardizzazione
degli
ambienti
di
sviluppo
e
la
produzione
degli
stessi
tramite
meccanismi
d’automazione,
aumenta
l’affidabilità
e
sicurezza
degli
ambienti
oltre
che
rendere
più
veloci
i
cicli
di
sviluppo
e
rilascio.
Nella
fase
di
startup
di
un
recente
progetto
ho
dedicato
la
mia
attenzione
alla
progettazione
e
realizzazione
dell’architettura
HA1
per
SugarCRM.
Una
delle
fasi
del
progetto
prevedeva
l’installazione
di
SugarCRM
su
un
determinato
stack
software
in
linea
con
quanto
indicato
sul
documento
SugarCRM
Supported
Platforms,
quest’operazione
è
stata
“tradotta”
poi
con
il
build
di
una
virtual
appliance2
adatta
a
ospitare
l’ambiente
di
sviluppo
per
SugarCRM
7.2
(nelle
versioni
commerciali
attuali).
Nel
corso
di
quest’articolo
vedremo
quindi
le
caratteristiche
della
virtual
appliance
realizzata
per
l’ambiente
di
sviluppo
SugarCRM
e
come
ottenere
la
stessa
per
importarla
sul
vostro
ambiente
virtualizzazione.
1
High
Availability,
termine
usato
in
informatica
per
denotare
tecnologie
volte
a
garantire
la
massima
continuità
e
disponibilità
dei
servizi
erogati.
2
Una
Virtual
Appliance
è
una
soluzione
software
installata
e
pre-‐configurata
su
una
o
più
macchine
virtuali
e
pronta
per
essere
utilizzata
da
parte
dell’utente
finale,
come
per
esempio
un
developer.
2. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
2
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
1. Caratteristiche
software
della
virtual
appliance
Solitamente
i
diagrammi
sono
più
esplicativi
e
immediati,
infatti,
il
digramma
di
Figura
1
mostra
lo
stack
software
della
virtual
appliance
di
sviluppo.
Gli
elementi
software
rappresentati
all’interno
del
diagramma
sono
compatibili
con
quelli
indicati
nel
documento
SugarCRM
Supported
Platforms
(http://support.sugarcrm.com/05_Resources/03_Supported_Platforms/Sugar_7.2.
x_Supported_Platforms/).
Figura
1
Stack
Software
della
macchina
virtuale
di
sviluppo.
SugarCRM
non
impone
o
consiglia
una
distruzione
particolare
del
sistema
operativo
Linux.
La
scelta
della
distruzione
CentOS
è
stata
portata
dal
fatto
che
questa
distribuzione
sia
di
derivazione
Red
Hat
Enterprise
Linux
(RHEL)
per
questo
motivo
più
utilizzata
in
ambienti
di
tipo
enterprise,
quindi
stabile
e
di
più
semplice
gestione.
L’elemento
più
importante
dell’intero
stack
software
è
l’engine
PHP.
La
versione
di
PHP
distribuita
con
CentOS
6.5
è
la
5.3.3,
mentre
la
versione
di
PHP
supportata
da
SugarCRM
è
la
5.3.26,
occorre
quindi
preparare
la
virtual
appliance
con
la
corretta
versione
di
PHP.
Come
mai
il
diagramma
di
Figura
1
indica
la
versione
5.3.28
di
PHP?
Dalla
versione
5.3
di
PHP
è
stato
introdotto
il
driver
nativo
MySQL
(che
implementa
il
protocollo
di
comunicazione
MySQL),
chiamato
mysqlnd,
non
installato
di
default,
al
contrario
della
versione
5.4,
dove
mysqlnd
è
la
scelta
predefinita.
Brevemente
vediamo
quali
sono
i
vantaggi
nella
scelta
di
mysqlnd:
• Utilizzo
della
licenza
PHP;
• Non
sono
richieste
dipendenze
MySQL
in
fase
di
compilazione;
• Non
sono
richieste
dipendenze
MySQL
Client
in
runtime;
• Disponibile
in
PHP
5.3
e
di
default
in
5.4.+;
• Migliori
performance;
• Il
software
esistente
continua
a
funzionare;
• Migliore
integrazione
con
PHP
e
Zend
Engine;
• Estensibile;
3. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
3
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
L’estensione
di
mysqlnd
è
possibile
grazie
ad
un
tipo
di
architettura
a
plugin
che
consente
di
aggiungere
il
supporto
a
nuove
caratteristiche.
Grazie
al
plugin
mysqlnd_ms,
le
seguenti
caratteristiche
saranno
disponili:
• Supporto
al
servizio
di
Replicazione;
• Supporto
per
il
Load
Balancing;
• Supporto
per
il
Failover.
SugarCRM
7.2
è
ovviamente
parte
dello
stack
software
ma
non
è
fornito
con
la
virtual
appliance,
deve
essere
poi
installato
al
termine
dell’importazione
della
virtual
appliance
nel
vostro
ambiente
di
virtualizzazione
preferito.
Per
maggiori
informazioni
circa
i
componenti
software
richiesti
da
SugarCRM
consiglio
di
leggere
con
attenzione
il
documento
SugarCRM
Supported
Platforms
e
Installation
and
Upgrade
Guide.
2. Importazione
della
virtual
appliance
La
virtual
appliance
che
ho
realizzato
è
disponibile
solo
in
formato
OVF
(Open
Virtualization
Format)
versione
2.0.
Il
formato
OVF
è
uno
standard
aperto
per
la
creazione
e
distribuzione
di
virtual
appliance,
inoltre,
questo
standard
non
è
legato
a
nessun
tipo
specifico
di
Hypervisor3
e
quanto
meno
all’architettura
del
processore.
Dalla
Figura
2
alla
Figura
7
è
mostrato
il
wizard
che
avvia
la
procedura
d’importazione
della
virtual
appliance
in
ambiente
VirtualBox4
(versione
4.3.x).
In
modo
analogo,
la
stessa
operazione
può
essere
eseguita
su
diversi
ambienti
di
virtualizzazione
come
per
esempio
VMWare,
Citrix,
Microsoft
Hyper-‐V.
Il
file
OVF
della
virtual
appliance
versione
1.2.1
(oggetto
di
quest’articolo)
è
disponibile
pubblicamente
al
seguente
indirizzo:
https://www.dropbox.com/s/sb39iff5pnfhzx2/SugarCRM7DevelopmentEnvironme
nt-‐1_2_1.ova?dl=0
3
L’Hypervisor
è
il
componente
centrale
e
più
importante
di
un
sistema
di
virtualizzazione.
4
VirtualBox
o
Oracle
VM
VirtualBox
è
un
software
open
source
per
l'esecuzione
di
macchine
virtuali
per
architettura
x86
e
64bit
che
supporta
Windows,
GNU/Linux
e
Mac
OS
X
come
sistemi
operativi
host,
ed
è
in
grado
di
eseguire
Windows,
GNU/Linux,
OS/2
Warp,
BSD
come
ad
esempio
OpenBSD,
FreeBSD
e
infine
Solaris
e
OpenSolaris
come
sistemi
operativi
guest.
4. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
4
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
2
Start
importazione
macchina
virtuale
in
Virtual
Box.
Figura
3
Selezione
del
file
OVF
della
macchina
virtuale
da
importare.
Figura
4
Conferma
del
file
OVF
da
importare.
5. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
5
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
5
Impostazioni
della
macchina
virtuale
da
importare.
Figura
6
Accettazione
della
licenza
d’uso.
6. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
6
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
7
Esecuzione
del
processo
d’importazione.
Terminato
il
processo
d’importazione
della
virtual
appliance
(Figura
7),
quest’ultima
è
pronta
per
essere
eseguita.
Per
impostazione
predefinita
i
servizi
di
rete
sono
raggiungibili
localmente.
Nel
caso
in
cui
abbiate
bisogno
di
rendere
i
servizi
della
virtual
appliance
disponibili
sulla
vostra
rete
LAN,
dovrete
necessariamente
intervenire
sulla
configurazione
delle
impostazioni
di
rete.
Potrebbe
capitare
su
alcuni
tipi
di
host
(come
per
esempio
Windows
XP)
che
la
macchina
virtuale
non
sia
avviata,
solitamente
a
causa
del
controller
USB
che
in
questo
caso
andrebbe
disattivato
o
anche
a
causa
della
configurazione
dei
network
adapter
che
devono
essere
semplicemente
riconfigurati.
Con
VirtualBox
(dalla
versione
2)
è
possibile
eseguire
sistemi
guest
a
64bit
su
sistemi
host
a
32bit,
la
condizione
essenziale
è
che
il
processore
supporti
le
estensioni
VT-‐x
e
AMD-‐V.
La
maschera
di
Figura
7
mostra
un
riepilogo
della
virtual
appliance
tra
cui
i
dati
che
riguardano
la
configurazione
hardware,
più
che
adeguata
per
un
ambiente
di
sviluppo
locale
dedicato
a
SugarCRM.
Il
dettaglio
completo
della
configurazione
hardware
della
macchina
virtuale
è
disponibile
al
seguente
indirizzo
https://gist.github.com/amusarra/181c4fe6b0ce65c44aca
Nel
prossimo
capitolo
vedremo
in
modo
schematico
e
sintetico
la
configurazione
base
degli
elementi
che
costituiscono
lo
stack
software
di
base
della
virtual
appliance.
7. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
7
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
8
Macchina
virtuale
importata
con
successo
e
disponibile
per
l’avvio.
Figura
9
Start
della
macchina
virtuale
appena
importata.
8. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
8
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
10
Macchina
virtuale
in
esecuzione.
9. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
9
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
3. Configurazione
software
dell’appliance
Gli
elementi
software
della
virtual
appliance
(vedi
Figura
1)
sono
configurati
così
come
indicato
in
Figura
11.
Alcuni
dei
parametri
di
configurazione
da
tenere
bene
in
mente
perché
indispensabili
al
fine
di
procedere
correttamente
con
l’installazione
di
SugarCRM
riguardano,
Apache,
MySQL
ed
Elastic
Search.
Figura
11
Configurazione
degli
elementi
software.
10. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
10
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
La
mind
map
mostrata
in
Figura
11
credo
che
sia
più
che
esplicativa
da
non
lasciare
nessun
dubbio
circa
la
configurazione
degli
elementi
software
più
rilevanti.
I
servizi
di
rete
quali,
Apache,
Elastic
Search
e
MySQL
sono
stati
configurati
per
essere
“tirati
su”
al
momento
dell’avvio
della
virtual
appliance.
Ipotizziamo
per
esempio
che
la
vostra
macchina
virtuale
abbia
assegnato
l’indirizzo
ip
192.168.56.103
e
che
questo
sia
definito
come
entry
sul
vostro
file
di
hosts
(della
macchina
host),
allora
il
servizio
web
e
in
particolare
SugarCRM,
sarà
raggiungibile
(sia
in
http
sia
in
https)
facendo
puntare
il
browser
ai
seguenti
indirizzi:
• http[s]://sugarcrm7dev-‐env000.local/
Main
document
root
• http[s]://sugarcrm7dev-‐env000.local/phpinfo.php
PHP
Info
page
• http[s]://sugarcrm7dev-‐env000.local/apc.php
APC
Info
page
• http[s]://sugarcrm7dev-‐env000.local/crm
SugarCRM
Application
4. Installazione
SugarCRM
7.2
Una
volta
che
la
virtual
appliance
è
stata
importata
ed
eseguita,
si
può
procedere
con
l’installazione
di
SugarCRM
7.2
(seguendo
la
normale
procedura).
Per
chi
non
fosse
avvezzo
con
la
procedura
d’installazione
di
SugarCRM,
consiglio
la
lettura
della
guida
all’installazione
e/o
aggiornamento.
L’installazione
di
SugarCRM
deve
essere
eseguita
all’interno
della
directory
/var/www/html/crm,
la
spiegazione
è
facilmente
reperibile
dalla
mind
map
di
Figura
11.
Qualora
riteniate
opportuno
modificare
la
directory
d’installazione
non
dimenticate
la
revisione
della
configurazione
di
Apache.
5. Conclusioni
Dovete
partire
con
lo
sviluppo
di
un
progetto
basato
su
SugarCRM?
Bene,
allora
la
virtual
appliance
presentata
(in
modo
sintetico)
nel
corso
di
quest’articolo
dovrebbe
fare
al
caso
vostro,
consentendovi
un
risparmio
di
tempo
per
la
preparazione
dell’ambiente
di
sviluppo.
Potreste
anche
utilizzare
questa
virtual
appliance
come
template
per
la
preparazione
degli
ambienti
test
e
produzione.
11. Antonio
Musarra's
Blog
Document Revision: 1.0
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
18/09/14
11
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Un
piccolo
favore
Per
quanta
passione
e
soddisfazione
possa
portare
a
scrivere
contenuti
di
questo
tipo,
ciò
comporta
anche
un
grande
dispendio
di
tempo
e
risorse.
Se
i
contenuti
offerti
in
quest’articolo
sono
stati
utili
per
te,
potresti
restituirmi
il
favore
condividendo
l’articolo
sui
canali
di
social
network
o
altri,
magari
ciò
che
ho
scritto
potrebbe
essere
utile
anche
a
altre
persone.
Clicca
sulle
immagini
per
condividere:
Vi
aspetto
su
Antonio
Musarra’s
Blog
-‐
The
ideal
solution
for
a
problem
(http://www.dontesta.it/blog/).