Re: Execute a cmd via jclouds SshClient that requires sudo privs on VM started by Whirr

2011-06-16 Thread Tom White
You could write your own predicate that does a cast. See
ClusterController.runningInGroup() for something similar.

Cheers,
Tom

On Thu, Jun 16, 2011 at 9:47 AM, John Conwell j...@iamjohn.me wrote:
 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 PredicateComputeMetadata,
 but runScriptOnNodesMatching takes a PredicateNodeMetadata.
 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



Re: Execute a cmd via jclouds SshClient that requires sudo privs on VM started by Whirr

2011-06-14 Thread Andrei Savu
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



Re: Execute a cmd via jclouds SshClient that requires sudo privs on VM started by Whirr

2011-06-13 Thread John Conwell
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