Làm thế nào cung cấp thông tin aws cho đường ống jenkins?


10

Tôi có cấu hình sau trong đường ống jenkins của tôi

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

Vấn đề là chức năng s3Upload không lấy các khóa truy cập AWS mà tôi đã lưu trữ trong jenkins

tôi gắn với mã sau

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

}

hồ sơ s3

hồ sơ s3 của tôi trong jenkins là như thế. vẫn đang nhận được tập tin hồ sơ không thể tìm thấy lỗi. Làm cách nào tôi có thể tải tệp từ jenkins lên s3 bằng chức năng s3Upload?

Câu trả lời:


8

Để có thể tải lên S3, bạn cần lưu thông tin đăng nhập của mình vào các biến môi trường trên Jenkins:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Để làm điều đó, chỉ cần truy cập Jenkins - Manage Jenkins - Cấu hình hệ thống - Thuộc tính toàn cầu - Biến môi trường


4

Tôi nghĩ rằng bạn có thể đã nhầm lẫn plugin Nhà xuất bản S3 với plugin AWS.

Ảnh chụp màn hình đó là từ plugin Nhà xuất bản S3, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Có một cảnh báo không cập nhật lên phiên bản mới nhất. Có vẻ như khả năng tương thích cho đường ống bị hỏng, có cảnh báo này "Phiên bản 0.10.11 (ngày 31 tháng 12 năm 2016) - không cập nhật - khả năng tương thích ngược cho các tập lệnh đường ống bị hỏng".

Tuy nhiên, có vẻ như mã đường ống của bạn là dành cho plugin Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Để sử dụng thông tin đăng nhập với plugin đó, bạn phải thực hiện một trong các cách sau:

  1. lưu trữ khóa truy cập, khóa bí mật trong cửa hàng thông tin Jenkins.
  2. đọc từ tập tin cấu hình AWS của Jenkins.

Các tùy chọn này được ghi lại trong 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
}

"hồ sơ" là phần hồ sơ của tệp cấu hình AWS của bạn. http://docs.aws.amazon.com/cli/latest/userguide/cli-multipl-profiles.html

Sau đó, bạn có thể sử dụng tính năng tải lên S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload


Tôi đang sử dụng withAWSbước này và có thông tin xác thực AWS với tên accesskeyvà ID jenkins. Khi tôi gọi nó là withAWS(credentials:'jenkins')hoặc như withAWS(credentials:'accesskey')tôi tiếp tục nhấn ngoại lệ này. Thông tin đăng nhập có vẻ tốt trên bảng điều khiển mgmt Jenkins của tôi (có một nhật ký cho biết lần cuối được sử dụng thành công trong thời gian gần đây). Tôi có thể thiếu gì?
scorpiodawg

1
@scorpiodawg câu hỏi của bạn nghe hơi khác so với bản gốc. Bạn có thể bắt đầu một câu hỏi mới với càng nhiều thông tin càng tốt?
Mike Brussglia

Tôi đã hỏi điều này ở đây: serverfault.com/questions/958350/ Khăn @ mike-marseglia
scorpiodawg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.