The best process to automate Zimbra deploy using cobbler+puppet

cobblerdeploymentpuppetrhel5zimbra

I set up a fully working cobbler server on a RHEL5 machine.
This is able to deploy a new server on bare metal machine, partitioning the disks, using LVM and creating as much virtual machines as I need. The virtual machines takes their install instructions, configurations, yum repositories and so on from the cobbler server too.

This is really exiting, but the next step is to provide a Full Zimbra server through this mechanism.

My goal is to have Zimbra running upon 2 virtual machines, one for the mail engine and another for the webmail interface (at least as a first step).

What is the best way to deploy them and configure the entire system using puppet?

The philosophy is to use cobbler for very minimal deployment of the machines (both bare-metal and virtualized ) and leave every configuration issue to puppet.

Thank you in advance to anyone will give me some structured info and suggestion on the topic

Best Answer

I'm answering my own question, as for a long time I'm not having any solution.

I did the job, and my approach has been the following:

  • I choose to have a single machine setup for now (but the process can simply be tuned for every kind of setup)
  • deploy a bare metal machine using cobbler
  • make a cobbler snippet that downloads ZCS tarball
  • run via cobbler "post script" the zimbra install script via expect

this means you follow the installation procedure by hand once, write the expect script and now you can make as many installation as you want in a totally automated and programmatic way()

As zimbra is a quite self configuring beast I decided to not maintain confs via puppet, zimbra update scripts should do they job in case of upgrade or update.