Como dar credencial aws ao pipeline de jenkins?

10

Tenho a seguinte configuração no meu pipeline de jenkins

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

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

eu amarrei com o seguinte código

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

}

perfil s3

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

cara de código aberto
fonte

Respostas:

8

Para poder fazer o upload para o S3, você precisa salvar suas credenciais nas 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 acessar Jenkins - Gerenciar Jenkins - Configurar sistema - Propriedades globais - Variáveis ​​de ambiente

red.avtovo
fonte
4

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, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Há um aviso para não atualizar para a versão mais recente. Parece que a compatibilidade do pipeline está quebrada, existe este aviso "Versão 0.10.11 (31 de dezembro de 2016) - não atualize - a compatibilidade com versões anteriores dos scripts do pipeline está quebrada".

No entanto, parece que seu código de pipeline é para o plugin Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Para usar credenciais com esse plug-in, siga um destes procedimentos:

  1. chave de acesso à loja, chave secreta no armazenamento de credenciais Jenkins.
  2. leia do arquivo de configuração da AWS de Jenkins.

Essas opções estão documentadas no plug-in README https://github.com/jenkinsci/pipeline-aws-plugin

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
}

"profile" é a seção de perfil do seu arquivo de configuração da AWS. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Então você pode usar o recurso de upload do S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

Mike Marseglia
fonte
Estou usando a withAWSetapa e tenho credenciais da AWS com nome accesskeye ID jenkins. Quando eu chamo como withAWS(credentials:'jenkins')ou withAWS(credentials:'accesskey')continuo pressionando essa exceção. As credenciais ficam bem no meu console Jenkins mgmt (há um log dizendo pela última vez usado com êxito recentemente). O que eu poderia estar perdendo?
Scorpiodawg 13/03/19
1
@scorpiodawg sua pergunta soa um pouco diferente da original. Você poderia iniciar uma nova pergunta com o máximo de informações possível?
Mike Marseglia 14/03/19
Eu perguntei isso aqui: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg