Credenciais e Repositórios

O uso de credenciais para obter acesso a repositórios e outros recursos é fundamental no Jenkins. Felizmente o Jenkins faz um controle centralizado de credenciais que podem ser referenciados em diversos jobs. Esta seção tem como objetivo cobrir os basico sobre como fazer e usar uma credencial de acesso a um repositório para que o Jenkins tenha acesso ao código fonte de seu projeto.

Criar uma credencial

Alguns itens são necessários para que se configure corretamente as credenciais de acesso a um respositório(Github, Bitbucket entre outros), o mínimo que você tem que garantir são as credenciais de um usuário que tenha acesso de leitura ao respositório em questão, você vai precisar também configurar uma chave pública e privada para sua conta github ou gitbucket para fazer acesso via SSH. Uma boa ideia seria criar uma conta de usuário no github ou gitbucket que represente o Jenkins e colocar ele com acesso somente de leitura no seus projetos para separação de tarefas.

Para criar uma autenticação utilizando o mínimo de configuração, logado como administrador clique em credentials (em geral o último item do menu à esquerda). Log em seguida acesse:

credentials > System > Global credentials

Em seguida clique em Add Credentials no canto superior esquerdo.

Já na tela de criação de autenticação, você verá que existem diversos métodos de autenticação que o Jenkins pode utilizar para ter acesso a um recurso qualquer.

JENKINS_CREDENTIALS

Nossa experiência neste projeto, nos fez concluir que autenticação utilizando username e password não funciona muito bem para serviços como github e bitbucket. Logo demonstraremos aqui como fazer autenticação via chaves SSH.


Atenção!

Para uma maior segurança certifique-se que o seu servidor esteja devidamente protegido antes de continuar com as intruções abaixo. Certifique-se que ele esteja rodando somente na rede interna da sua infraestrutura ou utiliza um proxy com um certificado digital para estabelecer uma conexão segura. Expor o servidor na web sem nenhum certificado digital deixa sua solução vulnerável a ataques de terceiros, e se houver credenciais cadastradas no Jenkins, o potencial de estrago é ainda melhor, pois o invasor poderá utilizar as informações contidas nele para comprometer seus repositórios. Então todo o cuidado é pouco.


Esta é a tela que o Jenkins te apresenta para o cadastro de uma credencial SSH:

JENKINS_CREDENTIALS_2

  • Selecione a opção SSH Username with private key
  • No campo Username insira o nome de usuário que você utiliza para logar no repositório.
  • Em Private Key o Jenkins pede para você inserir a sua chave SSH privada que será utilizada por ele na hora de autenticar. Existem três métodos que você pode fazer isso, sendo o mais simples a opção Enter directly. Selecione esta opção e cole no campo de texto o arquivo de chave primária. (Provavemente se chama id_rsa, e está no diretório, ~/.ssh no seu computador). Mais uma vez, esta é uma informação sensível, então tenha certeza que a sua instância Jenkins esteja devidamente protegida.
  • Preencha o passphrase, este valor é o mesmo que você definiu quando criou sua chave primária.
  • Os dois útimos campos são só para controle interno.
    • Em ID, defina um identificador único que será utilizado pelo Jenkins para referenciar esta credencial.
    • Description é um campo livre que pode ser utilizado para colocar informações adicionais da credencial e não é obrigatório.

Feito isso você já terá criado uma credencial que poderá ser utilizada para clonar repositórios públicos e privados. Repita este processo quantas vezes desejar para cadastrar diversas credenciais para diversos repositórios.

O tópico seguinte aborda sobre o uso e a configuração de um plugin que pode ser muito útil entre jobs de um mesmo projeto: o shared workspace.

Uso Inteligente de espaço com o shared workspace.

Shared workspace é um plugin desenvolvido que muda a forma como os jobs estão organizados no diretório interno do Jenkins. A forma tradicional que o jenkins organiza os arquivos é um novo diretório para cada job. Logo se você separa o build os testes em dois jobs distintos, você acaba replicando os arquivos baixados de forma desnecessária.

O shared workspace vem para ajeitar as coisas. Com ele você especifica um único diretório para ser utilizado por um conjunto de jobs.

  • A instalação do plugin é tranquila e não tem nada de especial. Simplesmente acesse a página de plugins, procure pelo plugin Shared Workspace, instale e reinicie o servidor.

Feito isso acesse a página de configurações gerais do Jenkins. Escolha a opção Configure System, agora é para aparecer uma seção chamada Workspace Sharing.

  • Clique em Add e coloque o nome a URL do repositório desejado nos campos fornecidos. É importante que se utilize uma URL no padrão SSH para que se possa utilizar autenticação via SSH. Feito isso o Jenkins irá criar uma pasta com o nome definido no campo name.

  • Quando você criar um Job novo, o shared workspace cria um dropdown box com os shared workspaces para você escolher.

  • Importante notar que quando o job a ser criado for de build, você deve informar o repositório e escolher uma credencial para que o Jenkins, faça o acesso e baixe os códigos fontes e outros arquivos.

  • Quando você criar outro job, que não seja de build, basta informar o shared workspace para ter acesso aos recursos, sem ter que fornecer respoistórios e credenciais.

results matching ""

    No results matching ""