web-dev-qa-db-fra.com

Comment donner des informations AWS au pipeline Jenkins?

J'ai la configuration suivante dans mon pipeline jenkins

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

Le problème est que la fonction s3Upload ne prend pas les clés d'accès AWS que j'ai stockées dans Jenkins

j'ai attaché avec le code suivant

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

}

s3 profile

mon profil s3 dans jenkins est comme ça. je reçois toujours le fichier de profil n'a pas pu trouver d'erreur. Comment puis-je télécharger un fichier de jenkins vers s3 en utilisant la fonction s3Upload?

10
open source guy

Pour pouvoir télécharger vers S3, vous devez enregistrer vos informations d'identification dans des variables d'environnement sur votre Jenkins:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Pour ce faire, allez simplement dans Jenkins - Gérer Jenkins - Configurer le système - Propriétés globales - Variables d'environnement

8
red.avtovo

Je pense que vous avez peut-être confondu le plugin S3 Publisher avec le plugin AWS.

Cette capture d'écran provient du plugin S3 Publisher, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Il y a un avertissement de ne pas mettre à jour vers la dernière version. Il semble que la compatibilité avec le pipeline soit rompue, il y a cet avertissement "Version 0.10.11 (31 décembre 2016) - ne pas mettre à jour - la compatibilité descendante des scripts de pipeline est rompue".

Cependant, il semble que votre code de pipeline soit destiné au plugin Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Pour utiliser les informations d'identification avec ce plugin, vous devez effectuer l'une des opérations suivantes:

  1. stocker la clé d'accès, la clé secrète dans le magasin d'informations d'identification Jenkins.
  2. lire à partir du fichier de configuration AWS de Jenkins.

Ces options sont documentées dans le plugin 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
}

"profil" est la section de profil de votre fichier de configuration AWS. http://docs.aws.Amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Ensuite, vous pouvez utiliser la fonction de téléchargement S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

4
Mike Marseglia