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?

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


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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.