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

Reply via email to