su support

Good Morning Dev List,

I’m just writing to check out your feedback on https://github.com/ansible/ansible/pull/5325, which adds support for su. I ask for a few reasons: there’s an impending release, and because I did a rebase this morning to make sure my code was still mergeable, and of course, there were plenty of conflicts so it wasn’t. :frowning: So there are still active pull requests being merged that are breaking my PR because of logic changes to, in particular, ssh_alt. I know it’s an active project, so I just want to help get my PR right, ready, and 100% functional.

What’s the path forward, and what do you need from me to move forward?

Thanks, guys!

–Paul

There’s not an impending release for some time actually.

1.4 came in November 21, so 1.5 is due towards the end of February.

It will definitely need to be applied atop ssh_alt, though we’re going to be moving in SSH alt within the next week to replace ssh.py

I’d say make sure it overlays across ssh.py when this happens and then we’ll get things tested.

Alright, so you’ve all been very busy working on ssh_alt, and I’m glad you’re done, because I’ve now resolved all the merge conflicts and cleaned up all the mess that git has produced rebasing my changes on top of the new ssh.py. :slight_smile: I hope I got everything, and while I think I have, more testing will certainly need to be done to assert I’ve not introduced any problems. My testing so far looks okay.

This is where we’re at currently:
Hostvars support is there for vars ansible_su, ansible_su_user, ansible_su_pass

Playbook support with su params: su, su_user (and su_pass on tasks, mirroring sudo functionality)
bin/ansible-playbook and bin/ansible have CLI args for su, su-user, and su-pass
Enabling in connection plugins where appropriate and disabling where inappropriate (enabled in ssh, ssh_old, and paramiko, disabled everywhere else).

FYI: su’s disabled everywhere else due to its strict requirement of a tty/pty as input.

Let me know what else I can do!