Feb 14, 2012
tom

Run shell scripts as root though Jenkins

Question

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?

Asked by whirlwin

Answer

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).
Answered by cyberx86

Related posts:

  1. Best way to run remote SSH command requiring root, but not as root
  2. Run application as root without sudo
  3. run a script on remote server
  4. Security concerns about giving the apache user a tty
  5. How to give user root access without giving him root password

Leave a comment