I have a EC2 instance running. How can I run commands with
sudo through Jenkins?
When I try
sudo touch /home/ec2-user/foo.bar, I get the following error:
sudo: no tty present and no askpass program specified.
What am I doing wrong?
By default sudo cannot be used without a TTY. In order to do so:
- Disable ‘requiretty’ in sudoers (using visudo)
- This should amount to commenting out ‘Defaults requiretty’ (using visudo)
- Ensure that your user is able to login without entering a password:
- Set ‘NOPASSWD’ in sudoers
- Create the user if the user does not exist
- Set visiblepw – this will allow sudo to work, even if the password entered is displayed
- (required in some cases when echo cannot be disabled).