Thursday 27 November 2014

Deploying and patching Control-M/Agent through Puppet


BMC Control-M/Agent(s) can be deployed like most of an agent software is. If you are a long-time customer of BMC, probably you already have and use BMC BladeLogic Server Automation. But if Control-M is the only tool from BMC and your infrastructure has a lot of Linux (virtual or non-virtual) machines with Puppet (and Puppet agents which are already installed), you may use the Puppet for the deployment of the Control-M/Agent. Unfortunately it's not easy to find any ready-made module for this task, even more - Puppet sometimes is considered as alternative to Control-M. Of course, I don't think it's a real alternative, not yet at least.

Back to the modules, I had not found anything specific in the Puppet Forge, so I made something own. :-)

The modules (two classes in separate modules which I am sharing with you) are very simple but have the useful parameters. For example they can be used like below:

Class['controlmagent'] -> Class['controlmagent_fixpack']

class {'controlmagent':
   userLogin => "ctmuser",
   installDir => "/controlm/ctmagent",
   primaryServer => "ctm8server",
   authorizedServers => "ctm8server",
}

class {'controlmagent_fixpack':
   userLogin => "ctmuser",
}

The installation of Control-M/Agent (with the controlmagent module) itself is made of a few steps:
  • Checking if the agent is not installed yet (the installed-versions.txt file checking)
  • Making the temporary directory if not exists
  • Downloading the Control-M/Agent installation tar from the Puppet server (its general repository of files)
  • Preparing the XML file for the silent installation
  • Extracting the Control-M/Agent installer from the tar
  • Running the installer
The second of the Puppet modules (the controlmagent_fixpack module) does the job not much different from the typical installation of the Control-M/Agent Fix Pack:
  • Checking if the agent is installed (the installed-versions.txt file checking)
  • Checking if the Fix Pack is not installed yet (the installed-versions.txt file checking)
  • Making the temporary directory if not exists
  • Downloading the Control-M/Agent Fix Pack installation file from the Puppet server (its general repository of files)
  • Shutting down the agent
  • Running the installer
  • Bringing the agent back
Of course, the modules and classes could be more advanced but they should be good enough for typical scenarios.

While testing, you should get the output like this below:


The view on the same proces but in the Puppet Dashboard:




Ok... I hope you have found this post or/and the modules useful. As usually, any substantive comments, questions, requests (for example - a special, more advanced version of the modules) or errata are very welcome. 

Most important references:
 

No comments:

Post a Comment