Como configuro uma tarefa do Jenkins para segmentar um servidor específico para implantar?

0

Estou usando dois servidores CentOS. Eu 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 que um local configure 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 do Jenkins no lado do Linux, ele não pode executar o SSH como root. Eu gostaria de ser root e executar um comando após a transferência de um arquivo do servidor Linux que suporta o Jenkins. Eu poderia fazer isso com comandos de shell nativos nas etapas de criação do "Novo Item" do Jenkins. Existe um campo de texto livre para tais comandos. Mas eu não sei como responder interativamente ao desafio da senha.

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

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

Além de ter o núcleo do Jenkins, quais plugins são necessários para implantar arquivos de um servidor Linux para outro servidor Linux?

    
por Kiran 02.02.2016 / 04:04

1 resposta

0

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 pode-se usar o nome do nó escravo (por exemplo slave4.mycompany) ou criar um label que seja um container para múltiplos slaves. Uma vez preenchido corretamente, este trabalho sempre será construído sobre o nó escravo fornecido.

Se você precisar de mais funcionalidades do que isso, tente o Plug-in do parâmetro NodeLabel (nodelabelparameter). Você pode instalá-lo a partir do Manage Jenkins > Gerenciar plug-ins > Disponível.

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

    
por 10.05.2016 / 19:50