in reply to Net::OpenSSH::Parallel with sudo commands
Hello,
Looking at your problem:
# 1 Your @cmd contains sudo, but at sudo sub you are calling sudo, so +you can remove sudo from commands my @cmd = ( "ls /tmp" , "ls /var" , "ls /usr" ); # 2 You can bucle your commands and execute each of them # You need split by space your command, so system won't interpret argu +ments as part of the command: sub sudo { my ($label, $ssh, @cmd) = @_; foreach my $c (@cmd) { $ssh->system({stdin_data => "$sudo_passwords{$label}\n +"}, 'sudo', '-Skp', '', '--', split " ",$c); } }
A while ago, I wrote as_root script which doesn't use sudo, but su , maybe you can get some idea from there:
For parallelize such command I use pdsh
Take a look to ansible project which have sudo support
I think it is best to play with pubkeyauthentication (passwordauthentication for automatic tasks are not good idea).
I hope this help
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Net::OpenSSH::Parallel with sudo commands
by thanos1983 (Parson) on Dec 30, 2014 at 14:24 UTC |