Comment donner des informations AWS au pipeline Jenkins?

10

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')

}

profil s3

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?

gars open source
la source

Réponses:

8

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

red.avtovo
la source
4

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

Mike Marseglia
la source
J'utilise l' withAWSétape et j'ai des informations d'identification AWS avec le nom accesskeyet l'ID jenkins. Quand je l' appelle comme withAWS(credentials:'jenkins')ou withAWS(credentials:'accesskey')je continue à frapper cette exception. Les informations d'identification semblent bonnes pour ma console Jenkins mgmt (il y a un journal indiquant que la dernière utilisation a été réussie récemment). Que pourrais-je manquer?
scorpiodawg
1
@scorpiodawg, votre question semble un peu différente de l'original. Pourriez-vous commencer une nouvelle question avec autant d'informations que possible?
Mike Marseglia
J'ai posé cette question ici: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg