Hi Lewis, I would recommend you use the portable abstraction, as it provides the "runScriptOnNode" methods that will make very easy to run scripts (and Chef) on the nodes. You don't have to provision the nodes using the abstraction; the only thing you need to call the runScript methods is the node id, so you should be able to use it with your current code.
Back to your questions: > 1. Does Chef need to be installed on every single machine? If so, how do I > do this? No. When you generate the bootstrap script using the methods in the ChefService as described in the Chef guide, the resulting statement will already contain the instructions to install Chef if it is not yet installed on the node. > 2. Is it possible to combine JClouds Rackspace orchestration with the Chef > Server API? Absolutely. Both APIs are independent. The only integration point is that the ChefService provides a simple helper method to generate a Statement the ComputeService understands to run all the configured Chef bootstrap. You can think about it as the "java version of the knife bootstrap' command". > 3. Should I be combining the JClouds compute portable API with the Chef API > to bootstrap nodes (as per [2]) instead of using the code I've already > written? I think this is already answered now :) HTH! I.
