Como configuro um trabalho do Jenkins para direcionar um servidor específico para implantação?

Como configuro um trabalho do Jenkins para direcionar um servidor específico para implantação?

Estou usando dois servidores CentOS. Não estou usando nenhum repositório de código. No Jenkins, quando clico em "Novo Item", não vejo lugar para entrar no servidor de destino. Espero um local para configurar um servidor de destino para uma determinada compilação (por exemplo, para executar um comando bash ou transferir um arquivo do servidor Jenkins para o servidor de destino). Como o Jenkins é executado como um usuário Jenkins no lado do Linux, ele não pode usar SSH como root. Eu gostaria de ser root e executar um comando após transferir um arquivo do servidor Linux que suporta Jenkins. Eu poderia fazer isso com comandos de shell nativos nas etapas de construção de "Novo item" do Jenkins. Existe um campo de texto livre para tais comandos. Mas não sei como responder interativamente ao desafio da senha.

Onde configuro o servidor de destino de uma determinada implantação?

Posso codificar a senha root no trabalho do Jenkins? Se sim, como faço isso. Não quero instalar o sshpass.

Além de ter o Jenkins principal, quais plug-ins são necessários para implantar arquivos de um servidor Linux para outro servidor Linux?

Responder1

No Jenkins você usa rótulos para definir onde um projeto pode ser construído. Depois de criar um novo item, você verá (na configuração do trabalho) uma caixa de seleção chamada "Restringir onde este projeto pode ser executado". Aqui você pode usar o nome do nó escravo (por exemplo, slave4.mycompany) ou criar um rótulo que seja um contêiner para vários escravos. Uma vez preenchido corretamente, este trabalho sempre será construído no nó escravo fornecido.

Se você precisar de mais funcionalidades do que isso, experimente o plug-in de parâmetro NodeLabel (nodelabelparameter). Você pode instalá-lo em Gerenciar Jenkins > Gerenciar plug-ins > Disponíveis.

Para identificar em qual nó você está durante a construção, você pode, por exemplo, definir manualmente variáveis ​​de ambiente persistentes em ambos os escravos de construção, como por exemplo $SLAVENAME retornando "buildslave1", ou usar o comando "hostname" do linux em seus scripts para identificar o contexto atual e com base nessa saída decida como proceder.

informação relacionada