Executa scripts de shell como root, embora Jenkins

5

Eu tenho uma instância do EC2 em execução. Como posso executar comandos com sudo através do Jenkins? Quando tento sudo touch /home/ec2-user/foo.bar , recebo o seguinte erro: sudo: no tty present and no askpass program specified .

O que estou fazendo de errado?

    
por whirlwin 14.02.2012 / 16:59

1 resposta

9

Por padrão, o sudo não pode ser usado sem um TTY. Para fazer isso:

  • Desativar 'requiretty' em sudoers (usando visudo)
    • Isso deve equivaler a comentar 'Padrões requiretty' (usando visudo)

  • Certifique-se de que seu usuário possa efetuar login sem inserir uma senha:
    • Defina 'NOPASSWD' em sudoers
    • Crie o usuário se o usuário não existir

  • Definir visiblepw - isso permitirá que o sudo funcione, mesmo que a senha digitada seja exibida
    • (necessário em alguns casos, quando o eco não pode ser desativado).
por 14.02.2012 / 22:31