Pulled the code from RunScriptCommand as an example, and I think I'm good in that respect.
I'm having issues with runScriptOnNodesMatching() when I want to only run the script on 1 node in the group. I have the node Id of the target node, but not sure how to create a predicate that just targets one node based on the Id. NodePredicates.withIds() returns a Predicate<ComputeMetadata>, but runScriptOnNodesMatching takes a Predicate<NodeMetadata>. The jclouds wiki states "Individual commands are executed against a specific node's id", but that doesnt really explain how to do this. On Wed, Jun 15, 2011 at 1:21 PM, Andrei Savu <savu.and...@gmail.com> wrote: > Take a look at the RunScriptCommand class. > > You need to call the function somehow like this: > > StatementBuilder builder = new StatementBuilder(); > builder.addStatements( > Statements.appendFile("/tmp/my.cfg", lines), > exec(getFileContent(scriptPath)) > ); > controller.runScriptOnNodesMatching( > spec, condition, builder) > > -- Andrei > > On Wed, Jun 15, 2011 at 8:38 PM, John Conwell <j...@iamjohn.me> wrote: > > I looked at computeService.runScriptOnNodesMatching a while ago and > couldnt > > make much sense on how to use the API correctly (for uploading a script > and > > running it). Is there a good unit tests that shows how to do this? > > > > On Tue, Jun 14, 2011 at 2:03 AM, Andrei Savu <savu.and...@gmail.com> > wrote: > >> > >> You could also try to use computeService.runScriptOnNodesMatching and > >> upload the file using an AppendFile jclouds statement together with > >> the credentials from the cluster spec file. > >> > >> This approach is similar to what RunScriptCommand is doing. > >> > >> -- Andrei Savu / andreisavu.ro > >> > >> On Mon, Jun 13, 2011 at 11:16 PM, John Conwell <j...@iamjohn.me> wrote: > >> > the AMI is us-east-1/ami-da0cf8b3 > >> > and OS is the default that whirr installs, Ubuntu 10.4 my thinks. > >> > > >> > On Mon, Jun 13, 2011 at 1:13 PM, Andrei Savu <savu.and...@gmail.com> > >> > wrote: > >> >> > >> >> That should work. What ami, OS are you using? > >> >> > >> >> On Jun 13, 2011 10:22 PM, "John Conwell" <j...@iamjohn.me> wrote: > >> >> > which user. Whirr creates a user called "ubuntu", and it also > creates > >> >> > a > >> >> > user that is specified via whirr.cluster-user. I tried the user > that > >> >> > is > >> >> > specified via whirr.cluster-user and that didnt work > >> >> > > >> >> > On Mon, Jun 13, 2011 at 12:16 PM, Andrei Savu < > savu.and...@gmail.com> > >> >> > wrote: > >> >> > > >> >> >> The user created by Whirr should be able to do sudo without > >> >> >> requesting > >> >> >> a > >> >> >> password. > >> >> >> On Jun 13, 2011 8:55 PM, "John Conwell" <j...@iamjohn.me> wrote: > >> >> >> > I've got a cluster that gets started by Whirr. After its > running, > >> >> >> > I > >> >> >> > need > >> >> >> to > >> >> >> > create a config file and copy it up to a specific folder on the > >> >> >> > VM. > >> >> >> > I'm > >> >> >> > using the class.method SshClient.put() to copy the file up to > the > >> >> >> > /tmp > >> >> >> > directory on my VM with no security issues. But then I need to > >> >> >> > copy > >> >> >> > the > >> >> >> > file to a different folder, via SshClient.exec method. But the > cp > >> >> >> > command > >> >> >> > requires sudo because the user whirr created for me doesn't have > >> >> >> > privs to > >> >> >> > copy to the required folder. Also, I cant specify a password > with > >> >> >> > the > >> >> >> sudo > >> >> >> > command because the connection was made using x509 certificates. > >> >> >> > > >> >> >> > So how can I execute remote ssh commands that require sudo > privs? > >> >> >> > > >> >> >> > -- > >> >> >> > > >> >> >> > Thanks, > >> >> >> > John C > >> >> >> > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > > >> >> > Thanks, > >> >> > John C > >> > > >> > > >> > > >> > -- > >> > > >> > Thanks, > >> > John C > >> > > > > > > > > > -- > > > > Thanks, > > John C > > > -- Thanks, John C