[alert style=”blue”]El Script ha sido mejorado y optimizado y lo puedes encontrar en el siguiente Link.[/alert]

Saludos amigos, estos días he estado haciendo unos laboratorios muy interesantes, se trata de automatizar el proceso de instalación de Zimbra para que en aproximadamente 8 minutos tengamos nuestro servidor de Zimbra Collaboration (Single-Server) funcionando, en siguientes entradas veremos cómo instalar de manera desatendida un Multi-Server, y veremos también un Script para Docker sobre cómo instalar Zimbra Collaboration.
Os dejo aquí el vídeo donde realizo la instalación de Zimbra Collaboration con el Script que os dejo al final de la entrada.
[alert style=”blue”]Este tutorial está pensado para ahorrar tiempo en la instalación y despliegue de Zimbra, pero no olvidemos que preparar el diseño y la arquitectura de un Sistema de Correo Electrónico, con su DNS, su antivirus, etc, lleva mucho más tiempo :)[/alert]
Instalando el Sistema Operativo
En este proceso de instalación de aproximádamente 10 minutos, no se cuenta la instalación del Sistema Operativo, yo recomiendo Ubuntu Server 14.04 LTS, o en su defecto Ubuntu Server 12.04 LTS. Os dejo el siguiente tutorial sobre como instalar Ubuntu Server 14.04 LTS. Recomiendo, al igual que en el vídeo, no instalar la interfaz gráfica en el servidor.
Preparando el Sistema Operativo
En este proceso de instalación de aproximádamente 10 minutos, no se cuenta el proceso a seguir para dejar nuestro sistema operativo listo para la instalación de Zimbra Collaboration. Os dejo a continuación los pasos a seguir:
Instalar las dependencias para Zimbra Collaboration
Dependiendo del Sistema Operativo que instalemos, tendremos que preparar unas dependencias u otras, todas ellas están recogidas en el siguiente Wiki – https://wiki.zimbra.com/wiki/Zimbra_dependencies_per_Operating_System
Instalar dnsmasq para entornos pequeños o test
Para entornos pequeños o de test recomiendo instalar dnsmasq, Oscar Mas ya nos dejó el tutorial perfecto sobre dnsmasq.
Si de lo contrario optamos por un entorno más profesional, recomiendo instalar el server DNS bind en el mismo servidor, o si lo deseamos en otro, o incluso podríamos ya tenerlo en un Microsoft AD, o incluso externo si no queremos usar SplitDNS. Creo que la preparación de los DNS es siempre el punto más sensible a la hora de desplegar Zimbra, tenéis más información en este post de Adrián de btactic en Zimbra Hispano.
Últimos retoques y comprobaciones
Los problemas más comunes que suelo leer, cada semana, se tratan de una configuración errónea en el fichero /etc/hosts así como en la configuración de DNS, tenerlo en cuenta y lanzar los siguientes tests antes de instalar Zimbra Collaboration – https://wiki.zimbra.com/wiki/Split_DNS#Verify_that_everything_is_working
Zimbra Collaboration en 8 minutos de manera desatendida
Comienza a sonar el cronómetro, lo primero que tendremos que hacer es descargar la última Release de Zimbra Collaboration, en este caso 8.6 para Ubuntu 14.04 LTS con el siguiente comando:
wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
Después procederemos a descomprimir el fichero con el siguiente comando:
tar xzvf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
Nos moveremos hasta la nueva carpeta:
cd zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116
E instalaremos todos los paquetes necesarios para nuestro Single-Server, en mi caso he omitido dnscache, atentos a la opción extra que añado -s, para que simplemente instale los paquetes, sin añadir ninguna configuración. Este proceso dura 1 minuto y 10 segundos aproximádamente.
./install.sh -s
Aceptaremos la licencia, veremos que pasamos todos los pre-requisitos, y nos preguntará que paquetes queremos instalar:
Select the packages to install
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y] n
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [Y]
Install zimbra-proxy [Y]
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
Installing:
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
zimbra-memcached
zimbra-proxy
Pulsaremos Y para que instale los paquetes seleccionados
The system will be modified. Continue? [N] y
Preparando el fichero de configuración basado en el config.defaults
Una vez tenemos los paquetes instalados, viene el momento de la “magia”, vamos a crear un fichero llamado installZimbra10mins donde introduciremos los valores para que se lance la instalación con todos los valores que definamos, este fichero se genera con cada instalación de Zimbra Collaboration, y si buscáis en vuestras carpetas en /opt/zimbra/config.xxxx donde xxxx suele ser un número, podréis ver vuestras configuraciones.
Bien, vamos a usar este fichero para instalar nuestro Zimbra de manera desatendida, el mío queda de la siguiente manera, en el vuestro cambiar passwords, cuentas de email, host, dominios y cuentas de SPAM, etc.
AVDOMAIN="zimbralab.local"
AVUSER="[email protected]"
CREATEADMIN="[email protected]"
CREATEADMINPASS="Zimbra2015"
CREATEDOMAIN="zimbralab.local"
DOCREATEADMIN="yes"
DOCREATEDOMAIN="yes"
DOTRAINSA="yes"
EXPANDMENU="no"
HOSTNAME="zimbra-sn-u14-01.zimbralab.local"
HTTPPORT="8080"
HTTPPROXY="TRUE"
HTTPPROXYPORT="80"
HTTPSPORT="8443"
HTTPSPROXYPORT="443"
IMAPPORT="7143"
IMAPPROXYPORT="143"
IMAPSSLPORT="7993"
IMAPSSLPROXYPORT="993"
INSTALL_WEBAPPS="service zimlet zimbra zimbraAdmin"
JAVAHOME="/opt/zimbra/java"
LDAPAMAVISPASS="Zimbra2015"
LDAPPOSTPASS="Zimbra2015"
LDAPROOTPASS="Zimbra2015"
LDAPADMINPASS="Zimbra2015"
LDAPREPPASS="Zimbra2015"
LDAPBESSEARCHSET="set"
LDAPHOST="zimbra-sn-u14-01.zimbralab.local"
LDAPPORT="389"
LDAPREPLICATIONTYPE="master"
LDAPSERVERID="2"
MAILBOXDMEMORY="972"
MAILPROXY="TRUE"
MODE="https"
MYSQLMEMORYPERCENT="30"
POPPORT="7110"
POPPROXYPORT="110"
POPSSLPORT="7995"
POPSSLPROXYPORT="995"
PROXYMODE="https"
REMOVE="no"
RUNARCHIVING="no"
RUNAV="yes"
RUNCBPOLICYD="no"
RUNDKIM="yes"
RUNSA="yes"
RUNVMHA="no"
SERVICEWEBAPP="yes"
SMTPDEST="[email protected]"
SMTPHOST="zimbra-sn-u14-01.zimbralab.local"
SMTPNOTIFY="yes"
SMTPSOURCE="[email protected]"
SNMPNOTIFY="yes"
SNMPTRAPHOST="zimbra-sn-u14-01.zimbralab.local"
SPELLURL="http://zimbra-sn-u14-01.zimbralab.local:7780/aspell.php"
STARTSERVERS="yes"
SYSTEMMEMORY="3.8"
TRAINSAHAM="[email protected]"
TRAINSASPAM="[email protected]"
UIWEBAPPS="yes"
UPGRADE="yes"
USESPELL="yes"
VERSIONUPDATECHECKS="TRUE"
VIRUSQUARANTINE="[email protected]"
ZIMBRA_REQ_SECURITY="yes"
ldap_bes_searcher_password="Zimbra2015"
ldap_dit_base_dn_config="cn=zimbra"
ldap_nginx_password="Zimbra2015"
mailboxd_directory="/opt/zimbra/mailboxd"
mailboxd_keystore="/opt/zimbra/mailboxd/etc/keystore"
mailboxd_keystore_password="XSgmMIAw"
mailboxd_server="jetty"
mailboxd_truststore="/opt/zimbra/java/jre/lib/security/cacerts"
mailboxd_truststore_password="changeit"
postfix_mail_owner="postfix"
postfix_setgid_group="postdrop"
ssl_default_digest="sha256"
zimbraFeatureBriefcasesEnabled="Enabled"
zimbraFeatureTasksEnabled="Enabled"
zimbraIPMode="ipv4"
zimbraMailProxy="FALSE"
zimbraMtaMyNetworks="127.0.0.0/8 192.168.211.0/24 [::1]/128 [fe80::]/64"
zimbraPrefTimeZoneId="America/Los_Angeles"
zimbraReverseProxyLookupTarget="TRUE"
zimbraVersionCheckNotificationEmail="[email protected]"
zimbraVersionCheckNotificationEmailFrom="[email protected]"
zimbraVersionCheckSendNotifications="TRUE"
zimbraWebProxy="FALSE"
zimbra_ldap_userdn="uid=zimbra,cn=admins,cn=zimbra"
zimbra_require_interprocess_security="1"
INSTALL_PACKAGES="zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-memcached zimbra-proxy "
Una vez tenéis este fichero preparado, ya solamente nos queda lanzar el siguiente comando:
/opt/zimbra/libexec/zmsetup.pl -d -c /home/oper/installZimbra10mins
Y el proceso de instalación comenzará a instalar todo de manera desatendida, aquí el log que va generando el proceso:
oper@zimbra-sn-u14-01:~$ tail -f /tmp/zmsetup05102015-215407.log
Sun May 10 21:54:13 2015 main::setLocalConfig:5124 Setting local config ldap_port to 389
Sun May 10 21:54:13 2015 main::runAsZimbra:4893 *** Running as zimbra user: /opt/zimbra/bin/zmlocalconfig -f -e ldap_port='389' 2> /dev/null
[...]
Sun May 10 21:54:19 2015 main::isEnabled:6606 checking isEnabled zimbra-core
Sun May 10 21:54:19 2015 main::isEnabled:6606 zimbra-core is enabled
Sun May 10 21:54:19 2015 main::progress:6607 main::configInitCore:6814 Initializing core config...
Sun May 10 21:54:19 2015 main::progress:5176 main::configCASetup:6828 Setting up CA...
Sun May 10 21:54:19 2015 main::runAsRoot:5194 *** Running as root user: /opt/zimbra/bin/zmcertmgr createca -new
** Creating directory /opt/zimbra/ssl/zimbra
** Creating directory /opt/zimbra/ssl/zimbra/ca
** Creating directory /opt/zimbra/ssl/zimbra/server
** Creating directory /opt/zimbra/ssl/zimbra/commercial
** Creating directory /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp
** Creating /opt/zimbra/ssl/zimbra/ca/zmssl.cnf...done
** Creating CA private key /opt/zimbra/ssl/zimbra/ca/ca.key...done.
[...]
Sun May 10 21:58:35 2015 main::isEnabled:723 checking isEnabled zimbra-ldap
Sun May 10 21:58:35 2015 main::isEnabled:723 zimbra-ldap is enabled
Sun May 10 21:58:35 2015 main::isEnabled:739 checking isEnabled zimbra-store
Sun May 10 21:58:35 2015 main::isEnabled:739 zimbra-store is enabled
Sun May 10 21:58:36 2015 main::isEnabled:751 checking isEnabled zimbra-logger
Sun May 10 21:58:36 2015 main::isEnabled:751 zimbra-logger is enabled
Sun May 10 21:58:36 2015 main::isEnabled:760 checking isEnabled zimbra-mta
Sun May 10 21:58:36 2015 main::isEnabled:760 zimbra-mta is enabled
Sun May 10 21:58:36 2015 main::progress:6983 main::applyConfig:268
Sun May 10 21:58:36 2015 main::progress:6986 main::applyConfig:268 Moving /tmp/zmsetup05102015-215407.log to /opt/zimbra/log
Después de 7 minutos desde que encendí la VM, una vez ya tenía instalado Ubuntu, y configurada la zona DNS y el paquete de Zimbra descargado, mi instalación de Zimbra Collaboration ha terminado satisfactoriamente:
oper@zimbra-sn-u14-01:~$ uptime
21:58:47 up 7 min, 1 user, load average: 2.23, 1.53, 0.70
zimbra@zimbra-sn-u14-01:~$ zmcontrol status
Host zimbra-sn-u14-01.zimbralab.local
amavis Running
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
Y haciendo login al Web Client o a la Admin Console, me carga sin problema:


