Creating jobs for deploying Puppet modules
This topic describes how you can use Puppet modules in BMC Server Automation without provisioning the complete Puppet infrastructure.
Benefits of using BMC Server Automation to deploy Puppet modules
The benefits of using BMC Server Automation to deploy Puppet modules are as follows:
- Managed nodes are already under BMC Server Automation management. BMC Server Automation provides robust transmission, staging, simulation, deployment, scheduling, and detailed reporting capabilities.
- BMC Server Automation system administrators can perform additional activities after execution of Puppet modules on the nodes without having knowledge of the Ruby code, which is required to write modules in Puppet.
- If the same BMC Server Automation system administrators are performing regulatory compliance and patching activities on these servers and if they perform the application deployment activities through BMC Server Automation, the entire process provides stronger control of servers in your environment.
- Puppet modules can be reused in your production environment.
Before you use Puppet
Before you start using Puppet, ensure that the following prerequisites are met:
- Identify the OS and architecture of servers in your environment.
- Download the Ruby interpreter and its dependencies for your server OS and architecture. BMC recommends that you download them from the OS media to avoid any installation issues and runtime version mismatches.
Puppet uses native package management software (such as yum and apt) and package repositories of the target servers for installing the packages that are referenced in a Puppet module. Ensure that targets are configured for and have access to package repositories (for example, RHN or RHN Satellite servers for Red Hat Linux) and have the appropriate package management tools installed and available in the path.
- RSCD agent is installed on the Application Server.
The authenticated role must have the following authorizations and object-level permissions:
- Server.* on the Target Server
- ServerGroup.* on the Target Server Group
- JobFolder.* on the Puppet and PuppetAdministration job folders
- DepotFolder.* on the Puppet and PuppetAdministration depot folders
- NSHScriptJob.* on the PuppetDeployScriptJob, PuppetModule2BlPkgScriptJob, PuppetPackagerScriptJob jobs present in the /Puppet/PuppetAdministration job folder
- NSHScript.* on the PuppetDeployScript, PuppetModule2BlPkgScript, PuppetPackagerScript scripts present in the /Puppet/PuppetAdministration depot folder
Using Puppet in BMC Server Automation
The following figure shows the network setup required for using Puppet:
The following figure shows how BMC Server Automation uses Puppet modules and executes them on the targets:
As part of the Puppet deployment process, you need to create Depot objects and Deploy jobs for the following items:
- Puppet Agent bundle (contains Puppet, Ruby, and Facter installers and other dependent files)
- Puppet modules
These Depot objects and Deploy jobs are then used to install the Puppet Agent bundle and execute the Puppet modules on the target server.
Creating Depot objects and Deploy Jobs for Puppet
You can use either of the following approaches to create the Depot objects and Deploy jobs: