2015-07-14 22 views
14

Tôi nhận được lỗi sau khi tôi thử kích hoạt một xây dựng bằng cách sử dụng lệnh sau:Jenkins kích hoạt từ xa không làm việc

curl http://jenkins_server:port/jenkins/job/job_name/build?token=token_name

Output:

xác thực cần

< - Bạn được xác thực là: anonymous
Các nhóm bạn đang ở :

Permission bạn cần phải có (nhưng không): hudson.model.Hudson.Read
... được ngụ ý bởi: hudson.security.Permission.GenericRead
... được ngụ ý bởi : hudson.model.Hudson.Administer
->

tôi có quyền quản trị và cũng có thể đã kích hoạt 'xác thực Mã'. Tôi cũng có quyền Xây dựng, Khám phá và Đọc về công việc. Tôi đang sử dụng Jenkins 1.614.

Tôi đã kiểm tra một số bài đăng trực tuyến nhưng không thể tìm thấy bất kỳ nội dung nào phù hợp với tôi.

thử vài lựa chọn như
1) curl -X POST http://jenkins_server:port/jenkins/job/job_name/build?token=token_name
2) curl sử dụng -u: API (In một trang HTML dài)

Bất kỳ lời đề nghị.

Trả lời

14

tôi cài đặt Build Mã gốc Plugin để giải quyết vấn đề này trước

01.

https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

Sau đó là như nhau, thiết lập xác thực Mã

Cuối cùng, một trong hai sử dụng curl để kích hoạt từ xa xây dựng (Hãy cẩn thận các ký tự thoát "\")

curl http://JENKINS_URL/buildByToken/build?job=JOB_NAME\&token=TOKEN_NAME

hoặc dán URL tới trình duyệt của bạn (Không cần ký tự thoát "\")

http://JENKINS_URL/buildByToken/build?job=JOB_NAME&token=TOKEN_NAME

Nếu bạn thấy Thành công, điều đó có nghĩa là kích hoạt thành công Jenkins từ xa.

Lưu ý rằng, bạn không cần phải thiết lập xây dựng, khám phá và đọc quyền về việc

Để biết thêm thông tin, bạn có thể tham khảo để https://cloudbees.zendesk.com/hc/en-us/articles/204338790-Why-are-builds-not-being-triggered-with-Build-Token-Root-Plugin-

+0

Tôi thực sự thất vọng khi thử những thứ khác nhau. Tôi chắc rằng tôi đã thấy đề xuất plugin Token Root này trên một số liên kết khác và tôi đã thông báo rằng plugin đã được cài đặt trên hệ thống của tôi nhưng có vẻ như tôi đã bỏ qua cú pháp thời gian đó. :(Trong khi đọc câu trả lời của bạn, bằng cách nào đó, tôi đã nhận thấy cú pháp chính xác.: P Cảm ơn rất nhiều người! :) Khá nhẹ nhõm! :) – Technext

+0

cảm ơn vì đã chỉ ra sự cần thiết của một lối thoát hiểm. đó là mất tích đối với tôi. – OK999

+0

Tôi gặp vấn đề tương tự khi cố gắng tích hợp gitlab và jenkins. Tôi đang sử dụng tính năng inbuild gitlab để kiểm tra kích hoạt đẩy. Mà ném cho tôi lỗi trên. Những gì có thể được thực hiện để giải quyết nó trong trường hợp của tôi –

1

Cài đặt tham số Build Plugin

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

Nếu bạn đang sử dụng một thẻ uỷ quyền để kích hoạt xây dựng (Job -> Configure -> 'Xây dựng Triggers' -> 'Kích hoạt được xây dựng từ xa (ví dụ, từ kịch bản) '), bạn có thể truy cập:

curl -X POST http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

+1

Plugin đã được cài đặt và như tôi đã đề cập trong bài viết của tôi, tôi đã cố gắng cú pháp gợi ý nhưng nó không làm việc. Tôi nhận được lỗi tương tự. – Technext

3

tôi đề nghị bạn thử Jenkins Python API. Nó cung cấp hành động build_job siêu dễ dàng để kích hoạt công việc.

build_job(name, parameters=None, token=None) 
    Trigger build job. 

    Parameters: 
    name – name of job 
    parameters – parameters for job, or None, dict 
    token – Jenkins API token 
+0

Vì đề xuất của JenTing đã làm việc cho tôi, bây giờ, tôi sẽ đi cho điều đó nhưng cảm ơn cho đề xuất của bạn! API này có thể hữu ích đôi khi. :) – Technext

4

Tôi gặp sự cố tương tự sau khi thiết lập máy chủ thử nghiệm Jenkins. Giải pháp là xác thực bằng mật khẩu quản trị Jenkins của tôi:

curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken> 

Sử dụng cùng tên người dùng và mật khẩu bạn sử dụng để đăng nhập vào Jenkins. Không cần phải cài đặt các plugin bổ sung.

6

Tôi nghĩ không cần thiết lập bất kỳ loại plugin để làm cho nó hoạt động, chỉ cần làm BATCH này CMD:

curl -X POST http://USER_ID_JENKINS_RECEIVER:[email protected]_JENKINS_RECEIVER:PORT/job/NAME_OF_JOB/buildWithParameters?token=TOKEN_JOB_JENKINS_RECEIVER 
  • Để xem bạn USER_ID_TOKEN, đi tên người dùng của bạn tại trên cùng bên phải của jenkins> vào Configure> Click vào Token API và nó sẽ được hiển thị.

  • Bạn phải cấu hình một mã thông báo trên JOB_OF_JENKINS_RECEIVER

Tôi phải nói rằng nó hoạt động hoàn hảo trên Jenkins mà không bất kỳ loại quyền cho người dùng nặc danh.

+0

Tôi gặp vấn đề tương tự khi cố gắng tích hợp gitlab và jenkins. Tôi đang sử dụng tính năng inbuild gitlab để kiểm tra kích hoạt đẩy. Mà ném cho tôi lỗi trên. Có thể làm gì để giải quyết nó trong trường hợp của tôi –

0

On 1.625.3, cho Anonymous đọc truy cập vào hầu hết mọi thứ làm việc cho tôi

Các vấn đề liên quan