Script para realizar todo de manera automática
Si queréis crear un Script para que haga todo de manera automática, os dejo a continuación el Script que yo he tengo, este Script realiza lo siguiente:
- Crea una carpeta en tmp llamada zcs
- Descarga el paquete de Zimbra Collaboration 8.6 para Ubuntu 14.04 LTS
- Descarga el fichero con el contenido de config.defaults que hemos visto más arriba y que debe estar personalizado para vuestro entorno.
- Descarga un fichero con las keystrokes para instalar únicamente los paquetes de Zimbra Collaboration que deseamos, que basicamente son todos menos dnscache.
- Descomprime el paquete de Zimbra Collaboration 8.6 para Ubuntu 14.04 LTS
- Nos movemos a la carpeta recién creada y realizamos la instalación del software únicamente, usando las keystrokes adecuadas.
- Realiza el último paso que es inyectar la configuración del config.defaults en el servidor Zimbra.
#!/bin/bash
#Script para instalar Zimbra Collaboration 8.6 de manera desatendida
mkdir /tmp/zcs && cd /tmp/zcs && wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
wget https://jorgedelacruz.es/installZimbra10mins
wget https://jorgedelacruz.es/installZimbra10mins-keystrokes
tar xzvf zcs-*
echo "Instalando Zimbra Collaboration, solamente la parte de Software"
cd /tmp/zcs/zcs-* && ./install.sh -s < /tmp/zcs/installZimbra10mins-keystrokes
echo "Instalando Zimbra Collaboration, inyectando el fichero de config"
/opt/zimbra/libexec/zmsetup.pl -c /tmp/zcs/installZimbra10mins
Podéis seguir este Script y más que irán viniendo en el siguiente enlace de Github – https://github.com/jorgedlcruz/Zimbra

