[ 
https://issues.apache.org/jira/browse/JCLOUDS-1165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Gaul updated JCLOUDS-1165:
---------------------------------
    Component/s: jclouds-compute

> wrong loginUser inferred: add support for trying more possible loginUser 
> values
> -------------------------------------------------------------------------------
>
>                 Key: JCLOUDS-1165
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1165
>             Project: jclouds
>          Issue Type: Improvement
>          Components: jclouds-compute
>    Affects Versions: 1.9.2
>            Reporter: Aled Sage
>
> Sometimes when provisioning VMs, provisioning fails because ssh'ing to the VM 
> fails - it is the wrong {{loginUser}}.
> The workaround is simple: to figure out the right loginUser for the VM image 
> that is being chosen, and to call {{templateOptions.overrideLoginUser()}}.
> For situations where the default loginUser is wrong, I'd like alternative 
> ones to also be tried.
> One way would be to add {{TemplateOptions.fallbackLoginUsers(Iterable<String> 
> fallbackLoginUsers)}}. When waiting for the first ssh connection, it could 
> try these fallbacks as well. The first user to work with the given 
> credentials could then be used subsequently.
> If this option were available, I'd probably always pass in 
> {{templateOptions.fallbackLoginUsers(ImmutableList.of("root", "centos", 
> "ubuntu", "ec2-user"))}}.
> Another option would be that if there is no explicit (i.e. no overridden) 
> login user in the templateOptions, then we try a bunch of stock users. We 
> could adjust the existing {{PopulateDefaultLoginCredentialsForImageStrategy}} 
> to return a set of {{LoginCredentials}} to try - but that would be a bit 
> harder to change while preserving backwards compatibility.
> ---
> The existing logic to figure out the default loginUser looks pretty scary - 
> for example, [1, 2, 3]. There are hard-coded rules for whether to use 
> "ubuntu", "ec2-user", etc based on the OS type, the cloud provider, and the 
> image owner! I had previously thought that image metadata from the cloud 
> provider would tell us the right loginUser, but I guess that's not the case!
> The workaround is to explicitly set the loginUser in the location definition.
> [1] 
> https://github.com/jclouds/jclouds/blob/rel/jclouds-1.9.2/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2PopulateDefaultLoginCredentialsForImageStrategy.java#L63-L67
> [2] 
> https://github.com/jclouds/jclouds/blob/rel/jclouds-1.9.2/compute/src/main/java/org/jclouds/compute/strategy/impl/ReturnCredentialsBoundToImage.java
> [3] 
> https://github.com/jclouds/jclouds/blob/rel/jclouds-1.9.2/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java#L190-L193



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to