Aws'e jenkins boru hattına nasıl kimlik bilgileri verilir?


10

Jenkins boru hattımda aşağıdaki yapılandırmaya sahibim

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

Sorun s3Upload işlevi, jenkins'te sakladığım AWS erişim anahtarlarını almıyor

aşağıdaki kod ile bağladım

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

}

s3 profili

jenkins'teki s3 profilim böyle. hala profil dosyası alıyorum hata bulunamadı. S3Upload işlevini kullanarak jenkins'ten s3'e nasıl dosya yükleyebilirim?

Yanıtlar:


8

S3'e yükleyebilmek için, ortam değişkenlerindeki kimlik bilgilerinizi Jenkins'inize kaydetmeniz gerekir:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Bunu yapmak için Jenkins'e gidin - Jenkins'i Yönetin - Sistemi Yapılandır - Global özellikler - Ortam değişkenleri


4

S3 Publisher eklentisini AWS eklentisiyle karıştırmış olabileceğinizi düşünüyorum.

Bu ekran görüntüsü S3 Publisher eklentisi olan https://wiki.jenkins.io/display/JENKINS/S3+Plugin . En son sürüme güncellenmemesi için bir uyarı var. Görünüşe göre boru hattı uyumluluğu bozuldu, "Uyarı 0.10.11 (31 Aralık 2016) - güncelleme yok - boru hattı komut dosyaları için geriye dönük uyumluluk bozuk" uyarısı var.

Ancak, boru hattı kodunuz Jenkins AWS eklentisi için görünüyor. https://github.com/jenkinsci/pipeline-aws-plugin . Bu eklentiyle kimlik bilgilerini kullanmak için aşağıdakilerden birini yapmanız gerekir:

  1. mağaza erişim anahtarı, Jenkins kimlik deposunda gizli anahtar.
  2. Jenkins'in AWS yapılandırma dosyasından okuyun.

Bu seçenekler README eklentisinde belgelenmiştir 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
}

"profile", AWS yapılandırma dosyanızın profil bölümüdür. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Ardından S3 yükleme özelliğini kullanabilirsiniz. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload


withAWSAdım kullanıyorum ve adı accesskeyve kimliği ile AWS kimlik bilgileri var jenkins. Bu istisna olarak withAWS(credentials:'jenkins')ya da böyle adlandırdığımda withAWS(credentials:'accesskey'). Kimlikler Jenkins mgmt konsoluma göre iyi görünüyor (son zamanlarda başarıyla kullanılan son bir günlük var). Ne eksik olabilirim?
scorpiodawg

1
@scorpiodawg sorunuz orijinalinden biraz farklı geliyor. Mümkün olduğunca fazla bilgi içeren yeni bir soru sorabilir misiniz?
Mike Marseglia

Bunu burada sordum: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.