Jamis-
That is a nice way to handle the required input by passwd, but it doesn't
quite get me where I want to go, because I will have to type the new
password n times. Is there a way to prompt once and capture, then just send
the captured output through the data channel for subsequent requests?


Jerod Santo
http://jerodsanto.net


On Tue, Feb 10, 2009 at 10:43 AM, Jamis Buck <[email protected]> wrote:

>
> Here's how I've done that in the past:
>
>  run "passwd", :pty => true do |ch, stream, data|
>    if data =~ /Enter new UNIX password:/
>      ch.send_data(Capistrano::CLI.password_prompt(
>        "New root password: ") + "\n")
>    elsif data =~ /Retype new UNIX password:/
>      ch.send_data(Capistrano::CLI.password_prompt(
>        "Retype new root password: ") + "\n")
>    else
>      Capistrano::Configuration.default_io_proc.call(ch, stream, data)
>    end
>  end
>
> Here's a pastie, if the above didn't get formatted well by your email
> client:
>
>  http://pastie.org/385103
>
> - Jamis
>
> On 2/10/09 9:39 AM, sant0sk1 wrote:
> > A use case:
> >
> > There are n debian servers being managed on a LAN and the admin wants
> > to synchronize their root user's password using Capistrano. The user
> > wants to execute something like: cap ROLES=debian set_root_pw. The
> > user is then prompted for the new password one time (with
> > confirmation) and the password is changed on all n machines.
> >
> > I'd like to implement something like this but I can't seem to find a
> > non-interactive 'passwd' method. Are there other ways to get this
> > done? One thought is to generate the hashed password locally and have
> > Cap edit the /etc/shadow files of all the remote hosts. Not sure if
> > that would work with salting and whatnot. Any other ideas of how to
> > get this done?
> >
> > Thanks guys. Love Cap!
> > >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to