
Estou usando Jenkins para CI. Preciso conseguir extrair um arquivo de um bucket S3. Dentro do trabalho do jenkins eu faço o seguinte diagnóstico no shell do jenkins:
cd ~
isso me leva para /var/lib/jenkins
whoami
isso retorna o usuário jenkins
dentro de /var/lib/jenkins eu tenho minha pasta .aws com o arquivo de configuração e credenciais, mas quando executo
aws configure list
Eu entendi isso:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
Não há nada lá, embora eu tenha a pasta .aws e as informações corretas nesses dois arquivos. Originalmente, tentei colocar a pasta .aws em /home/jenkins, mas também não funcionou.
Então, como faço para que o Jenkins realmente funcione com o aws cli?
Responder1
Você pode exportar as credenciais como variáveis ambientais:
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
Verhttp://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.htmlPara maiores informações. Dependendo de como você está usando o Jenkins, você pode querer usar oPlug-in EvnInject
Responder2
Este método funcionou para mim:
- Crie um diretório
/var/lib/jenkins
chamado .aws (ou copie a pasta .aws do diretório inicial se você já configurou suas credenciais do aws por meio do comando "aws configure") - Em seguida, vá até
/var/lib/jenkins/.aws
e escrevasudo shown -R jenkins ./
para alterar o proprietário dos arquivos no diretório .aws.
Responder3
Atualize suas credenciais do aws no bash do servidor jenkins. Execute os comandos abaixo:
# sudo -su jenkins
# aws configure
Link de referência:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html
Responder4
Se você estiver vendo esse problema na rede corporativa ao usar a função de instância, certifique-se de que as configurações de proxy estejam corretas.