ให้ข้อมูลรับรอง aws กับท่อส่งเจนกินส์ได้อย่างไร


10

ฉันมีการกำหนดค่าต่อไปนี้ในท่อส่งเจนกินส์

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

ปัญหาคือฟังก์ชั่น s3Upload ไม่ใช้คีย์การเข้าถึง AWS ที่ฉันเก็บไว้ในเจนกินส์

ฉันผูกด้วยรหัสต่อไปนี้

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

}

โปรไฟล์ S3

โปรไฟล์ s3 ของฉันในเจนกินส์เป็นเช่นนั้น ยังคงได้รับไฟล์โปรไฟล์ไม่สามารถหาข้อผิดพลาด ฉันจะอัพโหลดไฟล์จากเจนกินส์ไปยัง s3 โดยใช้ฟังก์ชั่น s3Upload ได้อย่างไร

คำตอบ:


8

เพื่อให้สามารถอัพโหลดไปยัง S3 คุณต้องบันทึกข้อมูลรับรองของคุณในตัวแปรสภาพแวดล้อมใน Jenkins ของคุณ:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

หากต้องการทำเช่นนั้นเพียงไปที่เจนกินส์ - จัดการเจนกินส์ - กำหนดค่าระบบ - คุณสมบัติทั่วโลก - ตัวแปรสภาพแวดล้อม


4

ฉันคิดว่าคุณอาจสับสนปลั๊กอิน S3 Publisher กับปลั๊กอิน AWS

ภาพหน้าจอที่มาจากปลั๊กอิน S3 สำนักพิมพ์https://wiki.jenkins.io/display/JENKINS/S3+Plugin มีคำเตือนไม่ให้อัพเดทเป็นเวอร์ชั่นล่าสุด ดูเหมือนความเข้ากันได้สำหรับไปป์ไลน์จะมีคำเตือน "เวอร์ชั่น 0.10.11 (31 ธ.ค. 2016) - อย่าอัปเดต - ความเข้ากันได้แบบย้อนหลังสำหรับสคริปต์ไพพ์ไลน์เสีย"

อย่างไรก็ตามดูเหมือนว่ารหัสไปป์ของคุณนั้นมีไว้สำหรับปลั๊กอิน Jenkins AWS https://github.com/jenkinsci/pipeline-aws-plugin ในการใช้ข้อมูลประจำตัวกับปลั๊กอินนั้นคุณต้องทำอย่างใดอย่างหนึ่งต่อไปนี้:

  1. รหัสการเข้าถึงสำหรับร้านค้า, รหัสลับในร้านหนังสือรับรองของเจนกินส์
  2. อ่านจากไฟล์กำหนดค่า AWS ของเจนกินส์

ตัวเลือกเหล่านี้ได้รับการบันทึกไว้ในปลั๊กอิน 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
}

"profile" เป็นส่วนกำหนดค่าของไฟล์กำหนดค่า AWS ของคุณ http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

จากนั้นคุณสามารถใช้คุณสมบัติการอัพโหลด S3 https://github.com/jenkinsci/pipeline-aws-plugin#s3upload


ฉันใช้withAWSขั้นตอนและมีข้อมูลประจำตัว AWS ที่มีชื่อและรหัสaccesskey jenkinsเมื่อฉันเรียกมันว่าเป็นwithAWS(credentials:'jenkins')หรือเป็นwithAWS(credentials:'accesskey')ฉันกดปุ่มข้อยกเว้นนี้ ข้อมูลรับรองดูดีต่อคอนโซล mgmt ของ Jenkins ของฉัน (มีบันทึกว่ามีการใช้งานครั้งล่าสุดสำเร็จเมื่อไม่นานมานี้) ฉันจะพลาดอะไรได้บ้าง
scorpiodawg

1
@scorpiodawg คำถามของคุณฟังดูแตกต่างจากของจริงเล็กน้อย คุณสามารถเริ่มคำถามใหม่ด้วยข้อมูลให้มากที่สุดได้ไหม
Mike Marseglia

ฉันถามสิ่งนี้ที่นี่: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.