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

Reply via email to