通过 Jenkins 以 root 身份运行 shell 脚本

whi*_*win 5 amazon-ec2 jenkins

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

我究竟做错了什么?

cyb*_*x86 9

默认情况下 sudo 不能在没有 TTY 的情况下使用。为此:

  • 在 sudoers 中禁用“requiretty”(使用 visudo)
    • 这应该相当于注释掉“默认要求”(使用 visudo)

  • 确保您的用户无需输入密码即可登录:
    • 在 sudoers 中设置“NOPASSWD”
    • 如果用户不存在则创建用户

  • 设置 visiblepw - 这将允许 sudo 工作,即使显示输入的密码
    • (在某些情况下无法禁用回声时需要)。