Como dar credenciais aws ao pipeline de Jenkins?

5

Eu tenho a seguinte configuração no meu pipeline jenkins

s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')

O problema é que a função s3Upload não está usando chaves de acesso da AWS que eu armazenei em jenkins

eu empatei com o seguinte código

    withAWS(profile:'Test Publisher') {
    s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')

}

meu perfil s3 em jenkins é assim. Ainda estou recebendo arquivo de perfil não foi possível encontrar erro. Como posso fazer o upload do arquivo de jenkins para s3 usando a função s3Upload?

    
por messi fan 17.11.2017 / 05:13

2 respostas

3

Para poder enviar para o S3, você precisa salvar suas credenciais em variáveis de ambiente no seu Jenkins:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Para fazer isso, basta ir para Jenkins - Gerenciar Jenkins - Configurar Sistema - Propriedades globais - Variáveis de ambiente

    
por 04.12.2017 / 17:29
1

Acho que você pode ter confundido o plug-in S3 Publisher com o plug-in da AWS.

Essa captura de tela é do plug-in S3 Publisher, link . Há um aviso para não atualizar para a versão mais recente. Parece que a compatibilidade para o pipeline está quebrada, há este aviso "Versão 0.10.11 (31 de dezembro de 2016) - não atualize - a compatibilidade com versões anteriores de scripts de pipeline está quebrada".

No entanto, parece que o código do seu pipeline é para o plug-in do Jenkins AWS. link . Para usar credenciais com esse plug-in, você deve seguir um destes procedimentos:

  1. chave de acesso da loja, chave secreta na credencial do Jenkins.
  2. leia o arquivo de configuração do AWS da Jenkins.

Estas opções estão documentadas no plugin README link

Use Jenkins UsernamePassword credentials information (Username: AccessKeyId, Password: SecretAccessKey):    
withAWS(credentials:'nameOfSystemCredentials') {
    // do something
}

Use profile information from ~/.aws/config:
withAWS(profile:'myProfile') {
    // do something
}

"perfil" é a seção de perfil do seu arquivo de configuração da AWS. link

Depois, você pode usar o recurso de upload do S3. link

    
por 04.12.2017 / 18:25