Felicidades por el post. Solo como comentario, para los que ya tienen instalado zimbra, pueden utilizar este sistema para realizar un disaster Recovery de la plataforma.
El sistema es ir al directorio /opt/zimbra del servidor en producción, y copiar un fichero que se denomina config.????? (ejemplo config.31346). Si miramos en el interior, veremos que contiene los campos que describe Jorge. Finalmente solo nos quedaría hacer un zmrestore de los backups, y listo.
OJO: solo contiene los campos que se definieron DURANTE la instalación de la plataforma. Es decir, si no configuramos algun campo, obviamente no se verá reflejado en el fichero config. En multiserver, este sistema no funciona muy bien.
Así es Carles, muchas gracias por tu comentario. En siguientes posts abordaré cómo instalar en Multi-Server y un Disaster Recovery de Single-Server y Multi-Server, sigo escribiendo estos posts.
Al fichero de config.XXXX se le debe añadir lo siguiente para que instale sin problemas, se deben conocer los valores actuales si queremos restaurar sin problemas:
CREATEADMINPASS="Zimbra2015"LDAPAMAVISPASS="Zimbra2015"
LDAPPOSTPASS="Zimbra2015"
LDAPROOTPASS="Zimbra2015"
LDAPADMINPASS="Zimbra2015"
LDAPREPPASS="Zimbra2015"
Y tener ojo para ver si los siguientes valores están correctos:
ldap_bes_searcher_password="Zimbra2015"ldap_nginx_password="Zimbra2015"
mailboxd_keystore_password="Zimbra2015"
Pero todo esto lo veremos en las próximas semanas.
Perdon, hemos cometido un error de libro, hemos copiado el directorio de zimbra, por una reconfiguración del dominio local del servidor y por mas vueltas que le damos no somos capaces de recuperar las cuentas de correo y los calendario y agenda comunes. ¿hay alguna forma de hacerlo?
CENTOS 7 y Zimbra 8.6
Gracias,
Boa tarde,
Após instalar o Zimbra , sempre que tento aceder ao portal aparece este mensagem.
HTTP ERROR 502
Problem accessing ZCS upstream server. Cannot connect to the ZCS upstream server. Connection is refused.
Possible reasons:
upstream server is unreachable
upstream server is currently being upgraded
upstream server is down
Please contact your ZCS administrator to fix the problem.
Powered by Nginx-Zimbra://
Como posso resolver ?