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
>

Reply via email to