Tudo bem ter um servidor Jenkins sem nó escravo?

9

Na minha equipe , temos um servidor Jenkins com um nó mestre e um nó escravo no mesmo servidor. Usamos os pipelines Jenkins e cercamos tudo node{}.

Na equipe de um colega, vi que, por algum motivo, eles têm um nó mestre e nenhum nó escravo . Todas as suas construções são executadas no nó principal.

Questões:

  • Esta é uma prática ruim?
  • Há consequências ruins por ter apenas um nó mestre?
  • Minha configuração (um mestre e um escravo) é uma má prática?
Oscar Foley
fonte

Respostas:

12

https://wiki.jenkins.io/display/JENKINS/Jenkins+Best+Practices

Em sistemas maiores, não construa sobre o mestre.

Se você tiver uma configuração de segurança mais complexa que permita que alguns usuários configurem apenas tarefas, mas não administrem o Jenkins, será necessário impedir que eles executem construções no nó mestre, caso contrário, eles terão acesso irrestrito ao diretório JENKINS_HOME. Você pode fazer isso definindo a contagem do executor como zero. Em vez disso, verifique se todos os trabalhos são executados em escravos. Isso garante que o jenkins master possa ser dimensionado para oferecer suporte a muitos outros trabalhos, além de proteger as construções contra a modificação de dados potencialmente sensíveis no $ JENKINS_HOME acidental / maliciosamente. Se você precisar que alguns trabalhos sejam executados no mestre (por exemplo, backups do próprio Jenkins), use o Plug-in de Restrições de Trabalhos para limitar quais trabalhos podem ser executados lá.


Um nó principal e nenhum nó escravo. Todas as suas construções são executadas no nó principal. Esta é uma prática ruim?

A execução das tarefas nos nós principais significa que elas têm acesso irrestrito ao diretório JENKINS_HOME

Há consequências ruins por ter apenas um nó mestre?

Como os escravos têm acesso irrestrito ao diretório JENKINS_HOME, isso pode ser perigoso

Minha configuração (um mestre e um escravo) é uma má prática?

É melhor do que apenas um mestre, desde que todos os trabalhos sejam executados nos escravos


Em resumo, de uma perspectiva de segurança, é uma prática ruim executar os trabalhos no mestre.

030
fonte
5

Existem algumas situações em que a execução de tarefas no nó mestre é boa, mas é preciso ter cuidado. Como a outra resposta mencionada, geralmente a execução de trabalhos no mestre é uma prática recomendada, pois os trabalhos não estão em área restrita no nó mestre.

Dito isto, às vezes você deseja executar tarefas no nó principal. Por exemplo, dois dos trabalhos na minha instalação do Jenkins são:

  • encontre trabalhos cujas dependências tenham sido atualizadas e agende compilações para eles nas novas versões das dependências
  • encontre solicitações de recebimento aberto que ainda não foram criadas e agende compilações para elas

Eu (como o administrador do Jenkins) estou no controle total desses trabalhos, nenhum desses trabalhos em particular toca em nenhum arquivo no disco (são essencialmente trabalhos "meta"), quero que eles sejam executados mesmo quando todos os slots do executor meus escravos estão ocupados, e eu preferiria que esses trabalhos não bloqueiem trabalhos mais importantes na fila. Por esses motivos, permito que esses dois trabalhos - e somente esses dois trabalhos - sejam executados no nó mestre.

jayhendren
fonte