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