Una vez hechas la Fase 1 y 2 del post anterior: https://www.jorgedelacruz.es/tag/zimbra-puppet/, proseguiremos con el lab. En este post acabaremos de instalar las herramientas necesarias, para poder desplegar nuestro sistema de Zimbra. Estas herramientas, las he dividido en tres fases:
- Servicio BIND
- Fichero resolv.conf
- Paquetes necesarios
Referente al post anterior, he realizado un cambio en el nombre del servidor de destino. En el post anterior se llamaba “node1.ilba.cat” y a partir de ahora, lo llamaremos “zimbra1.ilba.cat”. Creo que es un nombre más idóneo, ya que lo que vamos a conseguir después de este lab, es tener; todas la herramientas necesarias para poder desplegar un sistema de Zimbra de una forma automática. Os dejo el esquema, el cual se basa en dos equipos:
Es importante, que antes de desplegar cualquier tipo de modulo para puppet, leamos la documentación del módulo que vamos a usar. Ya que si no, nos podremos encontrar con sorpresas como esta: Operating system is not supported RedHat
Antes de empezar, verificaremos que todo nuestro sistema de puppet funciona correctamente. Es importante realizar el testeo y verificar que no tenemos ningún tipo de incidencia antes de empezar. Desde el servidor de puppet, recargaremos la configuración de nuestro cliente de destino, en nuestro caso “zimbra1.ilba.cat” (IP: 192.168.250.201 )
[syntax type=”php”][root@puppet ~]# ssh 192.168.250.201 “puppet agent –test”[/syntax]
1.- Servicio BIND
Para realizar la instalación del servicio de Bind9, el cual es básico para poder instalar nuestro sistema de Zimbra, he usado el modulo: https://forge.puppetlabs.com/camptocamp/bind
Instalamos el modulo en nuestro sistema de puppet:
[syntax type=”php”][root@puppet ~]# puppet module install camptocamp-bind[/syntax]
El creador del módulo, nos indica que hemos de añadir la siguiente línea en nuestro manifiesto para un correcto funcionamiento:
Cabe destacar que para este módulo en el cual implementaremos el sistema de DNS, he usado el dominio ilba.cat, pero es mejor usar un dominio neutro por ejemplo: dominio.local, de esta manera nos servirá para futuros clientes (servidores de zimbra). También es importante indicar que he realizado todo el procedimiento en un solo fichero, para hacerlo más simple y limpio.
[syntax type=”php”]
[root@puppet ~]# vim /etc/puppet/manifests/site.pp
Exec {
path => ‘/bin:/sbin:/usr/sbin:/usr/bin’,
}
node ‘zimbra1.ilba.cat‘ {
include bind
bind::zone {‘ilba.cat‘:
ensure => present,
zone_contact => “oscarmash.ilba.cat“,
zone_ns => $fqdn,
zone_serial => ‘2010110826’,
zone_ttl => ‘604800’,
zone_origin => ‘ilba.cat‘,
}
bind::a { ‘Hosts in ilba.cat‘:
ensure => ‘present’,
zone => ‘ilba.cat‘,
ptr => false,
hash_data => {
“$hostname” => { owner => “$ipaddress”, },
},
}
bind::mx {‘mx1’:
zone => ‘ilba.cat‘,
owner => ‘@’,
priority => 1,
host => “${fqdn}.”,
}
}
[/syntax]
Una vez creado el manifiesto, lo desplegamos en nuestro cliente: zimbra1.ilba.cat
[syntax type=”php”][root@puppet ~]# ssh 192.168.250.201 “puppet agent –test”[/syntax]
Una vez desplegado, verificaremos su correcto funcionamiento:
[syntax type=”php”][root@zimbra1 ~]# /usr/sbin/named-checkconf -z /etc/named.conf[/syntax]
2.- Fichero resolv.conf
Para realizar la modificación del fichero de resolv.conf, el cual es básico que apunte a nuestro servidor DNS, he usado el modulo: https://forge.puppetlabs.com/saz/resolv_conf
Instalamos el modulo en nuestro sistema de puppet:
[syntax type=”php”][root@puppet ~]# puppet module install saz-resolv_conf[/syntax]
Configuramos nuestro manifiesto y haremos que el servidor DNS de nuestro sistema de Zimbra sea él mismo (127.0.0.1)
[syntax type=”php”]
[root@puppet ~]# vim /etc/puppet/manifests/site.pp
…
class { ‘resolv_conf’:
nameservers => [‘127.0.0.1’],
domainname => ‘ilba.cat‘,
}
…
[/syntax]
Una vez creado el manifiesto, lo desplegamos en nuestro cliente: zimbra1.ilba.cat
[syntax type=”php”][root@puppet ~]# ssh 192.168.250.201 “puppet agent –test”[/syntax]
Una vez desplegado, verificaremos su correcto funcionamiento:
[syntax type=”php”]
[root@zimbra1 ~]# host -t mx ilba.cat
[root@zimbra1 ~]# dig mx @localhost ilba.cat
[root@zimbra1 ~]# cat /etc/resolv.conf
[/syntax]
3.- Paquetes necesarios
Para realizar la instalación de los paquetes necesarios para desplegar un sistema de Zimbra, he usado el modulo: https://forge.puppetlabs.com/ryanuber/packagelist
Instalamos el modulo en nuestro sistema de puppet:
[syntax type=”php”][root@puppet ~]# puppet module install ryanuber-packagelist[/syntax]
Configuramos nuestro manifiesto y le indicamos los paquetes que necesitamos. Este este ejemplo, los paquetes indicados son para una CentOS 7.
[syntax type=”php”]
[root@puppet ~]# vim /etc/puppet/manifests/site.pp
packagelist { ‘mypackagelist’: packages => [ ‘nmap-ncat’, ‘libaio’, ‘perl-core’, ‘sysstat’, ‘libreoffice’, ‘libreoffice-headless’ ] }
[/syntax]
Una vez creado el manifiesto, lo desplegamos en nuestro cliente zimbra1.ilba.cat
[syntax type=”php”][root@puppet ~]# ssh 192.168.250.201 “puppet agent –test”[/syntax]
Y a partir de ahora, simplemente nos hemos de bajar la versión de zimbra que queremos instalar e instalarla. Os dejo un ejemplo de cómo sería la instalación de la versión 8.5.0, después del despliegue de Puppet:
[syntax type=”php”]
[root@zimbra ~]# cd /usr/local/src/
[root@zimbra src]# wget http://files2.zimbra.com/downloads/8.5.0_GA/zcs-NETWORK-8.5.0_GA_3042.RHEL7_64.20140828204423.tgz
[root@zimbra src]# tar xzvf zcs-NETWORK-8.5.0_GA_3042.RHEL7_64.20140828204423.tgz
[root@zimbra src]# cd zcs-NETWORK-8.5.0_GA_3042.RHEL7_64.20140828204423
[root@zimbra zcs-NETWORK-8.5.0_GA_3042.RHEL7_64.20140828204423]# ./install.sh
[/syntax]











Leave a Reply