运行shell脚本虽然jenkins

我有一个EC2实例正在运行。 我怎样才能通过jenkins与sudo运行命令? 当我尝试sudo touch /home/ec2-user/foo.bar ,出现以下错误: sudo: no tty present and no askpass program specified

我究竟做错了什么?

默认情况下,sudo不能在没有TTY的情况下使用。 为了做到这一点:

  • 在sudoers中禁用'requiretty'(使用visudo)
    • 这应该等于说出'Defaults requiretty'(使用visudo)

  • 确保您的用户无需input密码即可login:
    • 在sudoers中设置“NOPASSWD”
    • 如果用户不存在,请创build用户

  • 设置visiblepw – 这将允许sudo工作,即使input的密码显示
    • (在某些情况下,不能禁用回声时需要)。