brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Heneveld <alex.henev...@cloudsoftcorp.com>
Subject Re: new jclouds/login features
Date Tue, 10 Feb 2015 18:47:49 GMT

Hi Alasdair,

Building it up dynamically shouldn't make a difference.  Can you try the 
same settings in a brooklyn.properties to confirm?

You might also want to try setting loginUser.privateKeyFile . It's 
possible there was a default being used there which must now be 
explicitly specified.  (On that subject, is SSH_USER root?  And can you 
see in the logs if AWS is giving us credentials for loginUser?)  If not 
that then I wonder if the update to bouncycastle crypto routines might 
have changed something; you could try reverting just the crypto changes.

Best
Alex


On 10/02/2015 18:33, Alasdair Hodge wrote:
> Hey Alex,
>
> I've just discovered that these changes break my (not-too-wacky??) use 
> case in a customer project.
>
> In my scenario, the top-level application class has a main() method 
> that gets invoked by a deployment script which *dynamically builds a 
> Brooklyn named location* via a handful of system properties:
>
>>  [snip]
>>
>> java -cp ${DEFAULT_CLASSPATH}  -Xmx1024m \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}=jclouds:aws-ec2:${AMAZON_REGION}

>> \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}.user=${SSH_USER} \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}.privateKeyFile=${SSH_KEY} 
>> \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}.publicKeyFile=${SSH_KEY}.pub

>> \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}.imageId=${AMAZON_REGION}/${AMAZON_IMAGE}

>> \
>> -Dbrooklyn.location.named.${BROOKLYN_LOCATION_NAME}.hardwareId=${AMAZON_INSTANCE_TYPE}

>> \
>>   ${JAVA_MAIN_CLASS} $* named:${BROOKLYN_LOCATION_NAME}
>
> Public and private keys (RSA) are contained within the project itself, 
> and EC2 credentials are in my regular brooklyn.properties file.
>
> Commit 793c990 (which merged your improvements back to master) fails 
> for this scenario: the VM is obtained from EC2, but subsequent jclouds 
> init throws SshException:
>
>> 1) SshException on node us-west-1/i-2499d9e7:
>> org.jclouds.ssh.SshException:
>>   (root:rsa[fingerprint([snip]),sha1([snip])]@54.219.228.35:22)
>>   (root:rsa[fingerprint([snip]),sha1([snip])]@54.219.228.35:22)
>>   error acquiring {hostAndPort=54.219.228.35:22, loginUser=root, 
>> ssh=null,
>>   connectTimeout=60000, sessionTimeout=60000} (out of retries - max 50):
>>   Unable to reach a settlement: [] and [aes128-ctr, aes192-ctr,
>>   aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, 
>> blowfish-cbc,
>>   cast128-cbc, aes192-cbc, aes256-cbc, arcfour, 
>> rijndael-cbc@lysator.liu.se]
>>     at org.jclouds.sshj.SshjSshClient.propagate(SshjSshClient.java:385)
>>     at org.jclouds.sshj.SshjSshClient.acquire(SshjSshClient.java:204)
>>     at org.jclouds.sshj.SshjSshClient.connect(SshjSshClient.java:224)
>>     at 
>> org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:72)
>>     at 
>> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:121)
>>     at 
>> org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49)
>>     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>>     at 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>     at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>     at java.lang.Thread.run(Thread.java:745)
>> Caused by: net.schmizz.sshj.transport.TransportException: Unable to
>>   reach a settlement: [] and [aes128-ctr, aes192-ctr, aes256-ctr,
>>   arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, 
>> cast128-cbc,
>>   aes192-cbc, aes256-cbc, arcfour, rijndael-cbc@lysator.liu.se]
>>     at net.schmizz.sshj.transport.Proposal.firstMatch(Proposal.java:165)
>>     at net.schmizz.sshj.transport.Proposal.negotiate(Proposal.java:147)
>>     at 
>> net.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:239)
>>     at 
>> net.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:364)
>>     at 
>> net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:477)
>>     at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:127)
>>     at net.schmizz.sshj.transport.Decoder.received(Decoder.java:195)
>>     at net.schmizz.sshj.transport.Reader.run(Reader.java:72)
>
>
> 'loginUser=root' is correct but 'ssh=null' looks potentially 
> suspicious (although I've no idea what it refers to). I can tell from 
> previous Brooklyn logging that the imageId and hardwareId flags have 
> been correctly passed through, but I guess something's gone awry with 
> the keys. I have a more detailed log but haven't gone through it to 
> redact sensitive bits; hopefully the above executive summary is helpful.
>
> FYI, the commit immediately prior to this on master (40b4ccd) works fine.
>
> A.


Mime
View raw message