Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 5952

How to run a nested puppet module?

$
0
0

I have a relatively simple manual task that I am trying to automate using Puppet.

Steps I want to perform via Puppet:

  • Copy tarball over from Puppetmaster to several server 'client' nodes.
  • Untar the tarball on said server node.
  • Execute, one at a time, each of the installation agents 'install.sh' file.
  • Clean up (remove) original tarball bundle.

I was hoping not to have one huge init.pp file, but somehow have it a bit modular so that I could have a different class (?) for each of the agents that need to be installed on the 'client' server nodes.

How would I go about doing this? Examples are preferred so I can learn.

I tried something like this (to do the initial copy, untar and cleanup), but it's not exactly 'pretty'.

class dd_bundle {  file { '/opt/apps':    ensure => 'directory',  }  file { '/opt/apps/dd-app-bundle.tar.gz':    source => 'puppet:///modules/dd_bundle/dd-app-bundle.tar.gz',    ensure => file,    replace => false,    mode => '0664';  }  exec { 'tar -xf /opt/apps/dd-app-bundle.tar.gz':    cwd => '/opt/apps',    path => ['/usr/bin', '/usr/sbin',],  }  tidy { '/opt/apps/dd-app-bundle.tar.gz': }}

It would be nice if there was a way I could just somehow have a way to have individual classes and then add them to the init.pp file, then I could make adjustments to each individual class (application) for doing its install part.

Just trying to figure out a streamlined way to make a manual process be automated.


Viewing all articles
Browse latest Browse all 5952

Trending Articles