A Vagrant plugin that disables requiretty on Linux guests. We've all seen it
before. The dreaded "you must have a tty to run sudo" error:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
Stderr from the command:
sudo: sorry, you must have a tty to run sudo
Simply install this plugin and it will attempt to make that error disappear by
hooking into the Vagrant startup sequence and sanitizing /etc/sudoers before
other commands run.
To install, simply run:
vagrant plugin install vagrant-norequiretty
Everything else should start happening automagically™.
This error is caused by many VM templates and default installations requiring
a TTY to use sudo due to concerns about echoing plaintext passwords in the
clear. For many cases,
this requirement is questionable:
Well, I know how to work around this.
But nobody has yet explained why I have to.
The problem is not that it's annoying, the problem is that it's annoying for no value. The case that it was supposed to handle is handled just fine without it.
So let me re-state the cons of this:
- it adds no security
- it breaks valid usage
- it diverges from the upstream
I see no pros. Do you?
This Vagrant plugin hooks into startup actions for VirtualBox, vSphere, VMware
Desktop, and OpenStack providers by running a sed command to purge the
requiretty setting from /etc/sudoers before provisioners, synced folders
and networking actions are executed.
Support for additional providers coming soon.