Werner Buck created WHIRR-745:
---------------------------------

             Summary: Multiple puppet roles per node results in errorcode 128 
failing bootstrap.
                 Key: WHIRR-745
                 URL: https://issues.apache.org/jira/browse/WHIRR-745
             Project: Whirr
          Issue Type: Bug
          Components: service/puppet
    Affects Versions: 0.8.2
         Environment: Example whirr properties:

{code}
# Change the number of machines in the cluster here
whirr.cluster-name=test
whirr.instance-templates=1 puppet:apache+puppet:ntp
whirr.firewall-rules=80

# with puppet, you need to specify where to pull the modules from
puppet.apache.module=git://github.com/metcalfc/puppet-apache.git
puppet.ntp.module=git://github.com/puppetlabs/puppetlabs-ntp.git

# with puppet, you can set class parameters
ntp.servers=[ '0.pool.ntp.org', 'clock.redhat.com' ]
ntp.autoupdate=true

whirr.provider=openstack-nova
whirr.identity=admin:admin
whirr.credential=nova

whirr.hardware-id=RegionOne/2ad6d75b-131b-477e-b9b1-58fbe23196e5
whirr.image-id=RegionOne/dbe90162-ef25-4aef-8ecd-8906fc5d49fb
whirr.location-id=RegionOne
{code} 
            Reporter: Werner Buck


Puppet role bootstrap is done per occurence of role, rather than once for all 
puppet roles.
The problem is that during bootstrapping the {code}git clone whatever -b 
/etc/modules/directory{code} Is repeated times the different puppet roles 
specified.
This causes the bootstrap procedure to fail with errorCode 128 as git clone 
does not want to overwrite existing directories.

The same behaviour occurs in configure where the puppet init.p repeats  calls 
to puppet classes:

When three puppet roles are assigned the following happens:
{code}
23:34:36.561 [deployer-api-akka.actor.default-dispatcher-8] INFO  
o.apache.whirr.service.ComputeCache - >> running 
InitScript{INSTANCE_NAME=configure-puppet:apache_puppet:stdlib_puppet:ntp} on 
node(1)
23:34:36.567 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping apache, produced manifest:
class { 'apache':
}
23:34:36.567 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping stdlib, produced manifest:
class { 'stdlib':
}
23:34:36.568 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping ntp, produced manifest:
class { 'ntp':
}
23:34:36.569 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping apache, produced manifest:
class { 'apache':
}
23:34:36.569 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping stdlib, produced manifest:
class { 'stdlib':
}
23:34:36.569 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping ntp, produced manifest:
class { 'ntp':
}
23:34:36.570 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping apache, produced manifest:
class { 'apache':
}
23:34:36.570 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping stdlib, produced manifest:
class { 'stdlib':
}
23:34:36.570 [deployer-api-akka.actor.default-dispatcher-8] DEBUG 
o.a.w.s.p.s.CreateSitePpAndApplyRoles - Bootstrapping ntp, produced manifest:
class { 'ntp':
}
{code}

I have attached a quick fix to pass the bootstrap phase for Puppet when 
multiple roles are identified by prepending "rm -rf MODULEDIR/module && " to 
the git clone command.
This allows git to clone again and the bootstrap phase to at least successfully 
run.

 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to