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 >> >> -------------------------------------------------------------------------------------------------------------------