Puppet modules for Continuent Tungsten Installation

About 3 years ago we (myself and my colleague Jeff Mace) embarked on a journey to automate installations for the Continuent Tungsten and Tungsten Replicator products (both now owned by VMware). Initially this was driven by 3 different requirements

  • Assist customer deployments reducing the load on Support and Deployment teams
  • Standardise QA host setup, we had many hosts with different configurations on them
  • All quick demo setups with Vagrant, both on Virtualbox and AWS

The initial target for this was the MySQL platform using Percona Server (at the time the only variant to support an yum/apt repository). Initially we wrote our own module for installing and maintaining MySQL but after several months of struggling we just offloaded that work to the Puppet labs MySQL module (https://forge.puppetlabs.com/puppetlabs/mysql).

Over the past 3 years it has been expanded to install the following RDBMS
  • MySQL (via Puppetlabs MySQL) – Standard Oracle MySQL, MariaDB and Percona Server
  • Oracle 11g/12c
  • Vertica
  • Hadoop (Cloudera 5)

It’s now at the point where a developer can spin up a new test VM using the following command, setting up by had used to be a multi-hour effort and a barrier for new people.

yum install puppet
puppet module install continuent/tungsten
echo "class { 'tungsten': installSSHKeys => true, installMysql=> true }"|puppet apply


This module became a key  component on the recent migration to internal VMware systems. This module allowed the quick deployment of around 1000 vm’s in a new vSphere environment. The deployment covered a range of MySQL flavours and versions, Oracle 11g and 12c and a mix of Hadoop and Vertica tests cluster. This module was paired with a range of internal modules which stood up the complete host, users, test toolkits, network configurations etc with no real manual intervention.



The initial adoption was painful (about 6 months) and initially had a great deal of push back from users who couldn’t understand why puppet was changing things back. After a while of education and moaning the benefits became more apparent to them.   


Puppet modules for Continuent Tungsten Installation


A part of the reserection and migration of some of the posts a lot of the code samples have either gone missing or the formatting has been messed up. I’m working my way through them sorting them out