Executando um script por meio de jenkins [closed]

1

Eu preciso executar um script por meio de jenkins, o script está localizado, em um diretório inicial de x do usuário, /home/x/script.sh

Esse script só deve ser executado pelo usuário x, pois ele extrairá as configurações da pasta .ssh .

Atualmente, o script está falhando, pois acredito que está sendo executado através de jenkins user.

    
por Mohd 14.12.2017 / 06:52

1 resposta

0

Você está operando com objetivos cruzados com você mesmo. Seu script depende de credenciais específicas do usuário, mas o Jenkins é projetado para isolar sua compilação de credenciais e configurações específicas do usuário. Existem quatro maneiras de resolver esse conflito (que podem ter implicações de segurança, prossiga com cuidado):

  1. Conceda credenciais para a Jenkins fazer o trabalho. (dar-lhe chaves ssh) isso tem a vantagem de que as ações tomadas por jenkins são registradas como jenkins não como um desenvolvedor e que você pode limitar as permissões que os jenkins têm para agir (por exemplo, comandos forçados ssh são úteis aqui). A desvantagem é que, como o jenkins é um usuário compartilhado, é mais fácil que suas credenciais vazem.

  2. alterne usuários pela duração do script. (isso é o que você está fazendo com a sua solução) além do runuser olhar para sudo e super. (Eu prefiro super para este caso de uso.) A vantagem é que a resolução de problemas é mais fácil, pois o script é executado como o mesmo usuário que o escreveu. As desvantagens são que ações executadas por Jenkins como o usuário serão culpadas pelo usuário e que isso pode tornar mais fácil comprometer a conta do usuário. (isto pode ser mitigado por permissões apertadas em sudo ou super para o usuário jenkins e não confiando em nada passado de jenkins para o usuário. perl documenta o problema bem na documentação sobre a mancha)

  3. crie um servidor para executar o script. CGI, rpc etc.

  4. repensem a coisa toda. Pode haver uma maneira de fazer o que é necessário sem credenciais.

por 14.12.2017 / 16:33

Tags