Bagaimana memberikan kredensial aws ke pipa jenkins?

10

Saya memiliki konfigurasi berikut dalam pipa jenkins saya

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

Masalahnya adalah fungsi s3Upload tidak mengambil kunci akses AWS yang saya simpan di jenkins

saya terikat dengan kode berikut

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

}

profil s3

profil s3 saya di jenkins seperti itu. masih mendapatkan file profil tidak dapat menemukan kesalahan. Bagaimana saya bisa mengunggah file dari jenkins ke s3 menggunakan fungsi s3Upload?

pria sumber terbuka
sumber

Jawaban:

8

Agar dapat mengunggah ke S3, Anda perlu menyimpan kredensial Anda dalam variabel lingkungan di Jenkins Anda:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Untuk melakukannya, cukup buka Jenkins - Kelola Jenkins - Konfigurasikan Sistem - Properti global - Variabel lingkungan

red.avtovo
sumber
4

Saya pikir Anda mungkin bingung dengan plugin S3 Publisher dengan plugin AWS.

Tangkapan layar itu dari plugin S3 Publisher, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Ada peringatan untuk tidak memperbarui ke versi terbaru. Sepertinya kompatibilitas untuk pipeline rusak, ada peringatan ini "Versi 0.10.11 (31 Des 2016) - jangan perbarui - kompatibilitas mundur untuk skrip pipeline rusak".

Namun, sepertinya kode pipa Anda adalah untuk plugin Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Untuk menggunakan kredensial dengan plugin itu, Anda harus melakukan salah satu dari yang berikut:

  1. kunci akses toko, kunci rahasia di toko kredensial Jenkins.
  2. baca dari file konfigurasi AWS Jenkins.

Opsi-opsi ini didokumentasikan dalam 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" adalah bagian profil dari file konfigurasi AWS Anda. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Kemudian Anda dapat menggunakan fitur unggah S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

Mike Marseglia
sumber
Saya menggunakan withAWSlangkah dan memiliki kredensial AWS dengan nama accesskeydan ID jenkins. Ketika saya menyebutnya sebagai withAWS(credentials:'jenkins')atau sebagai withAWS(credentials:'accesskey')saya terus memukul pengecualian ini. Kredensial terlihat bagus per konsol mgmt Jenkins saya (ada log yang mengatakan berhasil digunakan terakhir kali dengan waktu terakhir). Apa yang bisa saya lewatkan?
scorpiodawg
1
@scorpiodawg pertanyaan Anda terdengar sedikit berbeda dari aslinya. Bisakah Anda memulai pertanyaan baru dengan info sebanyak mungkin?
Mike Marseglia
Saya menanyakan hal ini di sini: serverfault.com/questions/958350/... @ mike-marseglia
scorpiodawg