
Estoy usando Jenkins para CI. Necesito poder extraer un archivo de un depósito S3. Dentro del trabajo de jenkins hago el siguiente diagnóstico desde el shell de jenkins:
cd ~
esto me lleva a /var/lib/jenkins
whoami
esto devuelve el usuario jenkins
dentro de /var/lib/jenkins tengo mi carpeta .aws con el archivo de configuración y credenciales, pero cuando ejecuto
aws configure list
Entiendo esto:
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
No hay nada allí aunque tengo la carpeta .aws y la información correcta en esos dos archivos. Originalmente intenté colocar la carpeta .aws en /home/jenkins pero tampoco funcionó.
Entonces, ¿cómo consigo que jenkins realmente funcione con aws cli?
Respuesta1
Puede exportar las credenciales como variables ambientales:
$ 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 más información. Dependiendo de cómo esté usando Jenkins, es posible que desee utilizar elComplemento EvnInject
Respuesta2
Este método funcionó para mi:
- Cree un directorio en
/var/lib/jenkins
el llamado .aws (o copie la carpeta .aws del directorio de inicio si ya configuró sus credenciales de aws mediante el comando "aws configure") - Luego vaya
/var/lib/jenkins/.aws
y escribasudo shown -R jenkins ./
para cambiar el propietario de los archivos en el directorio .aws.
Respuesta3
Actualice amablemente sus credenciales de AWS dentro del bash del servidor jenkins. Ejecute los siguientes comandos:
# sudo -su jenkins
# aws configure
Link de referencia:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html
Respuesta4
Si ve este problema dentro de la red corporativa mientras utiliza la función de instancia, asegúrese de que la configuración del proxy sea correcta.