fab-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Fab-user] Trouble running ad-hoc commands w/o having to re-enter pa


From: Waldbieser, Carl
Subject: Re: [Fab-user] Trouble running ad-hoc commands w/o having to re-enter password for each host.
Date: Thu, 7 Aug 2014 16:30:29 -0400 (EDT)

Jeff,

I think I traced the problem to a spot in io.py around line 156 in the method 
"loop()".
By the time the statement:

  prompt = _endswith(self.capture, env.sudo_prompt)

is executed, self.capture contains "Sorry, try again.\n".

That may be because if I shell into the server and enter an incorrect password, 
it looks like this:

  address@hidden PROD ~]$ sudo echo "hello"
  [sudo] password for waldbiec: 
  Sorry, try again.
  [sudo] password for waldbiec:
  ^C

Thanks,
Carl

----- Original Message -----
From: "Jeff Forcier" <address@hidden>
To: "Waldbiec" <address@hidden>
Cc: "Fabric Mailing List" <address@hidden>
Sent: Thursday, August 7, 2014 1:17:04 PM
Subject: Re: [Fab-user] Trouble running ad-hoc commands w/o having to re-enter 
password for each host.

Sorry - I made the assumption you had one for non-adhoc tasks, but
yes, it's possible to run without one. So unless you happened to have
a fabfile.py in your $HOME then that's not a factor at all.

Still - I was unable to replicate the problem on my end, so there's
not a lot I can think of from here. If you feel like debugging a bit,
I'd look at the two subroutines in fabric/auth.py (and/or the spots
they are called within fabric/network.py) to see what's going on.

What *should* be happening is your first password entry ends up
calling set_password(), which should then be updating env.password
(and env.passwords, though that's not as important here). The
subsequent connection ought to be calling get_password() and ending up
with that env.password value instead of prompting you.

Best,
Jeff

On Wed, Aug 6, 2014 at 2:47 PM, Waldbieser, Carl <address@hidden> wrote:
> Jeff,
>
> The output was taken verbatim from my workstation.
>
> When you say a fabfile is loaded even when running ad hoc commands-- where
> would it be loaded from?  I believe I ran the fab command from my $HOME.
>
> Thanks,
> Carl
>
>
> Jeff Forcier <address@hidden> wrote:
>
> Hi Carl,
>
> I just took a look and cannot replicate the behavior you described -
> normal password memory works fine for me on all recent versions of
> Fabric. (The other issues I mentioned look like a slightly different
> problem.)
>
> Is there anything in your real world scenario that you omitted for
> brevity earlier? E.g. are you using the parallel features, modifying
> env.passwords, etc? If you can provide your fabfile (it gets loaded
> even when running adhoc commands) that might also help us figure out
> what's going wrong.
>
> Best,
> Jeff
>
> On Tue, Aug 5, 2014 at 11:24 AM, Jeff Forcier <address@hidden> wrote:
>> This sounds like the same issue as
>> https://github.com/fabric/fabric/issues/1130 and I'll add a link to
>> your mail there once it's in the archives. Thanks! Will be digging
>> into things for a bugfix release later this week so this regression
>> should be fixed then.
>>
>> Best,
>> Jeff
>>
>> On Tue, Aug 5, 2014 at 8:16 AM, Waldbieser, Carl <address@hidden>
>> wrote:
>>>
>>> Sometimes, I want to just run an ad-hoc shell command on multiple hosts
>>> that requires elevated privileges.  E.g. I might want to grep a couple logs
>>> that are not world-readable.
>>>
>>>     (fabenv)address@hidden fabrications]$ pip freeze
>>>     Fabric==1.9.0
>>>     ecdsa==0.11
>>>     paramiko==1.14.0
>>>     pycrypto==2.6.1
>>>     wsgiref==0.1.2
>>>     (fabenv)address@hidden fabrications]$ type fab
>>>     fab is hashed
>>> (/home/waldbiec/projects/python/virt_envs/fabenv/bin/fab)
>>>     (fabenv)address@hidden fabrications]$ fab -H ldap4,ldap5 -- sudo echo
>>> 'a test'
>>>     [ldap4] Executing task '<remainder>'
>>>     [ldap4] run: sudo echo a test
>>>     [ldap4] out: [sudo] password for waldbiec:
>>>     [ldap4] out: a test
>>>     [ldap4] out:
>>>
>>>     [ldap5] Executing task '<remainder>'
>>>     [ldap5] run: sudo echo a test
>>>     [ldap5] out: [sudo] password for waldbiec:
>>>     [ldap5] out: a test
>>>     [ldap5] out:
>>>
>>>
>>>     Done.
>>>     Disconnecting from ldap4... done.
>>>     Disconnecting from ldap5... done.
>>>     (fabenv)address@hidden fabrications]$
>>>
>>> So I had to type my password in 2 times, even though it is the same on
>>> each of the 2 servers.  Am I doing something wrong?
>>>
>>> Thanks,
>>> Carl Waldbieser
>>> ITS Systems Programmer
>>> Lafayette College
>>>
>>>
>>> _______________________________________________
>>> Fab-user mailing list
>>> address@hidden
>>> https://lists.nongnu.org/mailman/listinfo/fab-user
>>
>>
>>
>> --
>> Jeff Forcier
>> Unix sysadmin; Python/Ruby engineer
>> http://bitprophet.org
>
>
>
> --
> Jeff Forcier
> Unix sysadmin; Python/Ruby engineer
> http://bitprophet.org



-- 
Jeff Forcier
Unix sysadmin; Python/Ruby engineer
http://bitprophet.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]