¿Cómo dar aws credencial a la tubería de jenkins?

10

Tengo la siguiente configuración en mi tubería de jenkins

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

El problema es que la función s3Upload no toma las claves de acceso de AWS que he almacenado en jenkins

até con el siguiente código

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

}

perfil s3

mi perfil s3 en jenkins es así. Todavía estoy obteniendo el archivo de perfil no se pudo encontrar el error. ¿Cómo puedo cargar archivos de jenkins a s3 usando la función s3Upload?

chico de código abierto
fuente

Respuestas:

8

Para poder cargar en S3, debe guardar sus credenciales en las variables de entorno en su Jenkins:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Para hacer eso, solo vaya a Jenkins - Administrar Jenkins - Configurar sistema - Propiedades globales - Variables de entorno

red.avtovo
fuente
4

Creo que puede haber confundido el complemento S3 Publisher con el complemento AWS.

Esa captura de pantalla es del complemento S3 Publisher, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Hay una advertencia de no actualizar a la última versión. Parece que la compatibilidad para la canalización está rota, hay esta advertencia "Versión 0.10.11 (31 de diciembre de 2016) - no actualice - la compatibilidad con versiones anteriores de secuencias de comandos de la tubería está rota".

Sin embargo, parece que su código de canalización es para el complemento Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Para usar credenciales con ese complemento, debe realizar una de las siguientes acciones:

  1. clave de acceso a la tienda, clave secreta en la tienda de credenciales de Jenkins.
  2. leer del archivo de configuración de AWS de Jenkins.

Estas opciones están documentadas en el complemento 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
}

"perfil" es la sección de perfil de su archivo de configuración de AWS. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Luego puede usar la función de carga S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

Mike Marseglia
fuente
Estoy usando el withAWSpaso y tengo credenciales de AWS con nombre accesskeye ID jenkins. Cuando lo llamo como withAWS(credentials:'jenkins')o como withAWS(credentials:'accesskey')sigo golpeando esta excepción. Las credenciales se ven bien en mi consola Jenkins mgmt (hay un registro que dice que se utilizó por última vez con éxito recientemente). ¿Qué me podría estar perdiendo?
scorpiodawg
1
@scorpiodawg su pregunta suena un poco diferente a la original. ¿Podría comenzar una nueva pregunta con tanta información como sea posible?
Mike Marseglia
Lo pregunté aquí: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg