Hi Ignasi, Passing ssl ca to chef node while doing first bootstrap actually worked for me. Some issue was there regarding the certificate. Thanks a lot for your suggestion.
One thing though, after bootstrapping to install chef-client If I want to bootstrap again with a particular recipe present in chef server to deploy on the chef node what Statement should I pass to runScriptOnNode ? Can you please share a working example. Regards, Subhadip ------------------------------------------------------------------------------------------------------------------- On Fri, Feb 13, 2015 at 1:26 PM, Ignasi Barrera <n...@apache.org> wrote: > Then the problem is just about the Chef configuration and with the > certificate itself. Are you sure it is the right one? > > I'd recommend you to read the Chef client config documentation [1], > especially the "ssl_*" properties. Play with them. You'll see that despite > not being the recommended solution you can also disable the SSL certificate > validation if needed. > > You now know how to add those properties to the client config file. Let's > play with them. > > I. > > [1] https://docs.chef.io/config_rb_client.html > El 12/02/2015 15:06, "Subhadip Bagui" <i.ba...@gmail.com> escribió: > > > Hi Ignasi, > > > > The certificate is generating now in chef client side, but still the SSl > > authentication is failing. Please let me know how to proceed. > > > > Thank you for installing Chef! > > [2015-02-12T08:59:31+00:00] INFO: Forking chef instance to converge... > > [2015-02-12T08:59:31+00:00] INFO: *** Chef 12.0.3 *** > > [2015-02-12T08:59:31+00:00] INFO: Chef-client pid: 7979 > > [2015-02-12T08:59:33+00:00] INFO: Client key /etc/chef/client.pem is not > > present - registering > > [2015-02-12T08:59:34+00:00] ERROR: SSL Validation failure connecting to > > host: 125.16.230.216 - SSL_connect returned=1 errno=0 state=SSLv3 read > > server certificate B: certificate verify failed > > ^[[0m > > > > > ================================================================================^[[0m > > ^[[31mChef encountered an error attempting to create the client > > "aricloud-172.31.9.180"^[[0m > > > > > ================================================================================^[[0m > > > > ^[[0m[2015-02-12T08:59:34+00:00] FATAL: Stacktrace dumped to > > /var/chef/cache/chef-stacktrace.out > > [2015-02-12T08:59:34+00:00] ERROR: SSL_connect returned=1 errno=0 > > state=SSLv3 read server certificate B: certificate verify failed > > [2015-02-12T08:59:34+00:00] FATAL: Chef::Exceptions::ChildConvergeError: > > Chef run process exited unsuccessfully (exit code 1) > > > > > > Regards, > > Subhadip > > > > > > > ------------------------------------------------------------------------------------------------------------------- > > > > On Thu, Feb 12, 2015 at 8:34 AM, Subhadip Bagui <i.ba...@gmail.com> > wrote: > > > > > Hi Ignasi, > > > > > > I tried the code u suggested. I'm getting some error now like that file > > > what we have passed cannot be created in chef client. Please suggest. > > > > > > [2015-02-11T18:18:32+00:00] INFO: Client key /etc/chef/client.pem is > not > > > present - registering > > > ^[[0m > > > > > > > > > ================================================================================^[[0m > > > ^[[31mChef encountered an error attempting to create the client > > > "aricloud-172.31.9.180"^[[0m > > > > > > > > > ================================================================================^[[0m > > > > > > ^[[0m[2015-02-11T18:18:32+00:00] FATAL: Stacktrace dumped to > > > /var/chef/cache/chef-stacktrace.out > > > [2015-02-11T18:18:32+00:00] ERROR: The configured ssl_ca_file > > > /etc/chef/chef-server.crt does not exist > > > [2015-02-11T18:18:32+00:00] FATAL: > Chef::Exceptions::ChildConvergeError: > > > Chef run process exited unsuccessfully (exit code 1) > > > > > > -------- here is my full code. > > > > > > > > > private String createBootstrapAWS(String userName, String password, > > > InstanceBean instance, ComputeService computeService) > > > throws IOException { > > > String status = Constants.SUCCESS; > > > List<String> runlist = new ArrayList<String>(); > > > String recipe = INITIAL_UPDATE_VM; > > > > > > // initialising chef > > > ChefContext chefContext = AriServiceConfiguration > > > .chefServerConfigurationCloudWise(instance); > > > > > > Iterable<? extends CookbookVersion> cookbookVersions = chefContext > > > .getChefService().listCookbookVersions(); > > > > > > if (any(cookbookVersions, containsRecipe(recipe))) { > > > runlist = new RunListBuilder().addRecipe(recipe).build(); > > > } > > > if (instance.isAutoDeploy()) { > > > runlist = new RunListBuilder().addRecipes( > > > instance.getRecipes().toArray( > > > new String[instance.getRecipes().size()])).build(); > > > } > > > > > > LoginCredentials login = getLoginForCommandExecution(userName, > > > password, instance.getCloudType()); > > > LOG.info("got the login as :" + login); > > > > > > ChefService chefService = initChefServiceAWS( > > > MessageTranslator.getMessage("chef.client"), > > > MessageTranslator.getMessage("chef.validator")); > > > > > > BootstrapConfig build = null; > > > > > > try { > > > build = BootstrapConfig.builder().runList(runlist).build(); > > > > > > chefService.updateBootstrapConfigForGroup(instance.getGroupName(), > > > build); > > > > > > // Build the script that will bootstrap the node > > > Statement bootstrap = chefService > > > .createBootstrapScriptForGroup(instance.getGroupName()); > > > > > > LOG.info("bootstrap created..."); > > > LOG.debug("Running run script"); > > > > > > // > > > ImmutableList.Builder<Statement> withCA = ImmutableList.builder(); > > > > > > // Upload the Chef Server certificate to the node > > > > withCA.add(Statements.createOrOverwriteFile("/etc/chef/chef-server.crt", > > > Files.readLines(new File("/tmp/apache.crt"), > > > Charsets.UTF_8))); > > > > > > // The last statement in the generated bootstrap is the Chef client > run, > > so > > > // modify the > > > // Chef client configuration to add the CA configuration just before > that > > > statement > > > StatementList statements = (StatementList)bootstrap; > > > withCA.addAll(statements.subList(0, statements.size() - 1)); > > > withCA.add(Statements.appendFile("/etc/chef/client.rb", > > > Collections.singleton("ssl_ca_file\"/etc/chef/chef-server.crt\""))); > > > withCA.add(Iterables.getLast(statements)); > > > > > > Statement updatedBootstrap = new StatementList(withCA.build()); > > > // > > > status = runScriptOnGroup(computeService, login, instance, > > > updatedBootstrap); > > > > > > } catch (Exception e) { > > > LOG.warn("error thrown for bootstrap.." + e.getMessage()); > > > return "failure"; > > > } finally { > > > chefContext.close(); > > > } > > > > > > return status; > > > } > > > > > > > > > > > > > > > > > > Regards, > > > Subhadip > > > 9741779086 > > > > > > > > > ------------------------------------------------------------------------------------------------------------------- > > > > > > On Tue, Feb 10, 2015 at 4:11 PM, Ignasi Barrera <n...@apache.org> > wrote: > > > > > >> Ok, you're hitting JCLOUDS-792 [1]. It is fixed in the latest > snapshot. > > >> > > >> Basically, the Chef client 12 comes with SSL verification enabled by > > >> default, and since the node you deployed does not trust the Chef > > Server's > > >> certificate, it aborts. > > >> > > >> If you can't upgrade to the latest snapshot, then you can workaround > it > > by > > >> modifying the generated bootstrap script. Please, note that this is > not > > >> recommended at all, as the code below might break when upgrading > > jclouds, > > >> as it makes many assumptions that may not be true in future versions. > > Use > > >> it only as a temporal workaround until you can ugprade. > > >> > > >> You will need your server's certificate in a file. Say you have that > > >> stored > > >> locally (where the jclouds code runs) in "/tmp/chef-server.crt". > > >> > > >> Then you could use the follogin code to generate the bootstrap script > > you > > >> will pass to the "runScript" method: > > >> > > >> Statement originalBootstrap = > > >> chef.createBootstrapScriptForGroup(instance.getGroupName()); > > >> > > >> // https://issues.apache.org/jira/browse/JCLOUDS-792 > > >> // We have to install the Chef Server key before running the Chef > > client. > > >> > > >> ImmutableList.Builder<Statement> withCA = ImmutableList.builder(); > > >> > > >> // Upload the Chef Server certificate to the node > > >> > withCA.add(Statements.createOrOverwriteFile("/etc/chef/chef-server.crt", > > >> Files.readLines("/tmp/chef-server.crt", > > >> Charsets.UTF_8))); > > >> > > >> // The last statement in the generated bootstrap is the Chef client > run, > > >> so > > >> modify the Chef > > >> // client configuration to add the CA configuration just before that > > >> statement > > >> StatementList statements = (StatementList) originalBootstrap; > > >> withCA.addAll(statements.subList(0, statements.size() - 1)); > > >> withCA.add(Statements.appendFile("/etc/chef/client.rb", > > >> Collections.singleton("ssl_ca_file > > >> \"/etc/chef/chef-server.crt\""))); > > >> withCA.add(Iterables.getLast(statements)); > > >> > > >> Statement updatedBootstrap = new StatementList(withCA.build()); > > >> > > >> > > >> And this "updatedBootstrap" is the script you can use. Basically it > > >> uploads > > >> the Chef server file to the node, and modifies the generated statement > > to > > >> configure the client.rb *after* jclouds has created the file and > > *before* > > >> it executes the chef run. > > >> > > >> > > >> HTH! > > >> > > >> > > >> > > >> [1] https://issues.apache.org/jira/browse/JCLOUDS-792 > > >> > > >> On 10 February 2015 at 10:08, Subhadip Bagui <i.ba...@gmail.com> > wrote: > > >> > > >> > Hi Ignasi, > > >> > > > >> > I checked in the stdout.log that is generating in > > >> /tmp/jclouds-script.../ > > >> > and its showing the below error.. Attaching the full log also. Any > > idea > > >> how > > >> > to fix this. > > >> > > > >> > > > >> > [2015-02-08T17:41:25+00:00] INFO: Chef-client pid: 7023 > > >> > *[2015-02-08T17:41:28+00:00] INFO: Client key /etc/chef/client.pem > is > > >> not > > >> > present - registering* > > >> > *[2015-02-08T17:41:29+00:00] ERROR: SSL Validation failure > connecting > > to > > >> > host: 125.16.230.216 - SSL_connect returned=1 errno=0 state=SSLv3 > read > > >> > server certificate B: certificate verify failed* > > >> > > > >> > > > >> > > > >> > Regards, > > >> > Subhadip > > >> > > > >> > > > >> > > > ------------------------------------------------------------------------------------------------------------------- > > >> > > > >> > On Tue, Feb 10, 2015 at 1:02 AM, Subhadip Bagui <i.ba...@gmail.com> > > >> wrote: > > >> > > > >> >> Hi, > > >> >> > > >> >> I've added the properties for customized chef as below. > > >> >> chefConfig.put(ChefProperties.CHEF_USE_OMNIBUS, false); > > >> >> chefConfig.put(ChefProperties.CHEF_VERSION,"11.16.4"); > > >> >> > > >> >> But now it seems chef is not able to download from opscode and > > install > > >> >> the rpm. I waited for 1/2 hr and no files are getting downloaded > for > > >> chef > > >> >> rpm. Please suggest. > > >> >> > > >> >> > > >> >> 10-02-2015 00:54:19,635 DEBUG [user thread 0] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 374 - Sending > > >> channel > > >> >> request for `exec` > > >> >> 10-02-2015 00:54:19,635 DEBUG [user thread 0] > > >> >> net.schmizz.concurrent.Promise 164 - Awaiting <<chan#278 / chanreq > > for > > >> >> exec>> > > >> >> 10-02-2015 00:54:19,682 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 328 - Received > > >> window > > >> >> adjustment for 2097152 bytes > > >> >> 10-02-2015 00:54:19,682 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.Window 41 - Increasing by > 2097152 > > >> up to > > >> >> 2097152 > > >> >> 10-02-2015 00:54:19,682 DEBUG [reader] > net.schmizz.concurrent.Promise > > >> 78 > > >> >> - Setting <<chan#278 / chanreq for exec>> to `SOME` > > >> >> 10-02-2015 00:54:20,327 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 316 - Got chan > > >> request > > >> >> for `exit-status` > > >> >> 10-02-2015 00:54:20,327 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 410 - Got EOF > > >> >> 10-02-2015 00:54:20,327 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 223 - Got close > > >> >> 10-02-2015 00:54:20,327 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 427 - Sending > EOF > > >> >> 10-02-2015 00:54:20,327 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 289 - Sending > > close > > >> >> 10-02-2015 00:54:20,328 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.ConnectionImpl 84 - Forgetting > `session` > > >> >> channel (#278) > > >> >> 10-02-2015 00:54:20,328 DEBUG [reader] > net.schmizz.concurrent.Promise > > >> 78 > > >> >> - Setting <<chan#278 / close>> to `SOME` > > >> >> *10-02-2015 00:54:20,328 DEBUG [user thread 0] > > >> >> net.schmizz.sshj.common.StreamCopier 139 - 0.0 KiB transferred in > > >> 0.645 > > >> >> seconds (0.0 KiB/s)* > > >> >> *10-02-2015 00:54:20,328 DEBUG [user thread 0] > > >> >> net.schmizz.sshj.common.StreamCopier 139 - 0.0 KiB transferred in > > 0.0 > > >> >> seconds (NaN KiB/s)* > > >> >> 10-02-2015 00:54:20,328 DEBUG [user thread 0] > > >> >> net.schmizz.sshj.connection.ConnectionImpl 68 - Attaching `session` > > >> channel > > >> >> (#279) > > >> >> 10-02-2015 00:54:20,329 DEBUG [user thread 0] > > >> >> net.schmizz.concurrent.Promise 164 - Awaiting <<chan#279 / open>> > > >> >> 10-02-2015 00:54:20,458 DEBUG [reader] > > >> >> net.schmizz.sshj.connection.channel.AbstractChannel 125 - > Initialized > > >> - < > > >> >> session channel: id=279, recipient=2, localWin=[winSize=2097152], > > >> >> remoteWin=[winSize=0] > > > >> >> > > >> >> > > >> >> > > >> >> Regards, > > >> >> Subhadip > > >> >> 9741779086 > > >> >> > > >> >> > > >> > > > ------------------------------------------------------------------------------------------------------------------- > > >> >> > > >> >> On Mon, Feb 9, 2015 at 6:17 PM, Ignasi Barrera <n...@apache.org> > > >> wrote: > > >> >> > > >> >>> The Chef version properties will only work if you install Chef > > >> >>> directly from the Chef gems. Support or versions when using > omnibus > > >> >>> was added in the latest snapshot so it is not available in 1.7.3. > > >> >>> > > >> >>> You can instruct jclouds to install Chef directly from the Chef > gems > > >> >>> by configuring the Chef properties mentioned here (look at the > end, > > in > > >> >>> the "Customize how Chef is installed" section): > > >> >>> http://jclouds.apache.org/guides/chef > > >> >>> > > >> >>> You can start trying with the following properties, and play with > > the > > >> >>> rest (such as the ruby version, and the update gem system ones) if > > >> >>> these properties alone don't work. > > >> >>> > > >> >>> overrides.setProperty(ChefProperties.USE_OMNIBUS, "false"); > > >> >>> overrides.setProperty(ChefProperties.CHEF_VERSION, "11.16.4"); > > >> >>> > > >> >>> On 9 February 2015 at 13:21, Subhadip Bagui <i.ba...@gmail.com> > > >> wrote: > > >> >>> > Hi Ignasi, > > >> >>> > > > >> >>> > Changing the JClouds version will be difficult for me as the > code > > is > > >> >>> there > > >> >>> > in production. I will check with changing the chef version > > >> properties > > >> >>> and > > >> >>> > let u know. > > >> >>> > > > >> >>> > > > >> >>> > Regards, > > >> >>> > Subhadip > > >> >>> > > > >> >>> > > > >> >>> > > >> > > > ------------------------------------------------------------------------------------------------------------------- > > >> >>> > > > >> >>> > On Mon, Feb 9, 2015 at 4:22 PM, Ignasi Barrera <n...@apache.org > > > > >> >>> wrote: > > >> >>> > > > >> >>> >> The configuration seems correct. Can you try using version > > >> >>> >> 2.0.0-SNAPSHOT and set the chef version I suggested, and see if > > it > > >> >>> >> works? Just to isolate the issue and see if it is actually a > > >> package > > >> >>> >> version. > > >> >>> >> > > >> >>> >> On 9 February 2015 at 11:43, Subhadip Bagui <i.ba...@gmail.com > > > > >> >>> wrote: > > >> >>> >> > Hi Ignasi, > > >> >>> >> > > > >> >>> >> > Thanks for your reply. > > >> >>> >> > > > >> >>> >> > I'm using jclouds version 1.7.3 and I'm not setting any chef > > >> >>> version in > > >> >>> >> > code. Default it's taking that opscode-omnibus chef. > > >> >>> >> > I have cleaned the /var/chef dir and tried but getting the > same > > >> >>> issue. > > >> >>> >> > > > >> >>> >> > Here is my code for ChefService creation. Please let me know > > what > > >> >>> needs > > >> >>> >> to > > >> >>> >> > be done. > > >> >>> >> > > > >> >>> >> > `private ChefService initChefServiceAWS(String client, String > > >> >>> validator) > > >> >>> >> { > > >> >>> >> > ChefContext context = null; > > >> >>> >> > try { > > >> >>> >> > > > >> >>> >> > String organization = "chef"; > > >> >>> >> > String pemFile = MessageTranslator.getMessage("user.home") > > >> >>> >> > + "/.chef/" + client + ".pem"; > > >> >>> >> > String credential = Files.toString(new File(pemFile), > > >> >>> >> > Charsets.UTF_8); > > >> >>> >> > > > >> >>> >> > // Provide the validator information to let the nodes to > > >> >>> >> > // auto-register themselves > > >> >>> >> > // in the Chef server during bootstrap > > >> >>> >> > String validatorPemFile = > > >> MessageTranslator.getMessage("user.home") > > >> >>> >> > + "/.chef/" + validator + ".pem"; > > >> >>> >> > String validatorCredential = Files.toString(new File( > > >> >>> >> > validatorPemFile), Charsets.UTF_8); > > >> >>> >> > > > >> >>> >> > Properties chefConfig = new Properties(); > > >> >>> >> > chefConfig.put(ChefProperties.CHEF_VALIDATOR_NAME, > validator); > > >> >>> >> > chefConfig.put(ChefProperties.CHEF_VALIDATOR_CREDENTIAL, > > >> >>> >> > validatorCredential); > > >> >>> >> > > > >> >>> >> > ContextBuilder builder = ContextBuilder > > >> >>> >> > .newBuilder(organization) > > >> >>> >> > .credentials(client, credential) > > >> >>> >> > .overrides(chefConfig); > > >> >>> >> > > > >> >>> >> > LOG.debug(" initializing Chef Service " + > > >> builder.getApiMetadata()); > > >> >>> >> > > > >> >>> >> > context = builder.buildView(ChefContext.class); > > >> >>> >> > > > >> >>> >> > } catch (Exception e) { > > >> >>> >> > LOG.warn("error reading private key ", e); > > >> >>> >> > return null; > > >> >>> >> > } > > >> >>> >> > return context.getChefService(); > > >> >>> >> > }` > > >> >>> >> > > > >> >>> >> > Regards, > > >> >>> >> > Subhadip > > >> >>> >> > > > >> >>> >> > > >> >>> > > >> > > > ------------------------------------------------------------------------------------------------------------------- > > >> >>> >> > > > >> >>> >> > On Mon, Feb 9, 2015 at 1:53 PM, Ignasi Barrera < > > n...@apache.org> > > >> >>> wrote: > > >> >>> >> > > > >> >>> >> >> Could you also share the code you use to create the > > ChefContext? > > >> >>> Just > > >> >>> >> >> to make sure the credentials and validator certificates are > > >> >>> properly > > >> >>> >> >> configured. Thanks! > > >> >>> >> >> > > >> >>> >> >> On 9 February 2015 at 09:18, Ignasi Barrera < > > >> >>> ignasi.barr...@gmail.com> > > >> >>> >> >> wrote: > > >> >>> >> >> > It seems to be failing to install the Chef RPM (and that > > would > > >> >>> be an > > >> >>> >> >> > issue with the Chef package itself). To debug what is > going > > >> on, > > >> >>> you > > >> >>> >> >> > can: > > >> >>> >> >> > > > >> >>> >> >> > * Log in to the node after the script execution failure. > > >> >>> >> >> > * Remove the "/etc/chef" directory, to cleanup everything > > >> >>> jclouds has > > >> >>> >> >> > created there. > > >> >>> >> >> > * In the user's home directory you'll find a symlink > > pointing > > >> to > > >> >>> the > > >> >>> >> >> > bootstrap script. > > >> >>> >> >> > * That bootstrap script leaves the stdout and stderr > outputs > > >> in > > >> >>> >> >> > "/tmp". You can read them and see if you find more details > > >> about > > >> >>> the > > >> >>> >> >> > error. > > >> >>> >> >> > * Or you can manually run the script and see if you can > see > > >> more > > >> >>> >> details. > > >> >>> >> >> > > > >> >>> >> >> > jclouds by default installs Chef using the Omnibus > installer > > >> and > > >> >>> >> >> > installs the latest version of Chef. You can also try to > > >> force a > > >> >>> >> >> > concrete version of the Chef Client to be installed. To do > > >> that: > > >> >>> >> >> > > > >> >>> >> >> > * You must use jclouds 2.0.0-SNAPSHOT version (there is > not > > a > > >> >>> release > > >> >>> >> >> > with the version support when using Omnibus). > > >> >>> >> >> > * Create the ChefContext adding the following property > (this > > >> is a > > >> >>> >> >> > version of the Chef client I've tested recently): > > >> >>> >> >> > overrides.setProperty(ChefProperties.CHEF_VERSION, > > >> >>> "11.16.4-1"); > > >> >>> >> >> > > > >> >>> >> >> > > > >> >>> >> >> > HTH! > > >> >>> >> >> > > > >> >>> >> >> > I. > > >> >>> >> >> > > > >> >>> >> >> > On 8 February 2015 at 19:07, Subhadip Bagui < > > >> i.ba...@gmail.com> > > >> >>> >> wrote: > > >> >>> >> >> >> Hi, > > >> >>> >> >> >> > > >> >>> >> >> >> I'm trying to bootstrap one predefined recipe as runlist > > >> through > > >> >>> >> JClouds > > >> >>> >> >> >> boot strap. The issue I'm facing is the authentication > and > > >> >>> >> >> chef-validator > > >> >>> >> >> >> pem file all the generating correctly in ec2 node, but > it's > > >> >>> failing > > >> >>> >> to > > >> >>> >> >> >> create the client.pem in the new node. For that the > recipe > > is > > >> >>> not > > >> >>> >> able > > >> >>> >> >> to > > >> >>> >> >> >> run. Below is my code part following the example from > link > > >> >>> >> >> >> > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> > > > https://github.com/jclouds/jclouds-examples/blob/master/chef-basics/src/main/java/org/apache/jclouds/examples/chef/basics/MainApp.java > > >> >>> >> >> >> > > >> >>> >> >> >> Please let me know the whats the issue here. > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> private String createBootstrapAWS(String userName, String > > >> >>> password, > > >> >>> >> >> >>> InstanceBean instance, ComputeService computeService) > > >> >>> >> >> >>> throws IOException { > > >> >>> >> >> >>> String status = Constants.SUCCESS; > > >> >>> >> >> >>> List<String> runlist = new ArrayList<String>(); > > >> >>> >> >> >>> String recipe = INITIAL_UPDATE_VM; > > >> >>> >> >> >>> // initialising chef > > >> >>> >> >> >>> ChefContext chefContext = AriServiceConfiguration > > >> >>> >> >> >>> .chefServerConfigurationCloudWise(instance); > > >> >>> >> >> >>> Iterable<? extends CookbookVersion> cookbookVersions = > > >> >>> chefContext > > >> >>> >> >> >>> .getChefService().listCookbookVersions(); > > >> >>> >> >> >>> if (any(cookbookVersions, containsRecipe(recipe))) { > > >> >>> >> >> >>> runlist = new > RunListBuilder().addRecipe(recipe).build(); > > >> >>> >> >> >>> } > > >> >>> >> >> >>> if (instance.isAutoDeploy()) { > > >> >>> >> >> >>> runlist = new RunListBuilder().addRecipes( > > >> >>> >> >> >>> instance.getRecipes().toArray( > > >> >>> >> >> >>> new String[instance.getRecipes().size()])).build(); > > >> >>> >> >> >>> } > > >> >>> >> >> >>> LoginCredentials login = > > >> getLoginForCommandExecution(userName, > > >> >>> >> >> >>> password, instance.getCloudType()); > > >> >>> >> >> >>> LOG.info("got the login as :" + login); > > >> >>> >> >> >>> ChefService chefService = initChefServiceAWS( > > >> >>> >> >> >>> MessageTranslator.getMessage("chef.client"), > > >> >>> >> >> >>> MessageTranslator.getMessage("chef.validator")); > > >> >>> >> >> >>> BootstrapConfig build = null; > > >> >>> >> >> >>> try { > > >> >>> >> >> >>> build = > > BootstrapConfig.builder().runList(runlist).build(); > > >> >>> >> >> >>> > > >> >>> chefService.updateBootstrapConfigForGroup(instance.getGroupName(), > > >> >>> >> >> >>> build); > > >> >>> >> >> >>> // Build the script that will bootstrap the node > > >> >>> >> >> >>> Statement bootstrap = chefService > > >> >>> >> >> >>> .createBootstrapScriptForGroup(instance.getGroupName()); > > >> >>> >> >> >>> LOG.info("bootstrap created..."); > > >> >>> >> >> >>> LOG.debug("Running run script"); > > >> >>> >> >> >>> status = runScriptOnGroup(computeService, login, > instance, > > >> >>> >> >> >>> bootstrap); > > >> >>> >> >> >>> } catch (Exception e) { > > >> >>> >> >> >>> LOG.warn("error thrown for bootstrap.." + > e.getMessage()); > > >> >>> >> >> >>> return "failure"; > > >> >>> >> >> >>> } finally { > > >> >>> >> >> >>> chefContext.close(); > > >> >>> >> >> >>> } > > >> >>> >> >> >>> return status; > > >> >>> >> >> >>> } > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> The response I'm getting from JClouds for ExecResponse > is > > >> >>> below. > > >> >>> >> It's > > >> >>> >> >> not > > >> >>> >> >> >> creating the client.pem. Please let me know what is the > > >> issue > > >> >>> here. > > >> >>> >> >> >> > > >> >>> >> >> >> ExecResponse execResponses1 = compute.runScriptOnNode( > > >> >>> >> >> >>> instance.getInstanceId(), command, > > >> >>> >> >> >>> overrideLoginCredentials(login).runAsRoot(true)); > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> {output=Downloading Chef for el... > > >> >>> >> >> >> downloading > > >> >>> >> >> >> > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> > > > https://www.opscode.com/chef/metadata?v=&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64 > > >> >>> >> >> >> to file /tmp/install.sh.2830/metadata.txt > > >> >>> >> >> >> trying wget... > > >> >>> >> >> >> url > > >> >>> >> >> >> > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> > > > https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.0.3-1.x86_64.rpm > > >> >>> >> >> >> md5 3634d1a3b6ae2e5977361075da0f44cc > > >> >>> >> >> >> sha256 > > >> >>> >> > 0ec6162b9d0ca2b2016ff02781d84905f712d64c7a81d01b0df88f977832f310 > > >> >>> >> >> >> downloaded metadata file looks valid... > > >> >>> >> >> >> downloading > > >> >>> >> >> >> > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> > > > https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.0.3-1.x86_64.rpm > > >> >>> >> >> >> to file /tmp/install.sh.2830/chef-12.0.3-1.x86_64.rpm > > >> >>> >> >> >> trying wget... > > >> >>> >> >> >> Comparing checksum with sha256sum... > > >> >>> >> >> >> Installing Chef > > >> >>> >> >> >> installing with rpm... > > >> >>> >> >> >> Preparing... > > >> >>> >> >> >> ################################################## > > >> >>> >> >> >> chef > > >> >>> >> >> >> ################################################## > > >> >>> >> >> >> Thank you for installing Chef! > > >> >>> >> >> >> [2015-02-08T17:41:25+00:00] INFO: Forking chef instance > to > > >> >>> >> converge... > > >> >>> >> >> >> [2015-02-08T17:41:25+00:00] INFO: *** Chef 12.0.3 *** > > >> >>> >> >> >> [2015-02-08T17:41:25+00:00] INFO: Chef-client pid: 7023 > > >> >>> >> >> >> [2015-02-08T17:41:28+00:00] INFO:* Client key > > >> >>> /etc/chef/client.pem is > > >> >>> >> >> not > > >> >>> >> >> >> present - registering* > > >> >>> >> >> >> *, error=warning: > > >> /tmp/install.sh.2830/chef-12.0.3-1.x86_64.rpm: > > >> >>> >> Header > > >> >>> >> >> V4 > > >> >>> >> >> >> DSA/SHA1 Signature, key ID 83ef826a: NOKEY* > > >> >>> >> >> >> *, exitStatus=1}* > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> Regards, > > >> >>> >> >> >> Subhadip > > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> > > > ------------------------------------------------------------------------------------------------------------------- > > >> >>> >> >> > > >> >>> >> > > >> >>> > > >> >> > > >> >> > > >> > > > >> > > > > > > > > >